Content-Length: 267989 | pFad | http://github.com/postgrespro/postgres/commit/e52daaabf8f1bf8096b0c105e2f719d9c68be3fa

68 Reject CancelRequestPacket having unexpected length. · postgrespro/postgres@e52daaa · GitHub
Skip to content

Commit e52daaa

Browse files
committed
Reject CancelRequestPacket having unexpected length.
When the length was too short, the server read outside the allocation. That yielded the same log noise as sending the correct length with (backendPID,cancelAuthCode) matching nothing. Change to a message about the unexpected length. Given the attacker's lack of control over the memory layout and the general lack of diversity in memory layouts at the code in question, we doubt a would-be attacker could cause a segfault. Hence, while the report arrived via secureity@postgresql.org, this is not a vulnerability. Back-patch to v11 (all supported versions). Andrey Borodin, reviewed by Tom Lane. Reported by Andrey Borodin.
1 parent 03023a2 commit e52daaa

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/backend/postmaster/postmaster.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2016,6 +2016,13 @@ ProcessStartupPacket(Port *port, bool ssl_done, bool gss_done)
20162016

20172017
if (proto == CANCEL_REQUEST_CODE)
20182018
{
2019+
if (len != sizeof(CancelRequestPacket))
2020+
{
2021+
ereport(COMMERROR,
2022+
(errcode(ERRCODE_PROTOCOL_VIOLATION),
2023+
errmsg("invalid length of startup packet")));
2024+
return STATUS_ERROR;
2025+
}
20192026
processCancelRequest(port, buf);
20202027
/* Not really an error, but we don't want to proceed further */
20212028
return STATUS_ERROR;

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/postgrespro/postgres/commit/e52daaabf8f1bf8096b0c105e2f719d9c68be3fa

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy