pgsql: pg_stat_statements: Fix buffer overflow with query normalization - Mailing list pgsql-committers

From Noah Misch
Subject pgsql: pg_stat_statements: Fix buffer overflow with query normalization
Date
Msg-id E1wtQFo-00000000y8c-29Io@gemulon.postgresql.org
Whole thread
List pgsql-committers
pg_stat_statements: Fix buffer overflow with query normalization

Since commit 62d712ecfd94, pg_stat_statements has been underestimating
the size of the result buffer possible for a normalized query, in cases
where the query includes many squashable lists, causing the normalized
query to write past the allocated area.

The allocated buffer size forgot to account for the comment appended in
a squashable list, "/*, ... */".  Instead of trying to track down
precisely how much space we need, fix by switch to using an expansible
StringInfo.  This not only fixes the bug, but it also makes the code
simpler to follow.

Author: Álvaro Herrera <alvherre@kurilemu.de>
Reported-by: Sajeeb Lohani with TrendAI Zero Day Initiative
Reported-by: Yuelin Wang <3020001251@tju.edu.cn>
Diagnosed-by: Michaël Paquier <michael@paquier.xyz>
Backpatch-through: 18
Security: CVE-2026-14676
Discussion: https://postgr.es/m/19528-7290dd7e6f7dcc22@postgresql.org

Branch
------
REL_18_STABLE

Details
-------
https://git.postgresql.org/pg/commitdiff/8a31ffc2d4cc5e2f3fb42b6a41b7db802716615d
Author: Álvaro Herrera <alvherre@kurilemu.de>

Modified Files
--------------
contrib/pg_stat_statements/pg_stat_statements.c | 45 ++++++++++---------------
1 file changed, 17 insertions(+), 28 deletions(-)


Attachment

pgsql-committers by date:

Previous
From: Noah Misch
Date:
Subject: pgsql: Harden tsquery code against overflows.
Next
From: Noah Misch
Date:
Subject: pgsql: Avoid overflow in Levenshtein distance calculations.