CVE-2015-7940: org.bouncycastle:bcprov-jdk14 and org.bouncycastle:bcprov-jdk15 - Invalid Curve Attack

Summary

17/10/2018
Yes i
Moderate
Not published

CVE-2015-7940: The Bouncy Castle Java library before 1.51 does not validate a point is withing the elliptic curve, which makes it easier for remote attackers to obtain private keys via a series of crafted elliptic curve Diffie Hellman... Affects org.bouncycastle:bcprov-jdk15 versions < 1.51. Fixed in 1.51. How to fix ↓

Also tracked for

The same CVE-2015-7940 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Upload your dependency manifest or SBOM

Drag & drop your file here or

Java Javascript PHP Python Go Rust Ruby Dart C/C++ Elixir CycloneDX SPDX

Upload a supported dependency manifest or SBOM. No installation or source-code access required.

See supported files and SBOM formats
SBOM sbom.json · bom.json · bom.xml · *.spdx.json · *.cdx.json · *.cdx.xml
Java pom.xml · gradle.lockfile · buildscript-gradle.lockfile
Javascript package-lock.json · yarn.lock · pnpm-lock.yaml
PHP composer.lock
Python poetry.lock · requirements.txt · Pipfile.lock
Go go.mod
Rust Cargo.lock
Ruby Gemfile.lock
Dart pubspec.lock
C/C++ conan.lock
Elixir mix.lock
Enter your work email to receive your report link.

Verify your email to view the full report and start 30 days of continuous monitoring. No credit card required.

Sponsored MarkAI Find prospects already talking about the problem you solve AI watches the communities your customers use to find qualified prospects, then alerts you when a conversation is worth joining. See MarkAI

Background

The org.bouncycastle:bcprov-jdk14 and org.bouncycastle:bcprov-jdk15 packages are part of the Bouncy Castle Java library. These packages provide cryptographic algorithms and utilities for Java applications. The library includes support for elliptic curve cryptography, including elliptic curve Diffie Hellman (ECDH) key exchanges.

Vulnerability Detail

The Bouncy Castle Java library versions prior to 1.51 do not properly validate if a point is within the elliptic curve. This vulnerability allows remote attackers to obtain private keys by exploiting a series of crafted elliptic curve Diffie Hellman (ECDH) key exchanges. This attack is known as an 'invalid curve attack'. By manipulating the key exchange process, an attacker can retrieve sensitive information and compromise the security of the system.

How To Fix

Minimum fixed version

1.51

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

There is no known workaround for this vulnerability. It is necessary to update the affected packages to the fixed version.

Conclusion

The org.bouncycastle:bcprov-jdk14 and org.bouncycastle:bcprov-jdk15 packages are vulnerable to an 'invalid curve attack' that allows remote attackers to obtain private keys. To mitigate this vulnerability, it is crucial to update the affected packages to version 1.51 or later. For further support on vulnerability remediation, please contact DevNack.com.

See every vulnerability recorded for org.bouncycastle:bcprov-jdk15 →

Share this vulnerability

FAQ

This vulnerability allows remote attackers to obtain private keys, potentially leading to unauthorized access, data leakage, or further compromise of the system.

No, only versions prior to 1.51 of the org.bouncycastle:bcprov-jdk14 and org.bouncycastle:bcprov-jdk15 packages are affected.

Yes, an 'invalid curve attack' can be used to exploit this vulnerability and retrieve private keys.

No, the vulnerability is inherent to the affected versions of the Bouncy Castle library. Updating to the fixed version is the recommended solution.

You can find more information about this vulnerability in the CVE-2015-7940 advisory and the GitHub advisory database.

How To Fix

Minimum fixed version

1.51

This is the first release that contains the fix.

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback