]> granicus.if.org Git - postgresql/commit
Prevent a double free by not reentering be_tls_close().
authorNoah Misch <noah@leadboat.com>
Mon, 18 May 2015 14:02:31 +0000 (10:02 -0400)
committerNoah Misch <noah@leadboat.com>
Mon, 18 May 2015 14:02:31 +0000 (10:02 -0400)
commitb0ce385032d72d6acf1e330f733013553fe6affe
treeeeb158b7e34bc5cda085464767eee2274b0a5407
parent8cc7a4c5fdbe43b9b16b4cf3e07c8115107a8d4e
Prevent a double free by not reentering be_tls_close().

Reentering this function with the right timing caused a double free,
typically crashing the backend.  By synchronizing a disconnection with
the authentication timeout, an unauthenticated attacker could achieve
this somewhat consistently.  Call be_tls_close() solely from within
proc_exit_prepare().  Back-patch to 9.0 (all supported versions).

Benkocs Norbert Attila

Security: CVE-2015-3165
src/backend/libpq/be-secure-openssl.c
src/backend/libpq/pqcomm.c
src/backend/postmaster/postmaster.c