mirror of
https://github.com/postgres/postgres.git
synced 2025-06-25 01:02:05 +03:00
Empty search_path in logical replication apply worker and walsender.
This is like CVE-2018-1058 commit
582edc369c
. Today, a malicious user of a
publisher or subscriber database can invoke arbitrary SQL functions
under an identity running replication, often a superuser. This fix may
cause "does not exist" or "no schema has been selected to create in"
errors in a replication process. After upgrading, consider watching
server logs for these errors. Objects accruing schema qualification in
the wake of the earlier commit are unlikely to need further correction.
Back-patch to v10, which introduced logical replication.
Security: CVE-2020-14349
This commit is contained in:
@ -1659,6 +1659,12 @@ ApplyWorkerMain(Datum main_arg)
|
||||
MyLogicalRepWorker->userid,
|
||||
0);
|
||||
|
||||
/*
|
||||
* Set always-secure search path, so malicious users can't redirect user
|
||||
* code (e.g. pg_index.indexprs).
|
||||
*/
|
||||
SetConfigOption("search_path", "", PGC_SUSET, PGC_S_OVERRIDE);
|
||||
|
||||
/* Load the subscription into persistent memory context. */
|
||||
ApplyContext = AllocSetContextCreate(TopMemoryContext,
|
||||
"ApplyContext",
|
||||
|
Reference in New Issue
Block a user