pgsql: Check for USAGE privilege on types used by stored expressions.
От
Noah Misch
Тема
pgsql: Check for USAGE privilege on types used by stored expressions.
Дата
Msg-id
E1wtQFx-00000000yPI-1Fcg@gemulon.postgresql.org
Список
Check for USAGE privilege on types used by stored expressions. This omission allowed roles without USAGE on a type to create stored expressions that depend on it, which could prevent the owner from changing the type later. The checks deliberately live in the command paths rather than the dependency-recording routines. Those routines also run whenever the server re-derives an existing expression, and re-checking there would break routine maintenance for an owner who has since lost USAGE on a type its objects already reference. (Checking in the dependency-recording routines would also require additional CommandCounterIncrement() calls to avoid spurious errors.) The addition of a parameter to AlterDomainAddConstraint() breaks ABI compatibility, but we are unaware of any impacted third-party code. Reported-by: Noah Misch Author: Nathan Bossart Reviewed-by: Noah Misch Reviewed-by: Tom Lane Reviewed-by: Robert Haas Security: CVE-2026-6470 Backpatch-through: 14 Branch ------ REL_14_STABLE Details ------- https://git.postgresql.org/pg/commitdiff/1a358b8f2a28aaf3a7bfc8cf710de7a39c98436d Author: Nathan Bossart Modified Files -------------- src/backend/catalog/dependency.c | 77 ++++++++++++++++++++++++++++++++ src/backend/catalog/heap.c | 25 +++++++++++ src/backend/catalog/index.c | 3 ++ src/backend/catalog/pg_constraint.c | 3 ++ src/backend/catalog/pg_proc.c | 6 +++ src/backend/catalog/pg_type.c | 6 +++ src/backend/commands/indexcmds.c | 16 +++++++ src/backend/commands/policy.c | 8 ++++ src/backend/commands/statscmds.c | 5 +++ src/backend/commands/tablecmds.c | 19 +++++++- src/backend/commands/trigger.c | 5 +++ src/backend/commands/typecmds.c | 33 +++++++++++--- src/backend/parser/parse_utilcmd.c | 10 +++++ src/backend/rewrite/rewriteDefine.c | 2 + src/backend/tcop/utility.c | 3 +- src/include/catalog/dependency.h | 4 ++ src/include/commands/typecmds.h | 3 +- src/test/regress/expected/privileges.out | 46 +++++++++++++++++++ src/test/regress/sql/privileges.sql | 43 ++++++++++++++++++ 19 files changed, 308 insertions(+), 9 deletions(-)
В списке pgsql-committers по дате отправления