Skip to content

Commit b048f55

Browse files
committed
Fix priv checks for ALTER <object> DEPENDS ON EXTENSION
Marking an object as dependant on an extension did not have any privilege check whatsoever; this allowed any user to mark objects as droppable by anyone able to DROP EXTENSION, which could be used to cause system-wide havoc. Disallow by checking that the calling user owns the mentioned object. (No constraints are placed on the extension.) Security: CVE-2020-1720 Reported-by: Tom Lane Discussion: 31605.1566429043@sss.pgh.pa.us
1 parent 4e81886 commit b048f55

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

src/backend/commands/alter.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -438,6 +438,17 @@ ExecAlterObjectDependsStmt(AlterObjectDependsStmt *stmt, ObjectAddress *refAddre
438438
get_object_address_rv(stmt->objectType, stmt->relation, (List *) stmt->object,
439439
&rel, AccessExclusiveLock, false);
440440

441+
/*
442+
* Verify that the user is entitled to run the command.
443+
*
444+
* We don't check any privileges on the extension, because that's not
445+
* needed. The object owner is stipulating, by running this command, that
446+
* the extension owner can drop the object whenever they feel like it,
447+
* which is not considered a problem.
448+
*/
449+
check_object_ownership(GetUserId(),
450+
stmt->objectType, address, stmt->object, rel);
451+
441452
/*
442453
* If a relation was involved, it would have been opened and locked. We
443454
* don't need the relation here, but we'll retain the lock until commit.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy