CVE-2012-2311: SQL Injection

Published May 11, 2012
·
Updated

sapi/cgi/cgimain.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 phpgetopt for the 'd' case. NOTE: this vulnerability exists because of an incomplete fix for CVE-2012-1823.

Affected Software

119 affected components
PHP PHP<=5.3.12
PHP PHP=1.0
PHP PHP=2.0
PHP PHP=2.0b10
PHP PHP=3.0
PHP PHP=3.0.1
PHP PHP=3.0.2
PHP PHP=3.0.3
PHP PHP=3.0.4
PHP PHP=3.0.5
PHP PHP=3.0.6
PHP PHP=3.0.7
PHP PHP=3.0.8
PHP PHP=3.0.9
PHP PHP=3.0.10
PHP PHP=3.0.11
PHP PHP=3.0.12
PHP PHP=3.0.13
PHP PHP=3.0.14
PHP PHP=3.0.15
PHP PHP=3.0.16
PHP PHP=3.0.17
PHP PHP=3.0.18
PHP PHP=4.0-beta_4_patch1
PHP PHP=4.0-beta1
PHP PHP=4.0-beta2
PHP PHP=4.0-beta3
PHP PHP=4.0-beta4
PHP PHP=4.0.0
PHP PHP=4.0.1
PHP PHP=4.0.2
PHP PHP=4.0.3
PHP PHP=4.0.4
PHP PHP=4.0.5
PHP PHP=4.0.6
PHP PHP=4.0.7
PHP PHP=4.1.0
PHP PHP=4.1.1
PHP PHP=4.1.2
PHP PHP=4.2.0
PHP PHP=4.2.1
PHP PHP=4.2.2
PHP PHP=4.2.3
PHP PHP=4.3.0
PHP PHP=4.3.1
PHP PHP=4.3.2
PHP PHP=4.3.3
PHP PHP=4.3.4
PHP PHP=4.3.5
PHP PHP=4.3.6
PHP PHP=4.3.7
PHP PHP=4.3.8
PHP PHP=4.3.9
PHP PHP=4.3.10
PHP PHP=4.3.11
PHP PHP=4.4.0
PHP PHP=4.4.1
PHP PHP=4.4.2
PHP PHP=4.4.3
PHP PHP=4.4.4
PHP PHP=4.4.5
PHP PHP=4.4.6
PHP PHP=4.4.7
PHP PHP=4.4.8
PHP PHP=4.4.9
PHP PHP=5.0.0
PHP PHP=5.0.0-beta1
PHP PHP=5.0.0-beta2
PHP PHP=5.0.0-beta3
PHP PHP=5.0.0-beta4
PHP PHP=5.0.0-rc1
PHP PHP=5.0.0-rc2
PHP PHP=5.0.0-rc3
PHP PHP=5.0.1
PHP PHP=5.0.2
PHP PHP=5.0.3
PHP PHP=5.0.4
PHP PHP=5.0.5
PHP PHP=5.1.0
PHP PHP=5.1.1
PHP PHP=5.1.2
PHP PHP=5.1.3
PHP PHP=5.1.4
PHP PHP=5.1.5
PHP PHP=5.1.6
PHP PHP=5.2.0
PHP PHP=5.2.1
PHP PHP=5.2.2
PHP PHP=5.2.3
PHP PHP=5.2.4
PHP PHP=5.2.5
PHP PHP=5.2.6
PHP PHP=5.2.7
PHP PHP=5.2.8
PHP PHP=5.2.9
PHP PHP=5.2.10
PHP PHP=5.2.11
PHP PHP=5.2.12
PHP PHP=5.2.13
PHP PHP=5.2.14
PHP PHP=5.2.15
PHP PHP=5.2.16
PHP PHP=5.2.17
PHP PHP=5.3.0
PHP PHP=5.3.1
PHP PHP=5.3.2
PHP PHP=5.3.3
PHP PHP=5.3.4
PHP PHP=5.3.5
PHP PHP=5.3.6
PHP PHP=5.3.7
PHP PHP=5.3.8
PHP PHP=5.3.9
PHP PHP=5.3.10
PHP PHP=5.3.11
PHP PHP=5.4.0
PHP PHP=5.4.0-beta2
PHP PHP=5.4.1
PHP PHP=5.4.2

Event History

May 11, 2012
CVE Published
via MITRE·10:00 AM
Data Sourced
via MITRE·10:00 AM
Description

Frequently Asked Questions

1

What is the severity of CVE-2012-2311?

CVE-2012-2311 is considered critical due to its potential to allow remote code execution.

2

How do I fix CVE-2012-2311?

To fix CVE-2012-2311, upgrade PHP to at least version 5.3.13 or 5.4.3.

3

What versions of PHP are affected by CVE-2012-2311?

CVE-2012-2311 affects PHP versions before 5.3.13 and 5.4.x before 5.4.3.

4

What types of attacks are possible due to CVE-2012-2311?

CVE-2012-2311 allows remote attackers to execute arbitrary code by manipulating query strings.

5

Is there a workaround for CVE-2012-2311 if I cannot upgrade?

As a workaround for CVE-2012-2311, consider disabling the CGI version of PHP if feasible.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203