Bouncy Castle JCE Provider DHIES/ECIES CBC Mode Vulnerability - CVE-2016-1000345
Summary
CVE-2016-1000345: In the Bouncy Castle JCE Provider version 1.55 and earlier the DHIES/ECIES CBC mode vulnerable to padding oracle attack. Affects bouncycastle across 2 version ranges.
< 1.56-1
< 21dcb3d9744c83dcf2ff8fcee06dbca7bfa4ef35
Fixed in 1.56-1. How to fix ↓
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.
No signup required · Results in about 60 seconds
Background
Bouncy Castle is a widely used cryptographic library that provides a range of cryptographic algorithms and protocols. It is implemented in Java and is utilized in various applications for secure data transmission and encryption. The library's DHIES/ECIES CBC mode is designed to enhance security during encryption; however, it has been found to be vulnerable to a padding oracle attack in versions 1.55 and earlier, which can compromise the confidentiality of encrypted data.
Vulnerability Detail
The vulnerability identified as CVE-2016-1000345 affects the Bouncy Castle JCE Provider in versions 1.55 and earlier. It arises from the DHIES/ECIES CBC mode's susceptibility to padding oracle attacks. In environments where timing can be observed, an attacker can exploit this vulnerability to determine when decryption fails due to incorrect padding. This can lead to unauthorized access to sensitive information, as attackers can gradually decrypt data by observing the application's responses to their inputs.
How To Fix
Minimum fixed version
1.56-1
This is the first release that contains the fix.
sudo apt-get install --only-upgrade bouncycastle
Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →
Workaround
If immediate upgrading is not feasible, consider implementing additional security measures such as rate limiting on decryption attempts or using alternative encryption modes that are not susceptible to padding oracle attacks. However, these are temporary solutions and upgrading is strongly recommended.
Conclusion
The Bouncy Castle JCE Provider vulnerability CVE-2016-1000345 poses a significant risk due to its susceptibility to padding oracle attacks. Users are strongly advised to upgrade to version 1.56 or later to mitigate this risk. Implementing additional security measures can provide temporary relief, but upgrading is the most effective solution.
See every vulnerability recorded for bouncycastle →
FAQ
CVE-2016-1000345 is a vulnerability in the Bouncy Castle JCE Provider that allows attackers to exploit padding oracle attacks in the DHIES/ECIES CBC mode.
Versions 1.55 and earlier of the Bouncy Castle JCE Provider are affected by this vulnerability.
Exploitation of this vulnerability can lead to unauthorized access to sensitive data, as attackers can decrypt encrypted information by observing application responses.
You can use Vulert, which monitors open-source vulnerabilities in your software using a manifest file like package-lock.json. You can check your application for this vulnerability using the Vulert playground without any signup.
The CVSS score of CVE-2016-1000345 is 5.9, indicating a medium severity level.
Related vulnerabilities
Recent vulnerabilities recorded for bouncycastle.