CVE-2016-6313
Medium · 5.3CVSS
5.3
EPSS
3.6%
Published
Dec 13, 2016
CISA due date
—
Cloudanix analysis
A flaw in older encryption tools made it possible for attackers to guess parts of secret values used to protect data, so organizations should update the tools and replace any keys created with the old versions.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The RNG mixing functions leak partial state, allowing recovery of 160 bits of output after observing 4640 prior bits.
Why it matters to the business
Attackers may recover portions of cryptographic material generated by affected GnuPG or Libgcrypt versions, weakening key secrecy and encrypted data protection across many systems.
How an attack unfolds
An attacker who can collect a long sequence of RNG output from a vulnerable process uses the known bias in the mixing functions to mathematically recover 160 bits of later output, reducing the search space for keys or nonces derived from that RNG.
How to fix it
Upgrade Libgcrypt to 1.5.6 or later, 1.6.6 or later, or 1.7.3 or later and GnuPG to 1.4.21 or later; rebuild and restart all dependent applications; regenerate any keys created while running vulnerable versions.
How to confirm the fix worked
Confirm installed package versions meet or exceed the fixed releases listed in the advisory; run regression tests that exercise the RNG mixing functions; monitor for any regenerated cryptographic material.
Typical attack path
- Identify a process or service using the vulnerable Libgcrypt or GnuPG RNG
- Capture at least 4640 bits of consecutive RNG output via side-channel or log exposure
- Apply the published bias equations to compute 160 bits of subsequent output
- Use recovered bits to narrow brute-force or dictionary attacks against generated keys or nonces
How to detect it
Review application and system logs for processes linking against vulnerable Libgcrypt versions; search package databases for pre-fix releases; examine any captured RNG output streams for statistical anomalies consistent with the published bias.
What your security team should do
- Prioritize patching of all GnuPG and Libgcrypt instances given the multi-year exposure window
- Audit and replace any keys or certificates generated with affected RNG versions
- Add package version checks to build and deployment pipelines to prevent reintroduction of vulnerable releases
The record
The mixing functions in the random number generator in Libgcrypt before 1.5.6, 1.6.x before 1.6.6, and 1.7.x before 1.7.3 and GnuPG before 1.4.21 make it easier for attackers to obtain the values of 160 bits by leveraging knowledge of the previous 4640 bits.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.4 | libgcrypt | 0 | 1.7.0-r1 |
| Debian:11 | gnupg1 | 0 | 1.4.21-1 |
| Debian:11 | libgcrypt20 | 0 | 1.7.3-1 |
| Debian:12 | gnupg1 | 0 | 1.4.21-1 |
| Debian:12 | libgcrypt20 | 0 | 1.7.3-1 |
| Debian:13 | gnupg1 | 0 | 1.4.21-1 |
| Debian:13 | libgcrypt20 | 0 | 1.7.3-1 |
| Debian:14 | gnupg1 | 0 | 1.4.21-1 |
| Debian:14 | libgcrypt20 | 0 | 1.7.3-1 |
| Debian:7 | gnupg | 0 | 1.4.12-7+deb7u8 |
| Debian:7 | libgcrypt11 | 0 | 1.5.0-5+deb7u5 |
| Debian:8 | gnupg | 0 | 1.4.18-7+deb8u2 |
| Debian:8 | libgcrypt20 | 0 | 1.6.3-2+deb8u2 |
| Mageia:5 | gnupg | 0 | 1.4.19-1.2.mga5 |
| Mageia:5 | libgcrypt | 0 | 1.5.4-5.3.mga5 |
| Red Hat:enterprise_linux:6::client | libgcrypt | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::client | libgcrypt-debuginfo | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::client | libgcrypt-devel | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::computenode | libgcrypt | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::computenode | libgcrypt-debuginfo | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::computenode | libgcrypt-devel | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::server | libgcrypt | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::server | libgcrypt-debuginfo | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::server | libgcrypt-devel | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::workstation | libgcrypt | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::workstation | libgcrypt-debuginfo | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:6::workstation | libgcrypt-devel | 0 | 0:1.4.5-12.el6_8 |
| Red Hat:enterprise_linux:7::client | libgcrypt | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::client | libgcrypt-debuginfo | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::client | libgcrypt-devel | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::computenode | libgcrypt | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::computenode | libgcrypt-debuginfo | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::computenode | libgcrypt-devel | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::server | libgcrypt | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::server | libgcrypt-debuginfo | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::server | libgcrypt-devel | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::workstation | libgcrypt | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::workstation | libgcrypt-debuginfo | 0 | 0:1.5.3-13.el7_3.1 |
| Red Hat:enterprise_linux:7::workstation | libgcrypt-devel | 0 | 0:1.5.3-13.el7_3.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | libgcrypt | 0 | 1.6.1-16.33.1 |
| SUSE:Linux Enterprise Server 11 SP4 | libgcrypt | 0 | 1.5.0-0.22.1 |
| SUSE:Linux Enterprise Server 12 SP1 | libgcrypt | 0 | 1.6.1-16.33.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | libgcrypt | 0 | 1.5.0-0.22.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | libgcrypt | 0 | 1.6.1-16.33.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | libgcrypt | 0 | 1.5.0-0.22.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | libgcrypt | 0 | 1.6.1-16.33.1 |
| Ubuntu:14.04:LTS | gnupg | 0 | 1.4.16-1ubuntu2.4 |
| Ubuntu:14.04:LTS | libgcrypt11 | 0 | 1.5.3-2ubuntu4.4 |
| Ubuntu:16.04:LTS | gnupg | 0 | 1.4.20-1ubuntu3.1 |
| Ubuntu:16.04:LTS | libgcrypt20 | 0 | 1.6.5-2ubuntu0.2 |
| openSUSE:Tumbleweed | libgcrypt | 0 | 1.7.3-1.3 |
Related vulnerabilities
- CVE-2024-2236 A timing-based side-channel flaw was found in libgcrypt's RSA implementation. Also affects libgcrypt20
- CVE-2014-3591 Libgcrypt before 1.6.3 and GnuPG before 1.4.19 does not implement ciphertext blinding for… Also affects libgcrypt20
- CVE-2015-7511 Libgcrypt before 1.6.5 does not properly perform elliptic-point curve multiplication… Also affects libgcrypt20
- CVE-2014-5270 Libgcrypt before 1.5.4, as used in GnuPG and other products, does not properly perform… Also affects libgcrypt20
- CVE-2014-4617 The do_uncompress function in g10/compress.c in GnuPG 1.x before 1.4.17 and 2.x before… Also affects gnupg
- CVE-2026-114657 Grav from 2.0.0 before 2.2.5 contains an information disclosure vulnerability that allows… CWE-200
- CVE-2026-114574 A security vulnerability has been detected in massCodeIO massCode 5.10. CWE-200
- CVE-2026-111756 follow-redirects is a Node.js HTTP and HTTPS client wrapper that automatically follows… CWE-200