CVE-2020-15522
Description
Bouncy Castle BC Java before 1.66, BC C# .NET before 1.8.7, BC-FJA before 1.0.1.2, 1.0.2.1, and BC-FNA before 1.0.1.1 have a timing issue within the EC math library that can expose information about the private key when an attacker is able to observe timing information for the generation of multiple deterministic ECDSA signatures.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
A timing side-channel in Bouncy Castle's EC math library leaks private key information during deterministic ECDSA signature generation.
Vulnerability
A timing side-channel vulnerability exists in the elliptic curve (EC) math library of Bouncy Castle. It affects BC Java before version 1.66, BC C# .NET before 1.8.7, BC-FJA versions 1.0.0, 1.0.1, and 1.0.2 (fixed in 1.0.1.2 and 1.0.2.1), and BC-FNA version 1.0.1 (fixed in 1.0.1.1) [1][4]. The issue occurs in the code path that performs the EC scalar multiplication for deterministic ECDSA signatures; no special configuration is required beyond using the affected library versions with ECDSA.
Exploitation
An attacker must be able to observe precise timing information for the generation of multiple deterministic ECDSA signatures (i.e., signatures that use RFC 6979 or similar deterministic nonce generation). The attacker needs network-level or local access capable of measuring the time taken by the affected code path. By collecting many timing measurements, the attacker can exploit the timing variation to recover information about the private key [1][4].
Impact
Successful exploitation allows the attacker to gain information about the private key used for ECDSA signing. This can lead to a full compromise of the signing key, enabling the attacker to forge signatures or impersonate the legitimate key holder. The impact is a breach of authentication and non-repudiation, potentially affecting all systems relying on the compromised key [1][4].
Mitigation
The vulnerability is fixed in BC Java 1.66 and later, BC C# .NET 1.8.7 and later, BC-FJA 1.0.1.2 and 1.0.2.1 and later, and BC-FNA 1.0.1.1 and later [4]. All users should upgrade to the fixed versions. As a workaround, users can implement their own blinding for deterministic ECDSA signatures; an example is available in the ECPoint.java source file at line 240 [4].
AI Insight generated on May 21, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
org.bouncycastle:bc-fipsMaven | < 1.0.2.1 | 1.0.2.1 |
org.bouncycastle:bcprov-ext-jdk15onMaven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-ext-jdk16Maven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-jdk14Maven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-jdk15Maven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-jdk15onMaven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-jdk15to18Maven | < 1.66 | 1.66 |
org.bouncycastle:bcprov-jdk16Maven | < 1.66 | 1.66 |
BouncyCastleNuGet | < 1.8.7 | 1.8.7 |
Affected products
21- Bouncy Castle/BC Javadescription
- osv-coords20 versionspkg:apk/chainguard/elasticsearch-7pkg:apk/chainguard/elasticsearch-8pkg:apk/chainguard/elasticsearch-8-bitnamipkg:apk/chainguard/elasticsearch-8-configpkg:apk/chainguard/elasticsearch-8-iamguardedpkg:apk/chainguard/elasticsearch-configpkg:maven/org.bouncycastle/bc-fipspkg:maven/org.bouncycastle/bcprov-ext-jdk15onpkg:maven/org.bouncycastle/bcprov-ext-jdk16pkg:maven/org.bouncycastle/bcprov-jdk14pkg:maven/org.bouncycastle/bcprov-jdk15pkg:maven/org.bouncycastle/bcprov-jdk15onpkg:maven/org.bouncycastle/bcprov-jdk15to18pkg:maven/org.bouncycastle/bcprov-jdk16pkg:nuget/bouncycastlepkg:rpm/opensuse/bouncycastle&distro=openSUSE%20Leap%2015.2pkg:rpm/opensuse/bouncycastle&distro=openSUSE%20Leap%2015.3pkg:rpm/opensuse/bouncycastle&distro=openSUSE%20Tumbleweedpkg:rpm/suse/bouncycastle&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Development%20Tools%2015%20SP2pkg:rpm/suse/bouncycastle&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Development%20Tools%2015%20SP3
< 7.17.14-r2+ 19 more
- (no CPE)range: < 7.17.14-r2
- (no CPE)range: < 8.12.1-r0
- (no CPE)range: < 8.12.1-r0
- (no CPE)range: < 8.12.1-r0
- (no CPE)range: < 8.12.1-r0
- (no CPE)range: < 8.12.1-r0
- (no CPE)range: < 1.0.2.1
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.66
- (no CPE)range: < 1.8.7
- (no CPE)range: < 1.64-lp152.2.3.1
- (no CPE)range: < 1.64-3.3.1
- (no CPE)range: < 1.68-3.2
- (no CPE)range: < 1.64-3.3.1
- (no CPE)range: < 1.64-3.3.1
Patches
0No patches discovered yet.
Vulnerability mechanics
AI mechanics synthesis has not run for this CVE yet.
References
5- github.com/advisories/GHSA-6xx3-rg99-gc3pghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2020-15522ghsaADVISORY
- security.netapp.com/advisory/ntap-20210622-0007ghsaWEB
- security.netapp.com/advisory/ntap-20210622-0007/mitrex_refsource_CONFIRM
- www.bouncycastle.org/releasenotes.htmlghsax_refsource_MISCWEB
News mentions
0No linked articles in our index yet.