CVE-2012-1569

Published: 26 March 2012

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.

Priority

Medium

Status

Package Release Status
libtasn1-3
Launchpad, Ubuntu, Debian
Upstream
Released (2.12-1)
Patches:
Upstream: http://article.gmane.org/gmane.comp.gnu.libtasn1.general/54
Vendor: http://www.debian.org/security/2012/dsa-2440

Notes

AuthorNote
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.
archive grep results for asn1_get_length_der():
https://chinstrap.canonical.com/~jamie/libtasn1.log
mdeslaur
gnutls test: http://git.savannah.gnu.org/gitweb/?p=gnutls.git;a=commit;h=88138dc44fc00f2887956d71e0febd2656e1fd9f
libtasn test:
http://git.savannah.gnu.org/cgit/libtasn1.git/plain/tests/Test_overflow.c

References

Bugs