mirror of
https://github.com/postgres/postgres.git
synced 2026-02-19 02:29:10 -05:00
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
68 lines
1.5 KiB
Makefile
68 lines
1.5 KiB
Makefile
# contrib/pgcrypto/Makefile
|
|
|
|
ZLIB_TST = pgp-compression
|
|
ZLIB_OFF_TST = pgp-zlib-DISABLED
|
|
|
|
CF_PGP_TESTS = $(if $(subst no,,$(with_zlib)), $(ZLIB_TST), $(ZLIB_OFF_TST))
|
|
|
|
OBJS = \
|
|
$(WIN32RES) \
|
|
crypt-blowfish.o \
|
|
crypt-des.o \
|
|
crypt-gensalt.o \
|
|
crypt-md5.o \
|
|
crypt-sha.o \
|
|
mbuf.o \
|
|
openssl.o \
|
|
pgcrypto.o \
|
|
pgp-armor.o \
|
|
pgp-cfb.o \
|
|
pgp-compress.o \
|
|
pgp-decrypt.o \
|
|
pgp-encrypt.o \
|
|
pgp-info.o \
|
|
pgp-mpi.o \
|
|
pgp-mpi-openssl.o \
|
|
pgp-pgsql.o \
|
|
pgp-pubdec.o \
|
|
pgp-pubenc.o \
|
|
pgp-pubkey.o \
|
|
pgp-s2k.o \
|
|
pgp.o \
|
|
px-crypt.o \
|
|
px-hmac.o \
|
|
px.o
|
|
|
|
MODULE_big = pgcrypto
|
|
|
|
EXTENSION = pgcrypto
|
|
DATA = pgcrypto--1.3.sql pgcrypto--1.2--1.3.sql pgcrypto--1.1--1.2.sql \
|
|
pgcrypto--1.0--1.1.sql pgcrypto--1.3--1.4.sql
|
|
PGFILEDESC = "pgcrypto - cryptographic functions"
|
|
|
|
REGRESS = init md5 sha1 hmac-md5 hmac-sha1 blowfish rijndael \
|
|
sha2 des 3des cast5 \
|
|
crypt-des crypt-md5 crypt-blowfish crypt-xdes \
|
|
pgp-armor pgp-decrypt pgp-encrypt pgp-encrypt-md5 $(CF_PGP_TESTS) \
|
|
pgp-pubkey-decrypt pgp-pubkey-encrypt pgp-pubkey-session \
|
|
pgp-info crypt-shacrypt
|
|
|
|
ifdef USE_PGXS
|
|
PG_CONFIG = pg_config
|
|
PGXS := $(shell $(PG_CONFIG) --pgxs)
|
|
include $(PGXS)
|
|
else
|
|
subdir = contrib/pgcrypto
|
|
top_builddir = ../..
|
|
include $(top_builddir)/src/Makefile.global
|
|
include $(top_srcdir)/contrib/contrib-global.mk
|
|
endif
|
|
|
|
# Add libraries that pgcrypto depends (or might depend) on into the
|
|
# shared library link. (The order in which you list them here doesn't
|
|
# matter.)
|
|
SHLIB_LINK += $(filter -lcrypto -lz, $(LIBS))
|
|
ifeq ($(PORTNAME), win32)
|
|
# those must be at the end
|
|
SHLIB_LINK += -lws2_32
|
|
endif
|