CVE-2016-1000340: Bouncy Castle JCE Provider Carry Propagation Bug

Summary

17/10/2018
Yes i
High
7.5

CVE-2016-1000340: The Bouncy Castle JCE Provider carry a propagation bug. Affects org.bouncycastle:bcprov-jdk14 versions >= 1.51, < 1.56. Fixed in 1.56. How to fix ↓

Also tracked for

The same CVE-2016-1000340 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 Cryptography Extension (JCE) provider that offers a wide range of cryptographic algorithms and utilities. It is commonly used in Java applications for secure communication, encryption, and digital signatures. The bcprov-jdk14 and bcprov-jdk15 packages are specific versions of the Bouncy Castle JCE Provider for JDK 1.4 and JDK 1.5, respectively. These packages provide support for elliptic curve cryptography (ECC) among other features.

Vulnerability Detail

The Bouncy Castle JCE Provider versions 1.51 to 1.55 suffer from a carry propagation bug in the implementation of squaring for certain raw math classes (org.bouncycastle.math.raw.Nat???). This bug affects the custom elliptic curve implementations (org.bouncycastle.math.ec.custom.**) provided by Bouncy Castle. The bug can lead to rare spurious calculations in elliptic curve scalar multiplications, which could result in incorrect cryptographic operations. However, the output validation for scalar multipliers would likely detect these errors with high probability.

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 →

Conclusion

The Bouncy Castle JCE Provider versions 1.51 to 1.55 are vulnerable to a carry propagation bug that can result in rare spurious calculations in elliptic curve scalar multiplications. To mitigate this vulnerability, it is advised to upgrade to version 1.56 or later of the Bouncy Castle JCE Provider. For further assistance or support in addressing this vulnerability, please contact DevNack.com.

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

Share this vulnerability

FAQ

The Bouncy Castle JCE Provider is a Java library that provides cryptographic algorithms and utilities for secure communication, encryption, and digital signatures.

Versions 1.51 to 1.55 of the Bouncy Castle JCE Provider are affected.

The vulnerability can result in rare spurious calculations in elliptic curve scalar multiplications, potentially leading to incorrect cryptographic operations.

To fix this vulnerability, you should upgrade the Bouncy Castle JCE Provider to version 1.56 or later.

There is no known workaround for this vulnerability. It is recommended to upgrade to the fixed version.

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