mailing list archives
CVE request: libtasn1 "asn1_get_length_der()" DER decoding issue
From: Stefan Cornelius <scorneli () redhat com>
Date: Tue, 20 Mar 2012 13:40:35 +0100
libtasn1 version 2.12 was released fixing the following issue:
- Corrected DER decoding issue (reported by Matthew Hall).
Added self check to detect the problem, see tests/Test_overflow.c.
This problem can lead to at least remotely triggered crashes, see
further analysis on the libtasn1 mailing list.
Further issue details from Simon Josefsson :
I want to mention that there were no security problem in the
asn1_get_length_der function. It was working properly and as documented
before. The security problem was the callers not checking that the
returned values were reasonable, i.e., that the output length was less
than or equal to the total length of the buffer. However, fixing all
callers of this function would be a huge amount of work. Instead, we
made asn1_get_length_der return an error code when the situation
occured, to protect callers. This fix could be the wrong thing if some
code out there calls the function with a der_len parameter that is
smaller than the entire DER structure length. However, we are hoping
that is not in any significant use, and that overall security will be
improved by having the function sanity check its output rather than
letting the caller do that. This was a judgement call.
It appears like GnuTLS is affected as well (but probably does not need a
separate CVE at this point):
-- References --
Small analysis + patch:
Red Hat bug:
Thanks and kind regards,
Stefan Cornelius / Red Hat Security Response Team
- CVE request: libtasn1 "asn1_get_length_der()" DER decoding issue Stefan Cornelius (Mar 20)