diff options
author | cperciva <cperciva@FreeBSD.org> | 2012-11-23 01:48:31 +0000 |
---|---|---|
committer | cperciva <cperciva@FreeBSD.org> | 2012-11-23 01:48:31 +0000 |
commit | 748c98fc62710e6e068b1ac97fe79668aa6fe7d4 (patch) | |
tree | 2b14b8ff18434b4a2367f1e3269dfd7df194dcb8 /contrib/wpa | |
parent | 95ab21ebedf7ac88a3e0742d22e468652f026319 (diff) | |
download | FreeBSD-src-748c98fc62710e6e068b1ac97fe79668aa6fe7d4.zip FreeBSD-src-748c98fc62710e6e068b1ac97fe79668aa6fe7d4.tar.gz |
MFS security patches which seem to have accidentally not reached HEAD:
Fix insufficient message length validation for EAP-TLS messages.
Fix Linux compatibility layer input validation error.
Security: FreeBSD-SA-12:07.hostapd
Security: FreeBSD-SA-12:08.linux
Security: CVE-2012-4445, CVE-2012-4576
With hat: so@
Diffstat (limited to 'contrib/wpa')
-rw-r--r-- | contrib/wpa/src/eap_server/eap_server_tls_common.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/contrib/wpa/src/eap_server/eap_server_tls_common.c b/contrib/wpa/src/eap_server/eap_server_tls_common.c index 25ae683..625ff52 100644 --- a/contrib/wpa/src/eap_server/eap_server_tls_common.c +++ b/contrib/wpa/src/eap_server/eap_server_tls_common.c @@ -225,6 +225,14 @@ static int eap_server_tls_process_fragment(struct eap_ssl_data *data, return -1; } + if (len > message_length) { + wpa_printf(MSG_INFO, "SSL: Too much data (%d bytes) in " + "first fragment of frame (TLS Message " + "Length %d bytes)", + (int) len, (int) message_length); + return -1; + } + data->tls_in = wpabuf_alloc(message_length); if (data->tls_in == NULL) { wpa_printf(MSG_DEBUG, "SSL: No memory for message"); |