OpenSSL 1.0.1g long non-initial fragment buffer overflow 2014.06.06 Credit: Dr. Stephen Risk: High Local: No Remote: Yes CVE: CVE-2014-0195 CWE: CWE-119

CVSS Base Score: 6.8/10 Impact Subscore: 6.4/10 Exploitability Subscore: 8.6/10 Exploit range: Remote Attack complexity: Medium Authentication: No required Confidentiality impact: Partial Integrity impact: Partial Availability impact: Partial The dtls1_reassemble_fragment function in d1_both.c in OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly validate fragment lengths in DTLS ClientHello messages, which allows remote attackers to execute arbitrary code or cause a denial of service (buffer overflow and application crash) via a long non-initial fragment. diff --git a/ssl/d1_both.c b/ssl/d1_both.c index 1bb2e4d..7de9ae4 100644 (file) --- a/ssl/d1_both.c +++ b/ssl/d1_both.c @@ -627,7 +627,16 @@ dtls1_reassemble_fragment(SSL *s, struct hm_header_st* msg_hdr, int *ok) frag->msg_header.frag_off = 0; } else + { frag = (hm_fragment*) item->data; + if (frag->msg_header.msg_len != msg_hdr->msg_len) + { + item = NULL; + frag = NULL; + goto err; + } + } + /* If message is already reassembled, this must be a * retransmit and can be dropped. References: https://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=1632ef744872edc2aa2a53d487d3e79c965a4ad3



See this note in RAW Version Tweet Vote for this issue: 0 0 50% 50%





Thanks for you vote!



Thanks for you comment!

Your message is in quarantine 48 hours. Comment it here. Nick (*) Email (*) Video Text (*)



(*) - required fields. Cancel Submit {{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1 {{ x.comment }} {{ x.ux * 1000 | date:'yyyy-MM-dd' }}CET+1 Show all comments Copyright 2020, cxsecurity.com