# CVE-2012-1823: PHP-CGI Query String Parameter Vulnerability - Exploited (CISA KEV): yes, added 2022-03-25 - Published: 2012-05-11 - CVSS: 9.8 CRITICAL (v3.1) - EPSS: 100.0% (100th percentile) - CWE: CWE-20 sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not properly handle query strings that lack an = (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. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Before feed history | — | — | | AWS | Before feed history | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | Before feed history | — | — | | Fastly | Before feed history | — | — | | F5 | Before feed history | — | — | | Akamai | No public source | — | — | | OWASP CRS | Before feed history | — | — | ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: blocked (1 of 1 requests blocked), template CVE-2012-1823, 2026-11-02 - OWASP Core Rule Set 4.25.0, paranoia level 2, anomaly threshold 5, default CRS settings: blocked (1 of 1 requests blocked), template CVE-2012-1823, 2026-11-02 "No public claim" means no vendor statement names this CVE; "Before feed history" means the CVE is older than the vendor feed. In both cases generic rules may still block it. HTML: https://cve.vigilbase.com/cve/CVE-2012-1823 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2012-1823