PT-2012-13: Cross-Site Scripting in PHP
Vulnerable software
PHP
Version: 5.4.6 and earlier
Application link:
http://php.net/
Severity level
Severity level: Low
Impact: Cross-Site Scripting
Access Vector: Local
CVSS v2:
Base Score: 1.7
Vector: (AV:L/AC:L/Au:S/C:P/I:N/A:N)
CVE: not assigned
Software description
PHP (Hypertext Preprocessor) is a general-purpose script programming language that is widely used to develop web applications.
Vulnerability description
Positive Research Center detected Cross-Site Scripting in PHP application.
An attacker can conduct cross-site scripting attack because of incorrect implementation of php_info_print_stream_hash function in phpinfo in PHP.
Vulnerability exists in /ext/sqlite3/ info.c file. Here is the vulnerable code:
static void php_info_print_stream_hash(const char *name, HashTable *ht TSRMLS_DC) /* {{{ */ {
...
while (zend_hash_get_current_key_ex(ht, &key, &len, NULL, 0, &pos) == HASH_KEY_IS_STRING)
{
php_info_print(key);
...
Exploitation example
This PHP code can cause cross-site scripting.
<?php
stream_filter_register("<script>alert('Positive')</script>","a");
phpinfo();
?>
How to fix
Update your software up to the latest version.
Advisory status
22.06.2012 - Vendor is notified
22.06.2012 - Vendor gets vulnerability details
14.09.2012 - Vendor releases fixed version and details
04.02.2013 - Public disclosure
Credits
The vulnerability has discovered by Sergey Bobrov, Positive Research Center (Positive Technologies Company)
References
http://en.securitylab.ru/lab/PT-2012-13
https://bugs.php.net/patch-display.php?bug_id=62964&patch=use_php_info_print_html_esc&revision=latest
Reports on the vulnerabilities previously discovered by Positive Research:
http://ptsecurity.com/research/advisory/
http://en.securitylab.ru/lab/