FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

PHP5 -- memory corruption in openssl_x509_parse()

Affected packages
5.4.0 <= php5 < 5.4.23
php53 < 5.3.28
5.5.0 <= php55 < 5.5.7

Details

VuXML ID 47b4e713-6513-11e3-868f-0025905a4771
Discovery 2013-12-13
Entry 2013-12-14

Stefan Esser reports:

The PHP function openssl_x509_parse() uses a helper function called asn1_time_to_time_t() to convert timestamps from ASN1 string format into integer timestamp values. The parser within this helper function is not binary safe and can therefore be tricked to write up to five NUL bytes outside of an allocated buffer.

This problem can be triggered by x509 certificates that contain NUL bytes in their notBefore and notAfter timestamp fields and leads to a memory corruption that might result in arbitrary code execution.

Depending on how openssl_x509_parse() is used within a PHP application the attack requires either a malicious cert signed by a compromised/malicious CA or can be carried out with a self-signed cert.

References

CVE Name CVE-2013-6420
URL https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html