CVE-2016-1000352: Bouncy Castle JCE Provider ECB Mode Vulnerability

Summary

17/10/2018
Yes i
High
7.4

CVE-2016-1000352: In Bouncy Castle JCE Provider the ECIES implementation allowed the use of ECB mode. Affects org.bouncycastle:bcprov-jdk14 versions < 1.56. Fixed in 1.56. How to fix ↓

Also tracked for

The same CVE-2016-1000352 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 Penetration testing for web, API and mobile 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 services. It is commonly used in Java applications for secure communication and data protection. The vulnerable version of the provider, 1.55 and earlier, allowed the use of ECB (Electronic Codebook) mode in its ECIES (Elliptic Curve Integrated Encryption Scheme) implementation. ECB mode is considered unsafe due to its lack of diffusion and vulnerability to certain attacks.

Vulnerability Detail

The vulnerability (CVE-2016-1000352) in the Bouncy Castle JCE Provider arises from the use of ECB mode in the ECIES implementation. ECB mode does not provide proper encryption security as it does not incorporate any form of diffusion. This makes it susceptible to various cryptographic attacks, including known-plaintext attacks and pattern recognition attacks. An attacker could exploit this vulnerability to decrypt encrypted data or manipulate the ciphertext to gain unauthorized access or perform malicious actions.

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 specific workaround mentioned for this vulnerability. The recommended solution is to update to the fixed version of the Bouncy Castle JCE Provider.

Conclusion

The Bouncy Castle JCE Provider version 1.55 and earlier is vulnerable to a security issue where ECB mode is allowed in the ECIES implementation. This mode is considered unsafe and has been removed in the fixed version (1.56) of the provider. To mitigate the vulnerability, it is crucial to update the Bouncy Castle JCE Provider to the fixed version. For further assistance and support in vulnerability remediation, 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 services for secure communication and data protection in Java applications.

ECB (Electronic Codebook) mode is a basic encryption mode where each plaintext block is directly encrypted into a corresponding ciphertext block using the same key. It does not provide proper diffusion and is considered insecure for most applications.

ECIES (Elliptic Curve Integrated Encryption Scheme) is a hybrid encryption scheme that combines symmetric encryption and asymmetric encryption using elliptic curve cryptography. It is commonly used for secure communication and data protection.

Using ECB mode in ECIES exposes encrypted data to various cryptographic attacks, including known-plaintext attacks and pattern recognition attacks. An attacker could decrypt the data or manipulate the ciphertext to gain unauthorized access or perform malicious actions.

To update the Bouncy Castle JCE Provider, you need to modify your project's dependencies to include the fixed version (1.56 or later) of the provider. After updating the dependencies, recompile your code to incorporate the changes.

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