SECURITY UPDATE: Out-of-bounds read in pg_dump on long protrftypes.
dumpFunc() parsed pg_proc.protrftypes into a fixed FUNC_MAX_ARGS
array that is not zero-terminated when the server reports exactly
FUNC_MAX_ARGS entries, so the TRANSFORM loop read past the buffer;
a function with more entries made pg_dump abort. Any role that can
create functions in a language with a transform could thus break or
corrupt dumps.
debian/patches/CVE-2026-19385.patch: make parseOidArray() allocate
the array itself (exact count, or input-sized and zero-terminated),
add parseIntArray() for pg_index.indkey, and use them in
getAggregates(), getFuncs(), getIndexes() and dumpFunc(); add a
function with a transform to the object_address regression test
(upstream 57aa21f691; 8.0 servers keep a zero-terminated indkey).
CVE-2026-19385
SECURITY UPDATE: Code execution as table owner via amcheck.
bt_index_check() and bt_index_parent_check() switch to the table
owner but keep the caller's search_path, so a grantee could make a
SQL-language btree operator class comparison function resolve an
unqualified name to a function of their own, run as the owner.
debian/patches/CVE-2026-14673.patch: set search_path to
"pg_catalog, pg_temp" inside the amcheck sandbox, with an
operator class regression test (upstream 39d792040c).