# CVE-2024-29895: Cacti command injection in cmd_realtime.php - Exploited (CISA KEV): no - Published: 2024-05-13 - CVSS: 10 CRITICAL (v3.1) - EPSS: 98.8% (100th percentile) - CWE: CWE-77 Cacti provides an operational monitoring and fault management framework. A command injection vulnerability on the 1.3.x DEV branch allows any unauthenticated user to execute arbitrary command on the server when `register_argc_argv` option of PHP is `On`. In `cmd_realtime.php` line 119, the `$poller_id` used as part of the command execution is sourced from `$_SERVER['argv']`, which can be controlled by URL when `register_argc_argv` option of PHP is `On`. And this option is `On` by default in many environments such as the main PHP Docker image for PHP. Commit 53e8014d1f082034e0646edc6286cde3800c683d contains a patch for the issue, but this commit was reverted in commit 99633903cad0de5ace636249de16f77e57a3c8fc. ## Edge WAF coverage (claimed by vendors, not measured) | Vendor | Status | First rule | Days after publication | |---|---|---|---| | Cloudflare | Before feed history | — | — | | AWS | No public claim | — | — | | Microsoft Azure | No public claim | — | — | | Google Cloud | Before feed history | — | — | | Fastly | Before feed history | — | — | | F5 | Rule published | 2025-03-11 | 302 | | Akamai | No public source | — | — | | OWASP CRS | No public claim | — | — | ### F5 - 2025-03-11 · new · rule 200103559 > Added: signature 200103559 "Cacti cmd_realtime.php command injection" (Command Execution, risk High), systems: PHP. References: CVE-2024-29895. Source: https://docs.cloud.f5.com/docs-v2/platform/changelogs/security-details-changelog ## Our test (measured) - OWASP Core Rule Set 4.25.0, paranoia level 1, anomaly threshold 5, default CRS settings: passed (0 of 1 requests blocked), template CVE-2024-29895, 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-2024-29895, 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-2024-29895 · JSON: https://cve.vigilbase.com/api/v1/cves/CVE-2024-29895