# CVE-2024-30172: Bouncy Castle crafted signature and public key can be used to trigger an infinite loop

> CVE-2024-30172 (GitHub advisory GHSA-m44j-cfrm-g8qc) is a medium-severity vulnerability with a CVSS 4.0 base score of 6.9, classed as Loop with Unreachable Exit Condition ('Infinite Loop') (CWE-835), in 8 packages, including org.bouncycastle:bcprov-jdk18on (Maven) and org.bouncycastle:bcprov-jdk15to18 (Maven). Fixed versions: org.bouncycastle:bcprov-jdk18on 1.78; org.bouncycastle:bcprov-jdk15to18 1.78; and 5 more packages.

Canonical page: https://cveminer.com/vulnerabilities/CVE-2024-30172

| Field | Value |
| --- | --- |
| CVE | CVE-2024-30172 |
| GHSA | GHSA-m44j-cfrm-g8qc |
| Severity | Medium |
| CVSS 4.0 | 6.9 `CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N` (GitHub Advisory Database) |
| CVSS 3.1 | 5.3 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L` (GitHub Advisory Database) |
| CVSS 3.1 | 7.5 `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H` (CVE.org) |
| CWE | CWE-835 Loop with Unreachable Exit Condition ('Infinite Loop') |
| EPSS | 0.75% (higher than 53% of CVEs) |
| CISA KEV | Not listed |
| SSVC | exploitation none, automatable no, technical impact partial |
| Published | 9 May 2024 |
| Modified | 2 Dec 2024 |

## Description

An issue was discovered in Bouncy Castle Java Cryptography APIs starting in 1.73 and before 1.78. An Ed25519 verification code infinite loop can occur via a crafted signature and public key.

## Affected packages

| Package | Ecosystem | PURL | Vulnerable versions | Fixed in |
| --- | --- | --- | --- | --- |
| org.bouncycastle:bcprov-jdk18on | Maven | `pkg:maven/org.bouncycastle/bcprov-jdk18on` | >= 1.73, < 1.78 | 1.78 |
| org.bouncycastle:bcprov-jdk15to18 | Maven | `pkg:maven/org.bouncycastle/bcprov-jdk15to18` | >= 1.73, < 1.78 | 1.78 |
| org.bouncycastle:bcprov-jdk14 | Maven | `pkg:maven/org.bouncycastle/bcprov-jdk14` | >= 1.73, < 1.78 | 1.78 |
| org.bouncycastle:bctls-jdk18on | Maven | `pkg:maven/org.bouncycastle/bctls-jdk18on` | >= 1.73, < 1.78 | 1.78 |
| org.bouncycastle:bctls-jdk14 | Maven | `pkg:maven/org.bouncycastle/bctls-jdk14` | >= 1.73, < 1.78 | 1.78 |
| org.bouncycastle:bctls-jdk15to18 | Maven | `pkg:maven/org.bouncycastle/bctls-jdk15to18` | >= 1.73, < 1.78 | 1.78 |
| BouncyCastle | NuGet | `pkg:nuget/BouncyCastle` | < 2.3.1 | no fix |
| BouncyCastle.Cryptography | NuGet | `pkg:nuget/BouncyCastle.Cryptography` | < 2.3.1 | 2.3.1 |

## Fix commits

- Patch: https://github.com/bcgit/bc-java/commit/1b9fd9b545e691bfb3941a9f6a797660c8860f02
- Patch: https://github.com/bcgit/bc-java/commit/9c165791b68a204678b48ec11e4e579754c2ea49
- Patch: https://github.com/bcgit/bc-java/commit/ebe1c75579170072dc59b8dee2b55ce31663178f

## Questions

**What is the GHSA ID for CVE-2024-30172?**

GitHub tracks CVE-2024-30172 as GHSA-m44j-cfrm-g8qc.

**What is the CVSS score of CVE-2024-30172?**

CVE-2024-30172 has a CVSS 4.0 base score of 6.9 (Medium), vector CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N. Other published scores: CVSS 3.1 5.3, CVSS 3.1 7.5.

**Which versions are affected by CVE-2024-30172?**

org.bouncycastle:bcprov-jdk18on (Maven): >= 1.73, < 1.78. org.bouncycastle:bcprov-jdk15to18 (Maven): >= 1.73, < 1.78. org.bouncycastle:bcprov-jdk14 (Maven): >= 1.73, < 1.78. org.bouncycastle:bctls-jdk18on (Maven): >= 1.73, < 1.78. org.bouncycastle:bctls-jdk14 (Maven): >= 1.73, < 1.78. org.bouncycastle:bctls-jdk15to18 (Maven): >= 1.73, < 1.78. 2 more packages are listed on the page.

**How do I fix CVE-2024-30172?**

Upgrade each package to its fixed version: org.bouncycastle:bcprov-jdk18on 1.78; org.bouncycastle:bcprov-jdk15to18 1.78; org.bouncycastle:bcprov-jdk14 1.78; org.bouncycastle:bctls-jdk18on 1.78; and 3 more packages. The fix is in commits 1b9fd9b, 9c16579 and ebe1c75.

**What is the Package URL (PURL) for CVE-2024-30172?**

The affected packages' PURLs are pkg:maven/org.bouncycastle/bcprov-jdk18on, pkg:maven/org.bouncycastle/bcprov-jdk15to18, pkg:maven/org.bouncycastle/bcprov-jdk14, pkg:maven/org.bouncycastle/bctls-jdk18on, pkg:maven/org.bouncycastle/bctls-jdk14 and pkg:maven/org.bouncycastle/bctls-jdk15to18 and more.

**Is CVE-2024-30172 exploited in the wild?**

CISA's Known Exploited Vulnerabilities catalog doesn't list CVE-2024-30172. That means no confirmed exploitation has been catalogued, not that it is safe to leave unpatched. CISA's SSVC assessment rates exploitation as "none". EPSS estimates a 0.75% chance of exploitation in the next 30 days, higher than 53% of CVEs.

## References

- https://github.com/bcgit/bc-java/commit/1b9fd9b545e691bfb3941a9f6a797660c8860f02 (fix)
- https://github.com/bcgit/bc-java/commit/9c165791b68a204678b48ec11e4e579754c2ea49 (fix)
- https://github.com/bcgit/bc-java/commit/ebe1c75579170072dc59b8dee2b55ce31663178f (fix)
- https://nvd.nist.gov/vuln/detail/CVE-2024-30172 (advisory)
- https://security.netapp.com/advisory/ntap-20240614-0007 (advisory)
- https://github.com/advisories/GHSA-m44j-cfrm-g8qc (advisory)
- https://github.com/bcgit/bc-csharp/wiki/CVE%E2%80%902024%E2%80%9030172
- https://github.com/bcgit/bc-java/wiki/CVE%E2%80%902024%E2%80%9030172
- https://www.bouncycastle.org/latest_releases.html

---

Source: CVEminer (https://cveminer.com/vulnerabilities/CVE-2024-30172), compiled from OSV (GitHub advisory), GitHub Advisory Database, OSV (CVE record), CVE.org, CISA KEV catalog. OSV and GitHub Advisory Database content is licensed CC BY 4.0.
