CVE-2017-13098
BouncyCastle JCE TLS Bleichenbacher/ROBOT
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
7.5
BouncyCastle JCE TLS Bleichenbacher/ROBOT
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
CVE-2017-13098- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-203
- Updated
- 2026-11-02
EUVDEUVD-2022-5636
7.5
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
EUVD-2022-5636- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-03
GitHub AdvisoriesGHSA-wrwf-pmmj-w989
5.9
Observable Discrepancy in BouncyCastle
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
GHSA-wrwf-pmmj-w989- CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-203
- Updated
- 2026-11-02
NVD
7.5
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
CVE-2017-13098- CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 2.0
- 4.3 Medium
AV:N/AC:M/Au:N/C:P/I:N/A:N - Weakness
- CWE-203
- Updated
- 2026-11-02
OSV
5.9
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
CVE-2017-13098- CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVDEBIAN-CVE-2017-13098
5.9
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
DEBIAN-CVE-2017-13098- CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Show 5 moreShow less
OSVGHSA-wrwf-pmmj-w989
5.9
Observable Discrepancy in BouncyCastle
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
GHSA-wrwf-pmmj-w989- CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-203
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2017-13098
5.9
BouncyCastle TLS prior to version 1.0.3, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provides a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange is negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT."
- Record
UBUNTU-CVE-2017-13098- CVSS 3.0
- 5.9 Medium
CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N - CVSS 3.0
- 7.5 High
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
OSVMGASA-2018-0376 No score
Updated bouncycastle packages fix security vulnerabilities
Updated bouncycastle packages fix security vulnerabilities:
Ensure full validation of ASN.1 encoding of signature on verification. It was possible to inject extra elements in the sequence making up the signature and still have it validate, which in some cases may have allowed the introduction of 'invisible' data into a signed structure (CVE-2016-1000338).
Prevent AESEngine key information leak via lookup table accesses (CVE-2016-1000339).
Preventcarry propagation bugs in the implementation of squaring for several raw math classes (CVE-2016-1000340).
DSA signature generation was vulnerable to timing attack. Where timings can be closely observed for the generation of signatures may have allowed an attacker to gain information about the signature's k value and ultimately the private value as well (CVE-2016-1000341).
Ensure that ECDSA does fully validate ASN.1 encoding of signature on verification. It was possible to inject extra elements in the sequence making up the signature and still have it validate, which in some cases may have allowed the introduction of 'invisible' data into a signed structure (CVE-2016-1000342).
Prevent weak default settings for private DSA key pair generation (CVE-2016-1000343).
Removed DHIES from the provider to disable the unsafe usage of ECB mode (CVE-2016-1000344).
The DHIES/ECIES CBC mode was vulnerable to padding oracle attack. In an environment where timings can be easily observed, it was possible with enough observations to identify when the decryption is failing due to padding (CVE-2016-1000345).
The other party DH public key was not fully validated. This could have caused issues as invalid keys could be used to reveal details about the other party's private key where static Diffie-Hellman is in use (CVE-2016-1000346).
Remove ECIES from the provider to disable the unsafe usage of ECB mode (CVE-2016-1000352).
BouncyCastle, when configured to use the JCE (Java Cryptography Extension) for cryptographic functions, provided a weak Bleichenbacher oracle when any TLS cipher suite using RSA key exchange was negotiated. An attacker can recover the private key from a vulnerable application. This vulnerability is referred to as "ROBOT" (CVE-2017-13098).
It was discovered that the low-level interface to the RSA key pair generator of Bouncy Castle (a Java implementation of cryptographic algorithms) could perform less Miller-Rabin primality tests than expected (CVE-2018-1000180).
Fix use of Externally-Controlled Input to Select Classes or Code ('Unsafe Reflection') (CVE-2018-1000613).
- Record
MGASA-2018-0376- Updated
- 2026-11-02
OSVopenSUSE-SU-2020:0607-1 No score
Security update for bouncycastle
This update for bouncycastle fixes the following issues:
Version update to 1.60:
-
CVE-2018-1000613: Use of Externally-ControlledInput to Select Classes or Code (boo#1100694)
-
Release notes: http://www.bouncycastle.org/releasenotes.html
Version update to 1.59:
- CVE-2017-13098: Fix against Bleichenbacher oracle when not using the lightweight APIs (boo#1072697).
- Release notes: http://www.bouncycastle.org/releasenotes.html
- Record
openSUSE-SU-2020:0607-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2024:10661-1 No score
bouncycastle-1.68-3.2 on GA media
These are all security issues fixed in the bouncycastle-1.68-3.2 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2024:10661-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
org.bouncycastle:bcprov-jdk15onMaven |
before 1.0.3 | 1.0.3 |
bouncycastleDebian:12 |
before 1.58-1 | 1.58-1 |
bouncycastleDebian:13 |
before 1.58-1 | 1.58-1 |
bouncycastleDebian:14 |
before 1.58-1 | 1.58-1 |
bouncycastleDebian:9 |
before 1.56-1+deb9u1, plus listed versions 1.56-1 |
1.56-1+deb9u1 |
bouncycastleMageia:6 From an advisory covering 13 CVEs |
before 1.60-1.mga6 | 1.60-1.mga6 |
bouncycastleopenSUSE:Leap 15.1 From an advisory covering 2 CVEs |
before 1.60-lp151.3.3.1 | 1.60-lp151.3.3.1 |
bouncycastleopenSUSE:Tumbleweed From an advisory covering 16 CVEs |
before 1.68-3.2 | 1.68-3.2 |
Public exploits
Links only. Every CVE stores no exploit code.
| Source | Link | Date |
|---|---|---|
| Metasploit | Scanner for Bleichenbacher Oracle in RSA PKCS #1 v1.5 | 2009-06-17 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| aliases | EUVD | |
| first indexed | CVE List, GitHub Advisories, Metasploit, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2017-13098 is a high vulnerability (CVSS 7.5) in Legion Of The Bouncy Castle Bouncycastle Tls, published December 13, 2017. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 24.3%, the 97th percentile. Fixed in org.bouncycastle:bcprov-jdk15on 1.0.3.
References
securityfocus.com/bid/102195
kb.cert.org/vuls/id/144389
debian.org/security/2017/dsa-4072
lists.opensuse.org/opensuse-security-announce/2020-05/msg00011.html
oracle.com/security-alerts/cpuoct2020.html
robotattack.org
Show 32 moreShow less
github.com/bcgit/bc-java/commit/a00b684465b38d722ca9a3543b8af8568e6bad5c
security.netapp.com/advisory/ntap-20171222-0001
nvd.nist.gov/vuln/detail/CVE-2017-13098
github.com/advisories/GHSA-wrwf-pmmj-w989
security-tracker.debian.org/tracker/CVE-2017-13098
github.com/bcgit/bc-java
advisories.mageia.org/MGASA-2018-0376.html
bugs.mageia.org/show_bug.cgi?id=22197
debian.org/security/2018/dsa-4233
lists.opensuse.org/opensuse-updates/2018-06/msg00085.html
lists.opensuse.org/opensuse-updates/2018-07/msg00089.html
ubuntu.com/security/CVE-2017-13098
cve.org/CVERecord?id=CVE-2017-13098
lists.opensuse.org/archives/list/[email protected]/thread/SJ5CQDJZHIR5UUASDLGQDV3YILWDOSU3
bugzilla.suse.com/1072697
bugzilla.suse.com/1100694
suse.com/security/cve/CVE-2017-13098
suse.com/security/cve/CVE-2018-1000613
suse.com/security/cve/CVE-2016-1000338
suse.com/security/cve/CVE-2016-1000339
suse.com/security/cve/CVE-2016-1000340
suse.com/security/cve/CVE-2016-1000341
suse.com/security/cve/CVE-2016-1000342
suse.com/security/cve/CVE-2016-1000343
suse.com/security/cve/CVE-2016-1000344
suse.com/security/cve/CVE-2016-1000345
suse.com/security/cve/CVE-2016-1000346
suse.com/security/cve/CVE-2016-1000352
suse.com/security/cve/CVE-2018-1000180
suse.com/security/cve/CVE-2019-17359
suse.com/security/cve/CVE-2020-15522
suse.com/security/cve/CVE-2020-28052