Executive Summary

Summary
Title BREACH vulnerability in compressed HTTPS
Informations
Name VU#987798 First vendor Publication 2013-08-02
Vendor VU-CERT Last vendor Modification 2013-08-08
Severity (Vendor) N/A Revision M

Security-Database Scoring CVSS v3

Cvss vector : N/A
Overall CVSS Score NA
Base Score NA Environmental Score NA
impact SubScore NA Temporal Score NA
Exploitabality Sub Score NA
 
Calculate full CVSS 3.0 Vectors scores

Security-Database Scoring CVSS v2

Cvss vector : (AV:N/AC:H/Au:N/C:P/I:N/A:N)
Cvss Base Score 2.6 Attack Range Network
Cvss Impact Score 2.9 Attack Complexity High
Cvss Expoit Score 4.9 Authentication None Required
Calculate full CVSS 2.0 Vectors scores

Detail

Vulnerability Note VU#987798

BREACH vulnerability in compressed HTTPS

Original Release date: 02 Aug 2013 | Last revised: 08 Aug 2013

Overview

By observing the length of compressed HTTPS responses, an attacker may be able to derive plaintext secrets from the ciphertext of an HTTPS stream.

Description

Angelo Prado of Salesforce.com reports:

    Extending the CRIME vulnerability presented at Ekoparty 2012, an attacker can target HTTPS responses to recover data from the response body.

    While the CRIME attack is currently believed to be mitigated by disabling TLS/SSL/level compression, compressed HTTP responses represent a significant unmitigated vector which is currently exploitable. By injecting plaintext into an HTTPS request, an attacker can learn information about the corresponding HTTPS response by measuring its size.

    This relies on the attacker being able to observe the size of the cipher text received by the browser while triggering a number of strategically crafted requests to a target site. To recover a particular secret in an HTTPS response body, the attacker guesses character by character, sending a pair of requests for each guess. The correct guess will result in a smaller HTTPS response. For each guess the attacker coerces the victim's browser to issue two requests. The first request includes a payload of the form:

    "target_secret_name=<already known part of secret>+<guess>+<padding>"

    ...while the second request includes a payload of the form:

    "target_secret_name=<already known part of secret>+<padding>+<guess>".

    If the size of the first response is smaller than the second response, this indicates that the guess has a good chance of being correct. This method of sending two similar requests and comparing them is due to Duong and Rizzo. If multiple candidates are found, the following is a useful recovery mechanism: move forward in parallel with both candidates until it becomes clear which guess is correct.

    With a token of length 32 and a character space of size 16 (e.g. hex), the attacker needs an average of approximately 1,000 request if no recovery mechanisms are needed. In practice, we have been able to recover CSRF tokens with fewer than 4,000 requests. A browser like Google Chrome or Internet Explorer is able to issue this number of requests in under 30 seconds, including callbacks to the attacker command & control center.

    [In order to conduct the attack, the following conditions must be true]:
    1. HTTPS-enabled endpoint (ideally with stream ciphers like RC4, although the attack can be made to work with adaptive padding for block ciphers).
    2. The attacker must be able to measure the size of HTTPS responses.
    3. Use of HTTP-level compression (e.g. gzip).
    4. A request parameter that is reflected in the response body.
    5. A static secret in the body (e.g. CSRF token, sessionId, VIEWSTATE, PII, etc.) that can be bootstrapped (either first/last two characters are predictable and/or the secret is padded with something like KnownSecretVariableName="".
    6. An otherwise static or relatively static response. Dynamic pages do not defeat the attack, but make it much more expensive.

Impact

A sophisticated attacker may be able to derive plaintext secrets from the ciphertext in an HTTPS stream.

Solution

We are currently unaware of a practical solution to this problem. Please consider the following workarounds.

Some of these mitigations may protect entire applications, while others may only protect individual web pages.

  • Disable HTTP compression.
  • Separate the secrets from the user input.
  • Randomize the secrets in each client request.
  • Mask secrets (effectively randomizing by XORing with a random secret per request).
  • Protect web pages from CSRF attacks.
  • Obfuscate the length of web responses by adding random amounts of arbitrary bytes.

Vendor Information (Learn More)

VendorStatusDate NotifiedDate Updated
Apache-SSLUnknown19 Jun 201319 Jun 2013
Apache HTTP Server ProjectUnknown19 Jun 201330 Jul 2013
Apache TomcatUnknown19 Jun 201319 Jun 2013
Apple Inc.Unknown19 Jun 201319 Jun 2013
GoogleUnknown19 Jun 201319 Jun 2013
Microsoft CorporationUnknown19 Jun 201319 Jun 2013
MozillaUnknown19 Jun 201319 Jun 2013
OperaUnknown19 Jun 201319 Jun 2013
If you are a vendor and your product is affected, let us know.

CVSS Metrics (Learn More)

GroupScoreVector
Base2.6AV:N/AC:H/Au:N/C:P/I:N/A:N
Temporal2.3E:F/RL:W/RC:C
Environmental3.2CDP:ND/TD:H/CR:H/IR:H/AR:ND

References

  • http://cwe.mitre.org/data/definitions/310.html
  • http://breachattack.com/resources/BREACH%20-%20SSL,%20gone%20in%2030%20seconds.pdf
  • http://breachattack.com/resources/BREACH%20-%20BH%202013%20-%20PRESENTATION.pdf
  • http://www.iacr.org/cryptodb/archive/2002/FSE/3091/3091.pdf
  • http://security.stackexchange.com/questions/20406/is-http-compression-safe#20407

Credit

Thanks goes to the following individuals for reporting this vulnerability: Angelo Prado, Salesforce.com
Neal Harris, Square
Yoel Gluck, Salesforce.com

This document was written by Todd Lewellen.

Other Information

  • CVE IDs:CVE-2013-3587
  • Date Public:20 Sep 2012
  • Date First Published:02 Aug 2013
  • Date Last Updated:08 Aug 2013
  • Document Revision:36

Feedback

If you have feedback, comments, or additional information about this vulnerability, please send us email.

Original Source

Url : http://www.kb.cert.org/vuls/id/987798

CWE : Common Weakness Enumeration

% Id Name
50 % CWE-310 Cryptographic Issues
50 % CWE-200 Information Exposure

OVAL Definitions

Definition Id: oval:org.mitre.oval:def:17586
 
Oval ID: oval:org.mitre.oval:def:17586
Title: DSA-2627-1 nginx - information leak
Description: Juliano Rizzo and Thai Duong discovered a weakness in the TLS/SSL protocol when using compression. This side channel attack, dubbed <q>CRIME</q>, allows eavesdroppers to gather information to recover the original plaintext in the protocol. This update to nginx disables SSL compression.
Family: unix Class: patch
Reference(s): DSA-2627-1
CVE-2012-4929
Version: 7
Platform(s): Debian GNU/Linux 6.0
Debian GNU/kFreeBSD 6.0
Product(s): nginx
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:18126
 
Oval ID: oval:org.mitre.oval:def:18126
Title: USN-1628-1 -- qt4-x11 vulnerability
Description: Qt applications could be made to expose sensitive information over the network.
Family: unix Class: patch
Reference(s): USN-1628-1
CVE-2012-4929
Version: 5
Platform(s): Ubuntu 12.04
Ubuntu 11.10
Ubuntu 10.04
Product(s): qt4-x11
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:18136
 
Oval ID: oval:org.mitre.oval:def:18136
Title: USN-1627-1 -- apache2 vulnerabilities
Description: Several security issues were fixed in the Apache HTTP server.
Family: unix Class: patch
Reference(s): USN-1627-1
CVE-2012-2687
CVE-2012-4929
Version: 7
Platform(s): Ubuntu 12.10
Ubuntu 12.04
Ubuntu 11.10
Ubuntu 10.04
Ubuntu 8.04
Product(s): apache2
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:18468
 
Oval ID: oval:org.mitre.oval:def:18468
Title: DSA-2579-1 apache2 - several
Description: A vulnerability has been found in the Apache HTTPD Server:
Family: unix Class: patch
Reference(s): DSA-2579-1
CVE-2012-4557
CVE-2012-4929
Version: 7
Platform(s): Debian GNU/Linux 6.0
Debian GNU/kFreeBSD 6.0
Product(s): apache2
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:18920
 
Oval ID: oval:org.mitre.oval:def:18920
Title: HP-UX Running Apache, Remote Denial of Service (DoS), Execution of Arbitrary Code and other vulnerabilities
Description: The TLS protocol 1.2 and earlier, as used in Mozilla Firefox, Google Chrome, Qt, and other products, can encrypt compressed data without properly obfuscating the length of the unencrypted data, which allows man-in-the-middle attackers to obtain plaintext HTTP headers by observing length differences during a series of guesses in which a string in an HTTP request potentially matches an unknown string in an HTTP header, aka a "CRIME" attack.
Family: unix Class: vulnerability
Reference(s): CVE-2012-4929
Version: 11
Platform(s): HP-UX 11
Product(s):
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:20070
 
Oval ID: oval:org.mitre.oval:def:20070
Title: DSA-2626-1 lighttpd - several issues
Description: Several vulnerabilities were discovered in the TLS/SSL protocol. This update addresses these protocol vulnerabilities in lighttpd.
Family: unix Class: patch
Reference(s): DSA-2626-1
CVE-2009-3555
CVE-2012-4929
Version: 5
Platform(s): Debian GNU/Linux 6.0
Debian GNU/kFreeBSD 6.0
Product(s): lighttpd
Definition Synopsis:
Definition Id: oval:org.mitre.oval:def:21323
 
Oval ID: oval:org.mitre.oval:def:21323
Title: USN-1898-1 -- openssl vulnerability
Description: Applications could be made to expose sensitive information over the network.
Family: unix Class: patch
Reference(s): USN-1898-1
CVE-2012-4929
Version: 5
Platform(s): Ubuntu 13.04
Ubuntu 12.10
Ubuntu 12.04
Ubuntu 10.04
Product(s): openssl
Definition Synopsis:

CPE : Common Platform Enumeration

TypeDescriptionCount
Application 6
Application 54
Application 43
Application 45
Application 43
Application 65
Application 12
Application 55
Application 59
Application 44
Application 19
Application 13
Application 24
Application 6
Application 1
Application 1
Hardware 7
Hardware 6
Hardware 15
Os 2

OpenVAS Exploits

Date Description
2012-12-04 Name : Debian Security Advisory DSA 2579-1 (apache2)
File : nvt/deb_2579_1.nasl
2012-11-09 Name : Ubuntu Update for apache2 USN-1627-1
File : nvt/gb_ubuntu_USN_1627_1.nasl
2012-11-09 Name : Ubuntu Update for qt4-x11 USN-1628-1
File : nvt/gb_ubuntu_USN_1628_1.nasl

Snort® IPS/IDS

Date Description
2014-01-10 SSL TLS deflate compression weakness brute force attempt
RuleID : 26645 - Revision : 7 - Type : SERVER-OTHER

Nessus® Vulnerability Scanner

Date Description
2017-10-02 Name : The remote Gentoo host is missing one or more security-related patches.
File : gentoo_GLSA-201606-06.nasl - Type : ACT_GATHER_INFO
2016-01-25 Name : The remote Debian host is missing a security update.
File : debian_DLA-400.nasl - Type : ACT_GATHER_INFO
2015-05-11 Name : The remote Debian host is missing a security-related update.
File : debian_DSA-3253.nasl - Type : ACT_GATHER_INFO
2014-11-26 Name : The remote OracleVM host is missing a security update.
File : oraclevm_OVMSA-2014-0007.nasl - Type : ACT_GATHER_INFO
2014-11-26 Name : The remote OracleVM host is missing a security update.
File : oraclevm_OVMSA-2014-0008.nasl - Type : ACT_GATHER_INFO
2014-11-12 Name : The remote Fedora host is missing a security update.
File : fedora_2014-13777.nasl - Type : ACT_GATHER_INFO
2014-11-08 Name : The remote Red Hat host is missing a security update.
File : redhat-RHSA-2013-0636.nasl - Type : ACT_GATHER_INFO
2014-11-08 Name : The remote Red Hat host is missing one or more security updates.
File : redhat-RHSA-2014-0416.nasl - Type : ACT_GATHER_INFO
2014-11-07 Name : The remote Fedora host is missing a security update.
File : fedora_2014-13764.nasl - Type : ACT_GATHER_INFO
2014-10-10 Name : The remote device is missing a vendor-supplied security patch.
File : f5_bigip_SOL14054.nasl - Type : ACT_GATHER_INFO
2014-06-13 Name : The remote openSUSE host is missing a security update.
File : openSUSE-2012-751.nasl - Type : ACT_GATHER_INFO
2014-06-13 Name : The remote openSUSE host is missing a security update.
File : openSUSE-2013-10.nasl - Type : ACT_GATHER_INFO
2014-06-13 Name : The remote openSUSE host is missing a security update.
File : openSUSE-2013-818.nasl - Type : ACT_GATHER_INFO
2013-09-24 Name : The remote Gentoo host is missing one or more security-related patches.
File : gentoo_GLSA-201309-12.nasl - Type : ACT_GATHER_INFO
2013-09-04 Name : The remote Amazon Linux AMI host is missing a security update.
File : ala_ALAS-2013-171.nasl - Type : ACT_GATHER_INFO
2013-07-12 Name : The remote Oracle Linux host is missing one or more security updates.
File : oraclelinux_ELSA-2013-0587.nasl - Type : ACT_GATHER_INFO
2013-07-05 Name : The remote Ubuntu host is missing one or more security-related patches.
File : ubuntu_USN-1898-1.nasl - Type : ACT_GATHER_INFO
2013-06-05 Name : The remote host is missing a Mac OS X update that fixes several security issues.
File : macosx_SecUpd2013-002.nasl - Type : ACT_GATHER_INFO
2013-06-05 Name : The remote host is missing a Mac OS X update that fixes several security issues.
File : macosx_10_8_4.nasl - Type : ACT_GATHER_INFO
2013-04-03 Name : The remote Fedora host is missing a security update.
File : fedora_2013-4403.nasl - Type : ACT_GATHER_INFO
2013-03-28 Name : The remote SuSE 11 host is missing one or more security updates.
File : suse_11_libopenssl-devel-130325.nasl - Type : ACT_GATHER_INFO
2013-03-28 Name : The remote SuSE 10 host is missing a security-related patch.
File : suse_openssl-8517.nasl - Type : ACT_GATHER_INFO
2013-03-07 Name : The remote CentOS host is missing one or more security updates.
File : centos_RHSA-2013-0587.nasl - Type : ACT_GATHER_INFO
2013-03-05 Name : The remote Scientific Linux host is missing one or more security updates.
File : sl_20130304_openssl_on_SL5_x.nasl - Type : ACT_GATHER_INFO
2013-03-05 Name : The remote Red Hat host is missing one or more security updates.
File : redhat-RHSA-2013-0587.nasl - Type : ACT_GATHER_INFO
2013-02-18 Name : The remote Debian host is missing a security-related update.
File : debian_DSA-2627.nasl - Type : ACT_GATHER_INFO
2013-02-18 Name : The remote Debian host is missing a security-related update.
File : debian_DSA-2626.nasl - Type : ACT_GATHER_INFO
2013-01-25 Name : The remote SuSE 11 host is missing one or more security updates.
File : suse_11_libQtWebKit-devel-121010.nasl - Type : ACT_GATHER_INFO
2012-12-02 Name : The remote Debian host is missing a security-related update.
File : debian_DSA-2579.nasl - Type : ACT_GATHER_INFO
2012-11-09 Name : The remote Ubuntu host is missing a security-related patch.
File : ubuntu_USN-1628-1.nasl - Type : ACT_GATHER_INFO
2012-11-09 Name : The remote Ubuntu host is missing a security-related patch.
File : ubuntu_USN-1627-1.nasl - Type : ACT_GATHER_INFO
2012-10-16 Name : The remote service has a configuration that may make it vulnerable to the CRI...
File : ssl_crime.nasl - Type : ACT_GATHER_INFO

Alert History

If you want to see full details history, please login or register.
0
1
2
3
4
5
Date Informations
2013-08-08 21:20:31
  • Multiple Updates
2013-08-08 00:19:38
  • Multiple Updates
2013-08-07 17:20:31
  • Multiple Updates
2013-08-06 17:20:03
  • Multiple Updates
2013-08-02 21:20:21
  • Multiple Updates
2013-08-02 17:20:06
  • First insertion