Vulnerability Note VU#836068

MD5 vulnerable to collision attacks

Original Release date: 31 Dec 2008 | Last revised: 21 Jan 2009

Overview

Weaknesses in the MD5 algorithm allow for collisions in output. As a result, attackers can generate cryptographic tokens or other data that illegitimately appear to be authentic.

Description

A secure cryptographic hash algorithm is one that generates a unique identifier of a fixed size (known as a "digest" or simply "hash") for a block of data of arbitrary size. The MD5 algorithm is a standard, widely used example of such an algorithm and is defined in IETF RFC 1321. One of the requirements of secure cryptographic hash algorithms is that it be extremely unlikely for two different inputs to the algorithm to generate the same digest. This property is generally referred to as collision resistance and cases where an algorithm generates the same digest for two different blocks of data are known as collisions.

Cryptanalytic research published in 1996 described a weakness in the MD5 algorithm that could result in collision attacks, at least in principle. Further research published in 2004 demonstrated the practical ability for an attacker to generate collisions and in 2005 the ability for an attacker to generate colliding x.509 certificates was demonstrated. In 2008, researchers demonstrated the practical vulnerability of Public Key Infrastructures (PKI) to such attacks, including the construction of an SSL certificate that allows an attacker to impersonate a trusted root Certificate Authority (CA). Most operating systems bundle a collection of trusted CA certificates, including some that use the MD5 signing algorithm, providing obvious targets for attackers to spoof.

Impact

An attacker can construct forged data in a variety of forms that will cause software using the MD5 algorithm to incorrectly identify it as trustworthy. Because the underlying vulnerability occurs in a cryptographic primitive, specific exploitation scenarios vary widely depending on the nature of the data the attacker has the ability to spoof and how it is validated by software. In a particularly egregious vulnerability scenario, a victim user may be mislead into supplying sensitive information to a malicious website believing that it is authentic based on an apparently valid signed SSL certificate.

Solution

We are currently unaware of a practical solution to this problem.

Do not use the MD5 algorithm
Software developers, Certification Authorities, website owners, and users should avoid using the MD5 algorithm in any capacity. As previous research has demonstrated, it should be considered cryptographically broken and unsuitable for further use.

Scrutinize SSL certificates signed by certificates using the MD5 algorithm
Users may wish to manually analyze the properties of web site certificates that are signed by signing certificates using the MD5 algorithm. The procedures for accessing certificate details differ depending on the software in use but the signature algorithm is often identified in the "Signature algorithm", "Certificate Signature Algorithm", or similarly named field. Users of systems with the OpenSSL command line utility can view certificate properties using "openssl x509 -text" or a similar utility. Certificates listed as md5RSA or similar are affected. Such certificates that include strange or suspicious fields or other anomalies may be fraudulent. Because there are no reliable signs of tampering it must be noted that this workaround is error-prone and impractical for most users.

Systems Affected (Learn More)

VendorStatusDate NotifiedDate Updated
Microsoft CorporationUnknown-31 Dec 2008
MozillaUnknown-31 Dec 2008
Verisign Unknown-31 Dec 2008
If you are a vendor and your product is affected, let us know.

CVSS Metrics (Learn More)

Group Score Vector
Base N/A N/A
Temporal N/A N/A
Environmental N/A N/A

References

Credit

A number of individuals have previously published research on collision vulnerabilities in MD5 including but not limited to: Hans Dobbertin, Xiaoyun Wang, Hongbo Yu, Alexander Sotirov, Marc Stevens, Jacob Appelbaum, Arjen Lenstra, David Molnar, Dag Arne Osvik, Benne de Weger, Dan Kaminsky, and Gerardo Richarte.

This document was written by Chad R Dougherty.

Other Information

  • CVE IDs: Unknown
  • Date Public: 30 Dec 2008
  • Date First Published: 31 Dec 2008
  • Date Last Updated: 21 Jan 2009
  • Severity Metric: 18.00
  • Document Revision: 13

Feedback

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