OpenSSL Security Advisory 20100324 - In TLS connections, certain incorrectly formatted records can cause an OpenSSL client or server to crash due to a read attempt at NULL.
3cf5a241a759df02e4d637d7771edfa021c95951c620577159d5cc0dd584eb6a
OpenSSL Security Advisory [24 March 2010]
"Record of death" vulnerability in OpenSSL 0.9.8f through 0.9.8m
================================================================
In TLS connections, certain incorrectly formatted records can cause an OpenSSL
client or server to crash due to a read attempt at NULL.
Affected versions depend on the C compiler used with OpenSSL:
- If 'short' is a 16-bit integer, this issue applies only to OpenSSL 0.9.8m.
- Otherwise, this issue applies to OpenSSL 0.9.8f through 0.9.8m.
Users of OpenSSL should update to the OpenSSL 0.9.8n release, which contains a
patch to correct this issue. If upgrading is not immediately possible, the
source code patch provided in this advisory should be applied.
Bodo Moeller and Adam Langley (Google) have identified the vulnerability
and prepared the fix.
Patch
-----
--- ssl/s3_pkt.c 24 Jan 2010 13:52:38 -0000 1.57.2.9
+++ ssl/s3_pkt.c 24 Mar 2010 00:00:00 -0000
@@ -291,9 +291,9 @@
if (version != s->version)
{
SSLerr(SSL_F_SSL3_GET_RECORD,SSL_R_WRONG_VERSION_NUMBER);
- /* Send back error using their
- * version number :-) */
- s->version=version;
+ if ((s->version & 0xFF00) == (version & 0xFF00))
+ /* Send back error using their minor version number :-) */
+ s->version = (unsigned short)version;
al=SSL_AD_PROTOCOL_VERSION;
goto f_err;
}
References
----------
This vulnerability is tracked as CVE-2010-0740.
URL for this Security Advisory:
https://www.openssl.org/news/secadv_20100324.txt