Обсуждение: BUG #19054: Memory exhaustion vulnerability in PostgreSQL array operations leads to server crash
BUG #19054: Memory exhaustion vulnerability in PostgreSQL array operations leads to server crash
От
PG Bug reporting form
Дата:
The following bug has been logged on the website:
Bug reference: 19054
Logged by: sibo wu
Email address: sibowu@amazon.com
PostgreSQL version: 17.6
Operating system: mac
Description:
PostgreSQL's array implementation can lead to server crashes due to
uncontrolled memory consumption during array operations. When performing
continuous array modifications within a loop, the server eventually exhausts
available memory and crashes, affecting all connected sessions.
psql (17.6)
Type "help" for help.
DO
$$
DECLARE
a_1 text[];
a text;
i bigint default 1;
BEGIN
a := repeat('A',pow(2,29)::int);
while true
loop
a_1[i] := a;
i := i + 1;
END LOOP;
END
$$;
server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
The connection to the server was lost. Attempting reset: Failed.
!?> quit
On Mon, 2025-09-15 at 20:00 +0000, PG Bug reporting form wrote: > PostgreSQL's array implementation can lead to server crashes due to > uncontrolled memory consumption during array operations. When performing > continuous array modifications within a loop, the server eventually exhausts > available memory and crashes, affecting all connected sessions. That's not a bug, that's a user error. For reliable operation, you have to disable Linux' memory overcommit. Then the kernel won't kill the database, but your query will receive an "out of memory" error and fail without any crashes. Yours, Laurenz Albe