postgres.git / summary / log / commit / refs
commit 7bbf4d03726200a8e42b48cac0b2a87abb7fb5fe
Author: Noah Misch <noah@leadboat.com>
Date: Mon Nov 06 14:14:13 2023 +0000
First released in: 17.0, 11.22, 12.17, 13.13, 14.10, 15.5, 16.1
Set GUC "is_superuser" in all processes that set AuthenticatedUserId.
It was always false in single-user mode, in autovacuum workers, and in
background workers. This had no specifically-identified security
consequences, but non-core code or future work might make it
security-relevant. Back-patch to v11 (all supported versions).
Jelte Fennema-Nio. Reported by Jelte Fennema-Nio.
src/backend/utils/init/miscinit.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/backend/utils/init/miscinit.c b/src/backend/utils/init/miscinit.c
index f6c1e7491dd..425498c1a74 100644
--- a/src/backend/utils/init/miscinit.c
+++ b/src/backend/utils/init/miscinit.c
@@ -708,6 +708,14 @@ InitializeSessionUserIdStandalone(void)
AuthenticatedUserIsSuperuser = true;
SetSessionUserId(BOOTSTRAP_SUPERUSERID, true);
+
+ /*
+ * XXX This should set SetConfigOption("session_authorization"), too.
+ * Since we don't, C code will get NULL, and current_setting() will get an
+ * empty string.
+ */
+ SetConfigOption("is_superuser", "on",
+ PGC_INTERNAL, PGC_S_DYNAMIC_DEFAULT);
}
[parent: 2893f2f40cfc]