CVE-2016-1000346: Insecure Validation of DH Public Key in Bouncy Castle JCE Provider

Summary

17/10/2018
Yes i
Low
3.7

CVE-2016-1000346: In Bouncy Castle JCE Provider the other party DH public key is not fully validated. Affects org.bouncycastle:bcprov-jdk14 versions < 1.56. Fixed in 1.56. How to fix ↓

Also tracked for

The same CVE-2016-1000346 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

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

The Bouncy Castle JCE Provider is a Java library that provides cryptographic services. It includes implementations of various cryptographic algorithms, including Diffie-Hellman (DH) key exchange. DH is a method of securely exchanging cryptographic keys over an insecure channel. The Bouncy Castle JCE Provider version 1.55 and earlier are affected by a vulnerability where the other party's DH public key is not fully validated. This can lead to the disclosure of details about the other party's private key when static Diffie-Hellman is used.

Vulnerability Detail

The vulnerability in the Bouncy Castle JCE Provider arises from the lack of complete validation of the other party's DH public key. This means that an attacker can use an invalid key to obtain information about the other party's private key. This can have serious consequences, as it compromises the security of the key exchange process and can lead to unauthorized access to encrypted data. The issue was addressed in version 1.56 of the library, where the key parameters are now properly checked during the agreement calculation.

How To Fix

Latest published version: 1.86 as of 22 Oct 2026

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.56

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 library to the fixed version.

Conclusion

The Bouncy Castle JCE Provider version 1.55 and earlier are vulnerable to an insecure validation of the other party's DH public key. This can lead to the disclosure of private key information and compromise the security of the key exchange process. To mitigate this vulnerability, it is crucial to update the library to version 1.56 or later. For additional support, please contact DevNack.com.

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

Share this vulnerability

FAQ

This vulnerability allows an attacker to obtain information about the other party's private key during a key exchange process. This can lead to unauthorized access to encrypted data and compromise the security of the system.

You can use the Vulert Playground (https://vulert.com/scanner) to check if your application is affected by this vulnerability. Simply provide your pom.xml file, and Vulert will analyze it and alert you if any vulnerable versions of the Bouncy Castle JCE Provider library are detected.

There are no known public exploits for this vulnerability at the time of writing. However, it is important to update the library to the fixed version to prevent any potential exploitation.

No, manual validation of the DH public key is not recommended as it requires a deep understanding of the cryptographic algorithms and their implementation. It is best to rely on the fixed version of the library, which includes proper validation of the key parameters.

For further support on vulnerability remediation and assistance with updating the Bouncy Castle JCE Provider library, you can contact info@devnack.com.

Related vulnerabilities

Recent vulnerabilities recorded for org.bouncycastle:bcprov-jdk14.

How To Fix

Latest published version: 1.86 as of 22 Oct 2026

Upgrading to it may include breaking changes; the version below is the minimum fixed release for this vulnerability.

If you need the minimum change

1.56

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