3945 : OpenSSL Vaudenay Timing Attack
Printer | http://osvdb.org/3945 | Email This | Edit Vulnerability

Views This Week

6

Views All Time

800

Info

Last Modified

about 1 year ago

Percent Complete

100%

Disclosure

Feb 19, 2003

Discovery

May 02, 2002

Dates

Exploit

Feb 20, 2003

Solution

Unknown

Keywords

Omen

Description

OpenSSL versions 0.9.6h and prior and 0.9.7 contains a flaw that may lead to an unauthorized information disclosure. The issue is triggered when a repeated block of plaintext in multiple OpenSSL/TLS sessions occur. A crafted block of ciphertext can be repeatedly injected into each session, which will kill that session but may ultimately lead to the disclosure of the repeated plaintext block, resulting in a loss of confidentiality.

Classification

Location: Local Access Required, Remote / Network Access
Attack Type: Cryptographic
Impact: Loss of Confidentiality
Exploit: Exploit Public
Disclosure: OSVDB Verified

Technical

When encrypting a message in TLS/SSL using block ciphers in CBC mode, a Message Authentication Code (MAC) of the message is calculated. Then the string containing (message + MAC) is padded so that the length of (message + MAC + padding) is a mutiple of the block cipher input size (8 bytes is the usual value). The concatenated (message + MAC + padding + length) is then cut into blocks of length the input size of the block cipher and encrypted with your chained block cipher.

When the encrypted message is received, it is first decrypted back into (message + MAC + padding + length). The validity of the padding is verified against the length. If the padding is found not to be valid, a padding error is generated. Otherwise the MAC value is then checked. If the MAC is not valid, a MAC error is generated.

In cases where multiple SSL or TLS connections have a fixed plaintext block in common (passwords are a common example), a real-time attacker can inject crafted ciphertext blocks in place of legitimate blocks of plaintext. This will generate an error, but the attacker can clock the time until a response arrives and differentiate between two different types of error conditions, a MAC verification error or a chained block cipher padding error. Knowing the difference between these two errors allows for eventual determination of the plaintext.

OpenSSL versions since 0.9.6c supposedly treat block cipher padding errors like MAC verification errors during record decryption, but MAC verification was still skipped after detection of a padding error, which allowed the timing attack. To fix this information leak, OpenSSL 0.9.6i, 0.9.7a, and later versions perform a MAC computation even if incorrrect block cipher padding has been found, thereby evening out the processing time and minimizing the information leak.

Solution

Upgrade to version 0.9.6i or 0.9.7a or higher, as they has been reported to fix this vulnerability. It is also possible to correct the flaw by implementing the following workaround(s): apply the vendor-supplied patch for versions 0.9.6e and later. Versions older than 0.9.6e must upgrade.

Products

OpenSSL Project
Watch-list
OpenSSL
Watch-list
0.9.1x
0.9.2x
0.9.3x
0.9.4x
0.9.5x
0.9.6
0.9.6a
0.9.6b
0.9.6c
0.9.6d
0.9.6e
0.9.6f
0.9.6g
0.9.6h
0.9.7

References

Tools & Filters

11267 12368 13783 14005 15090
1515

Credit

  • Serge Vaudenay - serge.vaudenayepfl.ch - EPFL

CVSSv2 Score

CVSSv2 Base Score = 5.0
Source: nvd.nist.gov | Generated: 2003-12-31 | Disagree?

Access_vector_2 Access_complexity_2 Authentication_2 Confidentiality_impact_1 Integrity_impact_0 Availability_impact_0

Blogs

This section lists the latest news and blogs found via the daylife API (and for older items, the technorati API), which mention or otherwise discuss this vulnerability.

None found at this time

Comments

No Comments.

The database information may change without any notice. Use of the information constitutes acceptance for use in an AS IS condition, and there are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. In no event shall the copyright holder or distributor (OSVDB or OSF) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.

© Copyright 2010 Open Source Vulnerability Database (OSVDB), All Rights Reserved.
Privacy Statement - Terms of Use