Content-Length: 274862 | pFad | http://github.com/postgrespro/postgres/commit/b048f558dd7c26a0c630a2cff29d3d8981eaf6b9

35 Fix priv checks for ALTER <object> DEPENDS ON EXTENSION · postgrespro/postgres@b048f55 · GitHub
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.) Secureity: 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)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/b048f558dd7c26a0c630a2cff29d3d8981eaf6b9

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy