]> git.ipfire.org Git - thirdparty/postgresql.git/commit
Ban role pg_signal_backend from more superuser backend types.
authorNoah Misch <noah@leadboat.com>
Mon, 6 Nov 2023 14:14:13 +0000 (06:14 -0800)
committerNoah Misch <noah@leadboat.com>
Mon, 6 Nov 2023 14:14:17 +0000 (06:14 -0800)
commit2893f2f40cfc2a7f6bd64b566f97140f8a379dd9
tree3ed9c6bf2ae4d56f3851718c0ef65d1ef089d8ef
parent1cfa44269c1260fd7ca6a3b99767f9c157f4c048
Ban role pg_signal_backend from more superuser backend types.

Documentation says it cannot signal "a backend owned by a superuser".
On the contrary, it could signal background workers, including the
logical replication launcher.  It could signal autovacuum workers and
the autovacuum launcher.  Block all that.  Signaling autovacuum workers
and those two launchers doesn't stall progress beyond what one could
achieve other ways.  If a cluster uses a non-core extension with a
background worker that does not auto-restart, this could create a denial
of service with respect to that background worker.  A background worker
with bugs in its code for responding to terminations or cancellations
could experience those bugs at a time the pg_signal_backend member
chooses.  Back-patch to v11 (all supported versions).

Reviewed by Jelte Fennema-Nio.  Reported by Hemanth Sandrana and
Mahendrakar Srinivasarao.

Security: CVE-2023-5870
src/backend/storage/ipc/signalfuncs.c
src/test/regress/expected/privileges.out
src/test/regress/sql/privileges.sql