CVE-2012-2311
Publication date 4 May 2012
Last updated 4 August 2025
Ubuntu priority
sapi/cgi/cgi_main.c in PHP before 5.3.13 and 5.4.x before 5.4.3, when configured as a CGI script (aka php-cgi), does not properly handle query strings that contain a %3D sequence but no = (equals sign) character, which allows remote attackers to execute arbitrary code by placing command-line options in the query string, related to lack of skipping a certain php_getopt for the ‘d’ case. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-1823.
From the Ubuntu Security Team
It was discovered that PHP, when used as a stand alone CGI processor for the Apache Web Server, did not properly parse and filter query strings. This could allow a remote attacker to execute arbitrary code running with the privilege of the web server. Configurations using mod_php5 and FastCGI were not vulnerable.
Mitigation
The php-security.net article has an updated set of mod_rewrite rules that can mitigate the vulnerability as well: RewriteEngine on RewriteCond %{QUERY_STRING} ^[^=]*$ RewriteCond %{QUERY_STRING} %2d|\- [NC] RewriteRule .? - [F,L]
Status
Package | Ubuntu Release | Status |
---|---|---|
php5 | 12.04 LTS precise |
Fixed 5.3.10-1ubuntu3.1
|
11.10 oneiric |
Fixed 5.3.6-13ubuntu3.7
|
|
11.04 natty |
Fixed 5.3.5-1ubuntu7.8
|
|
10.04 LTS lucid |
Fixed 5.3.2-1ubuntu4.15
|
|
8.04 LTS hardy |
Fixed 5.2.4-2ubuntu5.24
|
Notes
sbeattie
Please see http://www.php.net/archive/2012.php#id2012-05-06-1 for more details when using configurations other than as described in /usr/share/doc/php5-cgi/README.Debian.gz.
References
Related Ubuntu Security Notices (USN)
- USN-1437-1
- PHP vulnerability
- 4 May 2012