CVE-2013-1624: Medium severity bouncycastle Legion-of-the-bouncy-castle-java-crytography-api vulnerability

Published Feb 4, 2013
·
Updated

A flaw in how TLS/DTLS, when CBC-mode encryption is used, communicates was reported. This vulnerability can allow for a Man-in-the-Middle attacker to recover plaintext from a TLS/DTLS connection, when CBC-mode encryption is used.

This flaw is in the TLS specification, and not a bug in a specific implementation (as such, it affects nearly all implementations). As such, it affects all TLS and DTLS implementations that are compliant with TLS 1.1 or 1.2, or with DTLS 1.0 or 1.2. It also applies to implementations of SSL 3.0 and TLS 1.0 that incorporate countermeasures to deal with previous padding oracle attacks. All TLS/DTLS ciphersuites that include CBC-mode encryption are potentially vulnerable.

The paper indicates that with OpenSSL, a full plaintext recovery attack is possible, and with GnuTLS, a partial plaintext recovery is possible (recovering up to 4 bits of the last byte in any block of plaintext).

To perform a successful attack, when TLS is used, a large number of TLS sessions are required (target plaintext must be sent repeatedly in the same position in the plaintext stream across the sessions). For DTLS, a successful attack can be carried out in a single session. The attacker must also be located close to the machine being attacked.

Further details are noted in the paper.

Current status of fixes in various implementations:

OpenSSL has a patch in development NSS has a patch in development GnuTLS is fixed in versions 2.12.23, 3.0.28, and 3.1.7 PolarSSL is fixed in version 1.2.5 BouncyCastle has a patch that will be included in the forthcoming 1.48 version

External References:

http://www.isg.rhul.ac.uk/tls/ http://www.isg.rhul.ac.uk/tls/TLStiming.pdf

Other sources

Bouncy Castle could allow a remote attacker to obtain sensitive information, caused by the exposure of timing differences during padding check verification by the CBC ciphersuite of the Transport Layer Security (TLS) implementation. An attacker could exploit this vulnerability using a timing attack to recover the original plaintext and obtain sensitive information.

IBM

It was discovered that bouncycastle leaked timing information when decrypting TLS/SSL protocol encrypted records when CBC-mode cipher suites were used. A remote attacker could possibly use this flaw to retrieve plain text from the encrypted packets by using a TLS/SSL server as a padding oracle.

The TLS implementation in the Bouncy Castle Java library before 1.48 and C# library before 1.8 does not properly consider timing side-channel attacks on a noncompliant MAC check operation during the processing of malformed CBC padding, which allows remote attackers to conduct distinguishing attacks and plaintext-recovery attacks via statistical analysis of timing data for crafted packets, a related issue to CVE-2013-0169.

Affected Software

105 affected componentsFixes available
redhat/bouncycastle<1.48
1.48
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.01
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.02
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.03
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.04
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.05
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.06
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.07
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.08
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.09
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.10
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.11
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.12
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.13
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.14
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.15
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.16
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.17
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.18
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.19
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.20
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.21
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.22
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.23
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.24
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.25
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.26
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.27
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.28
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.29
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.30
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.31
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.32
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.33
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.34
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.35
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.36
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.37
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.38
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.39
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.40
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.41
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.42
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.43
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.44
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.45
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.46
bouncycastle Legion-of-the-bouncy-castle-java-crytography-api=1.47
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=0.0
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.0
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.1
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.2
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.3
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.4
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.5
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.6.1
bouncycastle Legion-of-the-bouncy-castle-c\#-cryptography-api=1.7
IBM GDE<=3.0.0.2
bouncycastle bc-java=1.01
bouncycastle bc-java=1.02
bouncycastle bc-java=1.03
bouncycastle bc-java=1.04
bouncycastle bc-java=1.05
bouncycastle bc-java=1.06
bouncycastle bc-java=1.07
bouncycastle bc-java=1.08
bouncycastle bc-java=1.09
bouncycastle bc-java=1.10
bouncycastle bc-java=1.11
bouncycastle bc-java=1.12
bouncycastle bc-java=1.13
bouncycastle bc-java=1.14
bouncycastle bc-java=1.15
bouncycastle bc-java=1.16
bouncycastle bc-java=1.17
bouncycastle bc-java=1.18
bouncycastle bc-java=1.19
bouncycastle bc-java=1.20
bouncycastle bc-java=1.21
bouncycastle bc-java=1.22
bouncycastle bc-java=1.23
bouncycastle bc-java=1.24
bouncycastle bc-java=1.25
bouncycastle bc-java=1.26
bouncycastle bc-java=1.27
bouncycastle bc-java=1.28
bouncycastle bc-java=1.29
bouncycastle bc-java=1.30
bouncycastle bc-java=1.31
bouncycastle bc-java=1.32
bouncycastle bc-java=1.33
bouncycastle bc-java=1.34
bouncycastle bc-java=1.35
bouncycastle bc-java=1.36
bouncycastle bc-java=1.37
bouncycastle bc-java=1.38
bouncycastle bc-java=1.39
bouncycastle bc-java=1.40
bouncycastle bc-java=1.41
bouncycastle bc-java=1.42
bouncycastle bc-java=1.43
bouncycastle bc-java=1.44
bouncycastle bc-java=1.45
bouncycastle bc-java=1.46
bouncycastle bc-java=1.47

Event History

Feb 4, 2013
CVE Published
12:00 AM
Data Sourced
12:00 AM
RemedyDescriptionSeverityWeaknessAffected Software
Feb 8, 2013
CVE Published
via MITRE·07:00 PM
Data Sourced
via MITRE·07:00 PM
Description

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2013-1624?

CVE-2013-1624 is rated as a high-severity vulnerability due to its potential for a Man-in-the-Middle attack.

2

How do I fix CVE-2013-1624?

To fix CVE-2013-1624, it is recommended to update affected software to a version that disables CBC-mode in TLS/DTLS.

3

Which software is affected by CVE-2013-1624?

CVE-2013-1624 affects various versions of IBM GDE and multiple versions of the Bouncy Castle Crypto Package.

4

What type of attack does CVE-2013-1624 enable?

CVE-2013-1624 enables a Man-in-the-Middle attack, allowing the attacker to recover plaintext from a TLS/DTLS connection.

5

Is CVE-2013-1624 a design flaw?

Yes, CVE-2013-1624 is a design flaw in the TLS specification rather than a bug in a specific implementation.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203