mirror of
https://github.com/postgres/postgres.git
synced 2026-02-12 07:13:09 -05:00
While the preceding commit prevented such attachments from occurring in future, this one aims to prevent further abuse of any already- created operator that exposes _int_matchsel to the wrong data types. (No other contrib module has a vulnerable selectivity estimator.) We need only check that the Const we've found in the query is indeed of the type we expect (query_int), but there's a difficulty: as an extension type, query_int doesn't have a fixed OID that we could hard-code into the estimator. Therefore, the bulk of this patch consists of infrastructure to let an extension function securely look up the OID of a datatype belonging to the same extension. (Extension authors have requested such functionality before, so we anticipate that this code will have additional non-security uses, and may soon be extended to allow looking up other kinds of SQL objects.) This is done by first finding the extension that owns the calling function (there can be only one), and then thumbing through the objects owned by that extension to find a type that has the desired name. This is relatively expensive, especially for large extensions, so a simple cache is put in front of these lookups. Reported-by: Daniel Firer as part of zeroday.cloud Author: Tom Lane <tgl@sss.pgh.pa.us> Reviewed-by: Noah Misch <noah@leadboat.com> Security: CVE-2026-2004 Backpatch-through: 14 |
||
|---|---|---|
| .. | ||
| bench | ||
| data | ||
| expected | ||
| sql | ||
| .gitignore | ||
| _int.h | ||
| _int_bool.c | ||
| _int_gin.c | ||
| _int_gist.c | ||
| _int_op.c | ||
| _int_selfuncs.c | ||
| _int_tool.c | ||
| _intbig_gist.c | ||
| intarray--1.0--1.1.sql | ||
| intarray--1.1--1.2.sql | ||
| intarray--1.2--1.3.sql | ||
| intarray--1.2.sql | ||
| intarray--1.3--1.4.sql | ||
| intarray--1.4--1.5.sql | ||
| intarray.control | ||
| Makefile | ||
| meson.build | ||