pgsql: Check for USAGE privilege on types used by stored expressions.

Поиск
Список
Период
Сортировка
Искать
От
Noah Misch
Тема
pgsql: Check for USAGE privilege on types used by stored expressions.
Дата
в 16:41:33
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 по дате отправления
От: Noah Misch
Дата:
От: Tom Lane
Дата:
Сообщение: pgsql: Stamp 19beta3.
FAQ