postgresql/contrib/pgcrypto
Michael Paquier 527b730f41 pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea()
pgp_pub_decrypt_bytea() was missing a safeguard for the session key
length read from the message data, that can be given in input of
pgp_pub_decrypt_bytea().  This can result in the possibility of a buffer
overflow for the session key data, when the length specified is longer
than PGP_MAX_KEY, which is the maximum size of the buffer where the
session data is copied to.

A script able to rebuild the message and key data that can trigger the
overflow is included in this commit, based on some contents provided by
the reporter, heavily editted by me.  A SQL test is added, based on the
data generated by the script.

Reported-by: Team Xint Code as part of zeroday.cloud
Author: Michael Paquier <michael@paquier.xyz>
Reviewed-by: Noah Misch <noah@leadboat.com>
Security: CVE-2026-2005
Backpatch-through: 14
2026-02-09 08:01:09 +09:00
..
expected pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
scripts pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
sql pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
.gitignore Support SCRAM-SHA-256 authentication (RFC 5802 and 7677). 2017-03-07 14:25:40 +02:00
crypt-blowfish.c Tidy up claimed supported CPUs and OSes. 2022-07-11 11:50:41 +12:00
crypt-des.c Replace remaining StrNCpy() by strlcpy() 2020-08-10 23:20:37 +02:00
crypt-gensalt.c Phase 3 of pgindent updates. 2017-06-21 15:35:54 -04:00
crypt-md5.c Add missing error check in pgcrypto/crypt-md5.c. 2020-10-16 11:59:13 -04:00
Makefile pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
mbuf.c pgcrypto: Remove unused code 2022-09-14 21:58:30 +02:00
mbuf.h Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
meson.build pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
openssl.c Pre-beta mechanical code beautification. 2022-05-12 15:17:30 -04:00
pgcrypto--1.0--1.1.sql Add gen_random_uuid() to contrib/pgcrypto. 2014-01-17 16:52:06 -05:00
pgcrypto--1.1--1.2.sql Add functions for dealing with PGP armor header lines to pgcrypto. 2014-10-01 16:03:39 +03:00
pgcrypto--1.2--1.3.sql Update pgcrypto extension for parallel query. 2016-06-09 17:18:14 -04:00
pgcrypto--1.3.sql Minor fixes in contrib installation scripts. 2016-06-14 10:47:06 -04:00
pgcrypto.c New header varatt.h split off from postgres.h 2023-01-10 05:54:36 +01:00
pgcrypto.control Mark some contrib modules as "trusted". 2020-02-13 15:02:35 -05:00
pgcrypto.h Remove unnecessary prototypes 2016-09-30 14:04:16 -04:00
pgp-armor.c Fix small overestimation of base64 encoding output length. 2023-06-08 11:24:31 -04:00
pgp-cfb.c pgcrypto: Remove internal padding implementation 2022-03-22 08:58:44 +01:00
pgp-compress.c Fix some grammar and typos in comments and docs 2020-11-02 15:14:41 +09:00
pgp-decrypt.c pgcrypto: Fix check for buffer size 2024-01-30 11:15:46 +01:00
pgp-encrypt.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-info.c Dial back -Wimplicit-fallthrough to level 3 2020-05-13 15:31:14 -04:00
pgp-mpi-openssl.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp-mpi.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-pgsql.c Add construct_array_builtin, deconstruct_array_builtin 2022-07-01 11:23:15 +02:00
pgp-pubdec.c pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
pgp-pubenc.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-pubkey.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
pgp-s2k.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
pgp.c pgcrypto: Remove unused code 2022-09-14 21:58:30 +02:00
pgp.h Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
px-crypt.c Make the order of the header file includes consistent in contrib modules. 2019-10-24 08:05:34 +05:30
px-crypt.h Harmonize parameter names in contrib code. 2022-09-22 13:59:20 -07:00
px-hmac.c Remove custom memory allocation layer in pgcrypto 2020-09-25 10:25:55 +09:00
px.c pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00
px.h pgcrypto: Fix buffer overflow in pgp_pub_decrypt_bytea() 2026-02-09 08:01:09 +09:00