First published: Mon Feb 04 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 Full paper: <a href="http://www.isg.rhul.ac.uk/tls/TLStiming.pdf">http://www.isg.rhul.ac.uk/tls/TLStiming.pdf</a> External References: <a href="http://www.isg.rhul.ac.uk/tls/">http://www.isg.rhul.ac.uk/tls/</a> <a href="http://www.openssl.org/news/secadv_20130205.txt">http://www.openssl.org/news/secadv_20130205.txt</a> <a href="https://polarssl.org/tech-updates/releases/polarssl-1.2.5-released">https://polarssl.org/tech-updates/releases/polarssl-1.2.5-released</a>
Credit: secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
redhat/java | <1.6.0-openjdk-1:1.6.0.0-1.35.1.11.8.el5_9 | 1.6.0-openjdk-1:1.6.0.0-1.35.1.11.8.el5_9 |
redhat/java | <1.7.0-openjdk-1:1.7.0.9-2.3.7.1.el5_9 | 1.7.0-openjdk-1:1.7.0.9-2.3.7.1.el5_9 |
redhat/openssl | <0:0.9.8e-26.el5_9.1 | 0:0.9.8e-26.el5_9.1 |
redhat/java | <1.6.0-openjdk-1:1.6.0.0-1.56.1.11.8.el6_3 | 1.6.0-openjdk-1:1.6.0.0-1.56.1.11.8.el6_3 |
redhat/java | <1.7.0-openjdk-1:1.7.0.9-2.3.7.1.el6_3 | 1.7.0-openjdk-1:1.7.0.9-2.3.7.1.el6_3 |
redhat/openssl | <0:1.0.0-27.el6_4.2 | 0:1.0.0-27.el6_4.2 |
redhat/java | <1.6.0-ibm-1:1.6.0.14.0-1jpp.1.el6_4 | 1.6.0-ibm-1:1.6.0.14.0-1jpp.1.el6_4 |
redhat/rhev-hypervisor6 | <0:6.4-20130306.2.el6_4 | 0:6.4-20130306.2.el6_4 |
redhat/java | <1.6.0-sun-1:1.6.0.41-1jpp.1.el5_9 | 1.6.0-sun-1:1.6.0.41-1jpp.1.el5_9 |
redhat/java | <1.7.0-oracle-1:1.7.0.15-1jpp.1.el5_9 | 1.7.0-oracle-1:1.7.0.15-1jpp.1.el5_9 |
redhat/java | <1.7.0-ibm-1:1.7.0.4.2-1jpp.1.el5_9 | 1.7.0-ibm-1:1.7.0.4.2-1jpp.1.el5_9 |
redhat/java | <1.6.0-ibm-1:1.6.0.13.2-1jpp.1.el5_9 | 1.6.0-ibm-1:1.6.0.13.2-1jpp.1.el5_9 |
redhat/java | <1.5.0-ibm-1:1.5.0.16.2-1jpp.1.el5_9 | 1.5.0-ibm-1:1.5.0.16.2-1jpp.1.el5_9 |
redhat/java | <1.6.0-sun-1:1.6.0.41-1jpp.1.el6_3 | 1.6.0-sun-1:1.6.0.41-1jpp.1.el6_3 |
redhat/java | <1.7.0-oracle-1:1.7.0.15-1jpp.1.el6_3 | 1.7.0-oracle-1:1.7.0.15-1jpp.1.el6_3 |
redhat/java | <1.7.0-ibm-1:1.7.0.4.2-1jpp.1.el6_4 | 1.7.0-ibm-1:1.7.0.4.2-1jpp.1.el6_4 |
redhat/java | <1.6.0-ibm-1:1.6.0.13.2-1jpp.1.el6_4 | 1.6.0-ibm-1:1.6.0.13.2-1jpp.1.el6_4 |
redhat/java | <1.5.0-ibm-1:1.5.0.16.2-1jpp.1.el6_4 | 1.5.0-ibm-1:1.5.0.16.2-1jpp.1.el6_4 |
redhat/openssl | <1.0.1 | 1.0.1 |
redhat/openssl | <0.9.8 | 0.9.8 |
redhat/polarssl | <1.2.5 | 1.2.5 |
redhat/icedtea6 | <1.11.8 | 1.11.8 |
redhat/icedtea6 | <1.12.3 | 1.12.3 |
redhat/icedtea7 | <2.1.6 | 2.1.6 |
redhat/icedtea7 | <2.2.6 | 2.2.6 |
redhat/icedtea7 | <2.3.7 | 2.3.7 |
OpenSSL libcrypto | >=0.9.8<=0.9.8x | |
OpenSSL libcrypto | >=1.0.0<=1.0.0j | |
OpenSSL libcrypto | >=1.0.1<=1.0.1d | |
Oracle OpenJDK | =1.6.0 | |
Oracle OpenJDK | =1.6.0-update1 | |
Oracle OpenJDK | =1.6.0-update10 | |
Oracle OpenJDK | =1.6.0-update11 | |
Oracle OpenJDK | =1.6.0-update12 | |
Oracle OpenJDK | =1.6.0-update13 | |
Oracle OpenJDK | =1.6.0-update14 | |
Oracle OpenJDK | =1.6.0-update15 | |
Oracle OpenJDK | =1.6.0-update16 | |
Oracle OpenJDK | =1.6.0-update17 | |
Oracle OpenJDK | =1.6.0-update18 | |
Oracle OpenJDK | =1.6.0-update19 | |
Oracle OpenJDK | =1.6.0-update2 | |
Oracle OpenJDK | =1.6.0-update20 | |
Oracle OpenJDK | =1.6.0-update21 | |
Oracle OpenJDK | =1.6.0-update22 | |
Oracle OpenJDK | =1.6.0-update23 | |
Oracle OpenJDK | =1.6.0-update24 | |
Oracle OpenJDK | =1.6.0-update25 | |
Oracle OpenJDK | =1.6.0-update26 | |
Oracle OpenJDK | =1.6.0-update27 | |
Oracle OpenJDK | =1.6.0-update29 | |
Oracle OpenJDK | =1.6.0-update3 | |
Oracle OpenJDK | =1.6.0-update30 | |
Oracle OpenJDK | =1.6.0-update31 | |
Oracle OpenJDK | =1.6.0-update32 | |
Oracle OpenJDK | =1.6.0-update33 | |
Oracle OpenJDK | =1.6.0-update34 | |
Oracle OpenJDK | =1.6.0-update35 | |
Oracle OpenJDK | =1.6.0-update37 | |
Oracle OpenJDK | =1.6.0-update38 | |
Oracle OpenJDK | =1.6.0-update4 | |
Oracle OpenJDK | =1.6.0-update5 | |
Oracle OpenJDK | =1.6.0-update6 | |
Oracle OpenJDK | =1.6.0-update7 | |
Oracle OpenJDK | =1.7.0 | |
Oracle OpenJDK | =1.7.0-update1 | |
Oracle OpenJDK | =1.7.0-update10 | |
Oracle OpenJDK | =1.7.0-update11 | |
Oracle OpenJDK | =1.7.0-update13 | |
Oracle OpenJDK | =1.7.0-update2 | |
Oracle OpenJDK | =1.7.0-update3 | |
Oracle OpenJDK | =1.7.0-update4 | |
Oracle OpenJDK | =1.7.0-update5 | |
Oracle OpenJDK | =1.7.0-update6 | |
Oracle OpenJDK | =1.7.0-update7 | |
Oracle OpenJDK | =1.7.0-update9 | |
PolarSSL PolarSSL | =0.10.0 | |
PolarSSL PolarSSL | =0.10.1 | |
PolarSSL PolarSSL | =0.11.0 | |
PolarSSL PolarSSL | =0.11.1 | |
PolarSSL PolarSSL | =0.12.0 | |
PolarSSL PolarSSL | =0.12.1 | |
PolarSSL PolarSSL | =0.13.1 | |
PolarSSL PolarSSL | =0.14.0 | |
PolarSSL PolarSSL | =0.14.2 | |
PolarSSL PolarSSL | =0.14.3 | |
PolarSSL PolarSSL | =0.99-pre1 | |
PolarSSL PolarSSL | =0.99-pre3 | |
PolarSSL PolarSSL | =0.99-pre4 | |
PolarSSL PolarSSL | =0.99-pre5 | |
PolarSSL PolarSSL | =1.0.0 | |
PolarSSL PolarSSL | =1.1.0 | |
PolarSSL PolarSSL | =1.1.0-rc0 | |
PolarSSL PolarSSL | =1.1.0-rc1 | |
PolarSSL PolarSSL | =1.1.1 | |
PolarSSL PolarSSL | =1.1.2 | |
PolarSSL PolarSSL | =1.1.3 | |
PolarSSL PolarSSL | =1.1.4 |
On OpenShift Container Platform 3.11 it's possible to edit the list of cipher suites offered by the router when performing 'edge', or 're-encrypt' TLS modes. Please follow the documentation [1], and [2] to remove the vulnerable CBC ciphers use the modern, or intermediate cipher suites outlined by Mozilla instead [3]. In 'passthrough' mode TLS termination occurs in the application so that is another way to mitigate the vulnerability. [1] https://docs.openshift.com/container-platform/3.11/install_config/router/customized_haproxy_router.html#obtaining-router-configuration-template [2] https://docs.openshift.com/container-platform/3.11/install_config/router/customized_haproxy_router.html#using-configmap-replace-template [3] https://wiki.mozilla.org/Security/Server_Side_TLS
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.
(Appears in the following advisories)