CVE-2016-9939
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine....
CVE-2016-9939 is a high vulnerability (CVSS 7.5) in Cryptopp Crypto\+\+, published December 26, 2016. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 4.20%, the 90th percentile. Fixed in libcrypto++ 5.6.4-5.
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- None
- Availability
- High
Exploit likelihood
What each source reports
NVD Score used
7.5
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
CVE-2016-9939- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - CVSS 2.0
- 5.0 Medium
AV:N/AC:L/Au:N/C:N/I:N/A:P - Weakness
- CWE-20
- Updated
- 2026-11-02
CVE List No score
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
CVE-2016-9939- Updated
- 2026-11-02
EUVDEUVD-2016-10726 No score
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
EUVD-2016-10726- Updated
- 2026-11-03
GitHub AdvisoriesGHSA-x7wj-9rr2-gfcg
7.5
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine....
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
GHSA-x7wj-9rr2-gfcg- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Weakness
- CWE-20
- Updated
- 2026-11-02
OSV
7.5
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
CVE-2016-9939- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVDEBIAN-CVE-2016-9939
7.5
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
DEBIAN-CVE-2016-9939- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
Show 4 moreShow less
OSVUBUNTU-CVE-2016-9939
7.5
Crypto++ (aka cryptopp and libcrypto++) 5.6.4 contained a bug in its ASN.1 BER decoding routine. The library will allocate a memory block based on the length field of the ASN.1 object. If there is not enough content octets in the ASN.1 object, then the function will fail and the memory block will be zeroed even if its unused. There is a noticeable delay during the wipe for a large allocation.
- Record
UBUNTU-CVE-2016-9939- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - Updated
- 2026-11-02
OSVMGASA-2017-0010 No score
Updated libcryptopp packages fix security vulnerability
When Crypto++ library parses an ASN.1 data value, the library allocates for the content octets based on the length octets. Later, if there's too few or too little content octets, the library throws a BERDecodeErr exception. The memory for the content octets will be zeroized (even if unused), which could take a long time on a large allocation (CVE-2016-9939).
- Record
MGASA-2017-0010- Updated
- 2026-11-02
OSVopenSUSE-SU-2021:3301-1 No score
Security update for libcryptopp
This update for libcryptopp fixes the following issues:
- CVE-2016-9939: Fixed potential DoS in Crypto++ (libcryptopp) ASN.1 parser (bsc#1015243).
- Record
openSUSE-SU-2021:3301-1- Updated
- 2026-11-02
OSVSUSE-SU-2021:3301-1 No score
Security update for libcryptopp
This update for libcryptopp fixes the following issues:
- CVE-2016-9939: Fixed potential DoS in Crypto++ (libcryptopp) ASN.1 parser (bsc#1015243).
- Record
SUSE-SU-2021:3301-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
libcrypto++Debian:12 |
before 5.6.4-5 | 5.6.4-5 |
libcrypto++Debian:13 |
before 5.6.4-5 | 5.6.4-5 |
libcrypto++Debian:14 |
before 5.6.4-5 | 5.6.4-5 |
libcrypto++Debian:7 |
before 5.6.1-6+deb7u3, plus listed versions 5.6.1-65.6.1-6+deb7u15.6.1-6+deb7u2 |
5.6.1-6+deb7u3 |
libcrypto++Debian:8 |
before 5.6.1-6+deb8u3, plus listed versions 5.6.1-65.6.1-6+deb8u15.6.1-6+deb8u2 |
5.6.1-6+deb8u3 |
libcryptoppMageia:5 |
before 5.6.3-1.3.mga5 | 5.6.3-1.3.mga5 |
libcryptoppSUSE:Linux Enterprise Module for Basesystem 15 SP2 |
before 5.6.5-1.6.1 | 5.6.5-1.6.1 |
libcryptoppSUSE:Linux Enterprise Module for Basesystem 15 SP3 |
before 5.6.5-1.6.1 | 5.6.5-1.6.1 |
libcrypto++Ubuntu:14.04:LTS |
before 5.6.1-6+deb8u3build0.14.04.1, plus listed versions 5.6.1-65.6.1-6+deb8u1build0.14.04.1 |
5.6.1-6+deb8u3build0.14.04.1 |
libcrypto++Ubuntu:16.04:LTS |
before 5.6.1-9ubuntu0.1, plus listed versions 5.6.1-85.6.1-9 |
5.6.1-9ubuntu0.1 |
libcryptoppopenSUSE:Leap 15.3 |
before 5.6.5-1.6.1 | 5.6.5-1.6.1 |
History
| When | Changed | Sources |
|---|---|---|
| 2026-11-03 | aliases | EUVD |
| 2026-11-02 | created | CVE List, GitHub Advisories, NVD, OSV |
References
openwall.com/lists/oss-security/2016/12/12/7
debian.org/security/2016/dsa-3748
securityfocus.com/bid/94854
lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/7IL5A6465IEPW5GAWGXB2ENJPFYVWTJM
nvd.nist.gov/vuln/detail/CVE-2016-9939
lists.fedoraproject.org/archives/list/[email protected]/message/7IL5A6465IEPW5GAWGXB2ENJPFYVWTJM
Show 12 moreShow less
github.com/advisories/GHSA-x7wj-9rr2-gfcg
security-tracker.debian.org/tracker/CVE-2016-9939
advisories.mageia.org/MGASA-2017-0010.html
bugs.mageia.org/show_bug.cgi?id=19937
github.com/weidai11/cryptopp/issues/346
suse.com/support/update/announcement/2021/suse-su-20213301-1
bugzilla.suse.com/1015243
suse.com/security/cve/CVE-2016-9939
ubuntu.com/security/CVE-2016-9939
openwall.com/lists/oss-security/2016/12/12/6
cve.org/CVERecord?id=CVE-2016-9939
lists.opensuse.org/archives/list/[email protected]/thread/OT7AMKZYZG3NMSSJK4GVQCGFPLIGSKD5