Quick answers
- Is CVE-2024-34447 exploited in the wild?
- No. Junglewise Threat Intelligence has no report of CVE-2024-34447 being exploited in the wild.
- How severe is CVE-2024-34447?
- Medium severity, with a CVSS score of 5.9, published 3 May 2024.
- Which products and versions are affected?
- Bouncy Castle Crypto Package For Java >= 1.61, < 1.78; Bouncy Castle FIPS TLS Java < 1.0.19; Bouncy Castle Java LTS < 2.73.6; org.bouncycastle:bcprov-jdk12 (Maven) >= 1.61, < 1.78, ECOSYSTEM:introduced=1.61,fixed=1.78; and 6 more.
- Is there a fix for CVE-2024-34447?
- Yes. org.bouncycastle:bcprov-jdk12 (Maven): upgrade to 1.78 or later; org.bouncycastle:bcprov-jdk14 (Maven): upgrade to 1.78 or later; org.bouncycastle:bcprov-jdk15on (Maven): upgrade to 1.78 or later; org.bouncycastle:bcprov-jdk15to18 (Maven): upgrade to 1.78 or later; org.bouncycastle:bcprov-jdk18on (Maven): upgrade to 1.78 or later; org.bouncycastle:bcprov-lts8on (Maven): upgrade to 2.73.6 or later; org.bouncycastle:bctls-fips (Maven): upgrade to 1.0.19 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
- How is CVE-2024-34447 attacked?
- It is attacked over the network, in a software library.
- Am I affected by CVE-2024-34447?
- Check whether you run Bouncy Castle Crypto Package For Java, Bouncy Castle FIPS TLS Java, Bouncy Castle Java LTS or one of the others listed at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.
How to fix
- org.bouncycastle:bcprov-jdk12 (Maven): upgrade to 1.78 or later
# set org.bouncycastle:bcprov-jdk12 to 1.78 in your pom.xml or build.gradle - org.bouncycastle:bcprov-jdk14 (Maven): upgrade to 1.78 or later
# set org.bouncycastle:bcprov-jdk14 to 1.78 in your pom.xml or build.gradle - org.bouncycastle:bcprov-jdk15on (Maven): upgrade to 1.78 or later
# set org.bouncycastle:bcprov-jdk15on to 1.78 in your pom.xml or build.gradle - org.bouncycastle:bcprov-jdk15to18 (Maven): upgrade to 1.78 or later
# set org.bouncycastle:bcprov-jdk15to18 to 1.78 in your pom.xml or build.gradle - org.bouncycastle:bcprov-jdk18on (Maven): upgrade to 1.78 or later
# set org.bouncycastle:bcprov-jdk18on to 1.78 in your pom.xml or build.gradle - org.bouncycastle:bcprov-lts8on (Maven): upgrade to 2.73.6 or later
# set org.bouncycastle:bcprov-lts8on to 2.73.6 in your pom.xml or build.gradle - org.bouncycastle:bctls-fips (Maven): upgrade to 1.0.19 or later
# set org.bouncycastle:bctls-fips to 1.0.19 in your pom.xml or build.gradle
Technical details
A vulnerability exists in the Bouncy Castle JSSE (BCJSSE) implementation where hostname verification may be performed against a DNS-resolved IP address rather than the intended hostname. This occurs specifically when endpoint identification is enabled and an SSL socket is created without an explicit hostname, such as through HttpsURLConnection. An attacker capable of performing DNS poisoning could cause the client to verify a certificate against a malicious IP, leading to a successful man-in-the-middle (MITM) attack despite TLS being active. The issue is fixed in BC Java 1.78, BC Java (LTS) 2.73.6, and BC FIPS TLS Java 1.0.19.
Affected products
- Bouncy Castle Bouncy Castle Crypto Package For Java >= 1.61, < 1.78
- Bouncy Castle Bouncy Castle Java LTS < 2.73.6
- Bouncy Castle Bouncy Castle FIPS TLS Java < 1.0.19
Identifiers
- CVE-2024-34447
- GHSA-4h8f-2wvx-gg5w
Timeline
- 2024-05-03: advisory: GitHub Advisory published
- 2024-05-03: disclosed: NVD publication date