The asn1_get_length_der function in decoding.c in GNU Libtasn1 before 2.12,
as used in GnuTLS before 3.0.16 and other products, does not properly
handle certain large length values, which allows remote attackers to cause
a denial of service (heap memory corruption and application crash) or
possibly have unspecified other impact via a crafted ASN.1 structure.
jdstrand> per Simon Josefsson (upstream), asn1_get_length_der() does not
itself have the vulnerability, but that callers wouldn't check its return
code which could cause a DoS. It was deemed easier for asn1_get_length_der()
to throw an error rather than changing all callers.
jdstrand> archive grep results for asn1_get_length_der():
mdeslaur> gnutls test: http://git.savannah.gnu.org/gitweb/?p=gnutls.git;a=commit;h=88138dc44fc00f2887956d71e0febd2656e1fd9f
mdeslaur> libtasn test:
Updated: 2012-06-01 15:22:43 UTC (commit 5347)