CVE-2018-1000613
📋 TL;DR
This vulnerability in Bouncy Castle Java Cryptography APIs allows remote code execution through unsafe reflection during XMSS/XMSS^MT private key deserialization. Attackers can craft malicious private keys that reference arbitrary classes from the application's classpath, leading to unexpected code execution. Applications using Bouncy Castle 1.58-1.59 for XMSS key operations are affected.
💻 Affected Systems
- Bouncy Castle Java Cryptography APIs
📦 What is this software?
Bc Java by Bouncycastle
Business Process Management Suite by Oracle
Business Process Management Suite by Oracle
Business Process Management Suite by Oracle
Communications Application Session Controller by Oracle
View all CVEs affecting Communications Application Session Controller →
Communications Application Session Controller by Oracle
View all CVEs affecting Communications Application Session Controller →
Communications Converged Application Server by Oracle
View all CVEs affecting Communications Converged Application Server →
Communications Converged Application Server by Oracle
View all CVEs affecting Communications Converged Application Server →
Communications Diameter Signaling Router by Oracle
View all CVEs affecting Communications Diameter Signaling Router →
Communications Diameter Signaling Router by Oracle
View all CVEs affecting Communications Diameter Signaling Router →
Communications Diameter Signaling Router by Oracle
View all CVEs affecting Communications Diameter Signaling Router →
Communications Diameter Signaling Router by Oracle
View all CVEs affecting Communications Diameter Signaling Router →
Communications Webrtc Session Controller by Oracle
View all CVEs affecting Communications Webrtc Session Controller →
Communications Webrtc Session Controller by Oracle
View all CVEs affecting Communications Webrtc Session Controller →
Enterprise Manager Base Platform by Oracle
Enterprise Manager Base Platform by Oracle
Enterprise Manager Base Platform by Oracle
Enterprise Manager For Fusion Middleware by Oracle
View all CVEs affecting Enterprise Manager For Fusion Middleware →
Enterprise Manager For Fusion Middleware by Oracle
View all CVEs affecting Enterprise Manager For Fusion Middleware →
Leap by Opensuse
Peoplesoft Enterprise Peopletools by Oracle
Peoplesoft Enterprise Peopletools by Oracle
Peoplesoft Enterprise Peopletools by Oracle
Retail Convenience And Fuel Pos Software by Oracle
View all CVEs affecting Retail Convenience And Fuel Pos Software →
Soa Suite by Oracle
Soa Suite by Oracle
Utilities Network Management System by Oracle
View all CVEs affecting Utilities Network Management System →
Utilities Network Management System by Oracle
View all CVEs affecting Utilities Network Management System →
Utilities Network Management System by Oracle
View all CVEs affecting Utilities Network Management System →
⚠️ Risk & Real-World Impact
Worst Case
Full remote code execution with application privileges, potentially leading to complete system compromise, data theft, or lateral movement.
Likely Case
Remote code execution in applications that deserialize untrusted XMSS private keys, allowing attackers to execute arbitrary code within the application context.
If Mitigated
Limited impact if proper input validation and sandboxing prevent execution of malicious classes.
🎯 Exploit Status
Exploitation requires crafting malicious XMSS private keys and getting them deserialized by vulnerable applications. No public exploit code is documented.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: 1.60 and later
Vendor Advisory: https://github.com/bcgit/bc-java/commit/4092ede58da51af9a21e4825fbad0d9a3ef5a223
Restart Required: Yes
Instructions:
1. Update Bouncy Castle library to version 1.60 or higher. 2. Replace bcprov-jdk15on-1.58/1.59 JAR files with bcprov-jdk15on-1.60+. 3. Restart all Java applications using Bouncy Castle. 4. Verify no older versions remain in classpath.
🔧 Temporary Workarounds
Disable XMSS key processing
allPrevent deserialization of XMSS/XMSS^MT private keys if not required
Configure applications to reject XMSS key types
Implement input validation to block XMSS private keys
Classpath restriction
allLimit available classes in application classpath to reduce attack surface
Use custom classloaders with restricted class access
Implement Java Security Manager policies
🧯 If You Can't Patch
- Implement strict input validation to reject untrusted XMSS private keys
- Isolate vulnerable applications in network segments with limited access
🔍 How to Verify
Check if Vulnerable:
Check Bouncy Castle version in classpath: find JAR files containing 'bcprov' and verify version is 1.58 or 1.59
Check Version:
java -cp bcprov-jdk15on-*.jar org.bouncycastle.jcajce.provider.BouncyCastleProvider | grep 'BouncyCastle Security Provider'
Verify Fix Applied:
Confirm bcprov-jdk15on-1.60+ JAR files are present and no 1.58/1.59 versions remain
📡 Detection & Monitoring
Log Indicators:
- Java exceptions during XMSS key deserialization
- ClassNotFound or ClassCast exceptions from Bouncy Castle
- Unexpected class loading events
Network Indicators:
- Inbound connections delivering binary/key data to applications using Bouncy Castle
- Unusual outbound connections after key processing
SIEM Query:
source="*java*" AND ("XMSS" OR "BouncyCastle" OR "ClassNotFoundException")
🔗 References
- http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00011.html
- https://github.com/bcgit/bc-java/commit/4092ede58da51af9a21e4825fbad0d9a3ef5a223#diff-2c06e2edef41db889ee14899e12bd574
- https://github.com/bcgit/bc-java/commit/cd98322b171b15b3f88c5ec871175147893c31e6#diff-148a6c098af0199192d6aede960f45dc
- https://lists.apache.org/thread.html/rf1bbc0ea4a9f014cf94df9a12a6477d24a27f52741dbc87f2fd52ff2%40%3Cissues.geode.apache.org%3E
- https://security.netapp.com/advisory/ntap-20190204-0003/
- https://www.oracle.com/security-alerts/cpuApr2021.html
- https://www.oracle.com/security-alerts/cpuapr2020.html
- https://www.oracle.com/security-alerts/cpuoct2020.html
- https://www.oracle.com/technetwork/security-advisory/cpuapr2019-5072813.html
- https://www.oracle.com/technetwork/security-advisory/cpujan2019-5072801.html
- https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html
- http://lists.opensuse.org/opensuse-security-announce/2020-05/msg00011.html
- https://github.com/bcgit/bc-java/commit/4092ede58da51af9a21e4825fbad0d9a3ef5a223#diff-2c06e2edef41db889ee14899e12bd574
- https://github.com/bcgit/bc-java/commit/cd98322b171b15b3f88c5ec871175147893c31e6#diff-148a6c098af0199192d6aede960f45dc
- https://lists.apache.org/thread.html/rf1bbc0ea4a9f014cf94df9a12a6477d24a27f52741dbc87f2fd52ff2%40%3Cissues.geode.apache.org%3E
- https://security.netapp.com/advisory/ntap-20190204-0003/
- https://www.oracle.com/security-alerts/cpuApr2021.html
- https://www.oracle.com/security-alerts/cpuapr2020.html
- https://www.oracle.com/security-alerts/cpuoct2020.html
- https://www.oracle.com/technetwork/security-advisory/cpuapr2019-5072813.html
- https://www.oracle.com/technetwork/security-advisory/cpujan2019-5072801.html
- https://www.oracle.com/technetwork/security-advisory/cpujul2019-5072835.html