CVE-2022-46169
Cacti is an open source platform which provides a robust and extensible operational monitoring and fault management framework for users. In affected versions a command injection vulnerability allows an unauthenticated user to execute arbitrary code on a server running Cacti, if a specific data source was selected for any monitored device. The vulnerability resides in the `remote_agent.php` file. This file can be accessed without authentication. This function retrieves the IP address of the client via `get_client_addr` and resolves this IP address to the corresponding hostname via `gethostbyaddr`. After this, it is verified that an entry within the `poller` table exists, where the hostname corresponds to the resolved hostname. If such an entry was found, the function returns `true` and the client is authorized. This authorization can be bypassed due to the implementation of the `get_client_addr` function. The function is defined in the file `lib/functions.php` and checks serval `$_SERVER` variables to determine the IP address of the client. The variables beginning with `HTTP_` can be arbitrarily set by an attacker. Since there is a default entry in the `poller` table with the hostname of the server running Cacti, an attacker can bypass the authentication e.g. by providing the header `Forwarded-For: <TARGETIP>`. This way the function `get_client_addr` returns the IP address of the server running Cacti. The following call to `gethostbyaddr` will resolve this IP address to the hostname of the server, which will pass the `poller` hostname check because of the default entry. After the authorization of the `remote_agent.php` file is bypassed, an attacker can trigger different actions. One of these actions is called `polldata`. The called function `poll_for_data` retrieves a few request parameters and loads the corresponding `poller_item` entries from the database. If the `action` of a `poller_item` equals `POLLER_ACTION_SCRIPT_PHP`, the function `proc_open` is used to execute a PHP script. The attacker-controlled parameter `$poller_id` is retrieved via the function `get_nfilter_request_var`, which allows arbitrary strings. This variable is later inserted into the string passed to `proc_open`, which leads to a command injection vulnerability. By e.g. providing the `poller_id=;id` the `id` command is executed. In order to reach the vulnerable call, the attacker must provide a `host_id` and `local_data_id`, where the `action` of the corresponding `poller_item` is set to `POLLER_ACTION_SCRIPT_PHP`. Both of these ids (`host_id` and `local_data_id`) can easily be bruteforced. The only requirement is that a `poller_item` with an `POLLER_ACTION_SCRIPT_PHP` action exists. This is very likely on a productive instance because this action is added by some predefined templates like `Device - Uptime` or `Device - Polling Time`. This command injection vulnerability allows an unauthenticated user to execute arbitrary commands if a `poller_item` with the `action` type `POLLER_ACTION_SCRIPT_PHP` (`2`) is configured. The authorization bypass should be prevented by not allowing an attacker to make `get_client_addr` (file `lib/functions.php`) return an arbitrary IP address. This could be done by not honoring the `HTTP_...` `$_SERVER` variables. If these should be kept for compatibility reasons it should at least be prevented to fake the IP address of the server running Cacti. This vulnerability has been addressed in both the 1.2.x and 1.3.x release branches with `1.2.23` being the first release containing the patch.
- CVSS
- 9.8Criticalscored by the publisher (CNA)
- Exploited in the wild
- Yes, in CISA KEV since 16 Feb 2023CISA deadline for US federal agencies: 9 Mar 2023public exploit code
- EPSS
- 99.8%chance of exploitation in the next 30 daystop 0.1% of scored CVEsFIRST score of 11 Nov 2026
- Fix
- Patch availablesee the advisories in the references
- Published
- 5 Dec 2022analysed here 12 Nov 2026
Do first. Apply updates per vendor instructions. (CISA's required action for this KEV entry)
Summary
Triage
- Attack surface
- Server-side
- Exploitable
- At runtime
- Attack vector
- network
- Can a WAF block it?
- Partly. See why
The summary, impact and action text on this page are written by our AI analysis pipeline, or taken from the NVD description when a CVE was imported from NVD. They are not the vendor's wording: check them against the sources. A longer AI executive summary and technical analysis are generated for signed-in accounts on the Max plan.
Affected products
| Product | Affected versions | Vendor says fixed in |
|---|---|---|
| Cacti cacti | < 1.2.23Vendor says fixed in: not stated |
As published in the CVE Program record. A version outside these ranges is not a statement that it is unaffected — vendors sometimes understate a range, and distribution-backported builds carry upstream numbers that do not reflect what was patched into them.
Products named in our analysis
- cacti:cacti
Fix and mitigation
WAF and other mitigations
Can a WAF block it? Partly. The attack is delivered via HTTP requests to remote_agent.php with specially crafted headers and parameters that bypass authentication and inject commands. These requests contain unusual header values and injection syntax that a WAF can detect and block. A WAF rule can match HTTP headers with forged Forwarded-For containing the server IP and query parameters poller_id with shell metacharacters. No tracked WAF vendor has published a rule for this CVE yet, so you would write it yourself.
What a custom rule would match: HTTP headers with forged Forwarded-For containing the server IP and query parameters poller_id with shell metacharacters
Also consider: patch · custom WAF rule · shlex/execve-style APIs · per-resource ACL
Based on an AI reading of the CVE description, and no vendor rule found yet. We check Cloudflare, AWS, Google Cloud Armor and Azure; for Akamai, Imperva, Fastly, F5, ask your vendor.
Remediation steps (AI-written)
Step-by-step remediation is generated for accounts on the Max plan, for CVEs that match a technology in their stack. Add this technology to your stack to see the fix checklist.
Exploitation evidence
- CISA KEV catalog
- Listed since 16 Feb 2023.
- CISA due date
- 9 Mar 2023, the remediation deadline for US federal agencies
- CISA required action
- Apply updates per vendor instructions.
- Public exploit code
- Yes: 1 on Exploit-DB · 1 Metasploit module · 37 GitHub proofs of concept · 1 Nuclei template
- CISA SSVC
- exploitation active, automatable no, technical impact totalAssessed by CISA 13 May 2024 (SSVC 2.0.3). Exploitation is none, poc (public proof of concept) or active.
Exploit-DB
- Cacti v1.2.22 - Remote Command Execution (RCE)webapps, 31 Mar 2023
Metasploit
- exploit/linux/http/cacti_unauthenticated_cmd_injectionexploit, rank excellent
Nuclei
- Cacti <=1.2.22 - Remote Command Injectiondetection template, critical
GitHub proofs of concept
- 0xf4n9x/CVE-2022-4616947 stars
- FredBrave/CVE-2022-46169-CACTI-1.2.2242 stars
- sAsPeCt488/CVE-2022-4616929 stars
- ariyaadinatha/cacti-cve-2022-46169-exploit15 stars
and 33 more repositories
Listed so you can judge urgency, not as a recommendation to run anything. GitHub “proofs of concept” are unvetted: some are fake or carry malware. Exploit-DB marks the entries its staff verified.
Timeline
- 5 Dec 2022Published
- 7 Dec 2022First public exploit or proof of concept1 day later
- 16 Feb 2023Added to CISA KEV (exploited in the wild)71 days (about 2 months) later
- 9 Mar 2023CISA remediation due date (US federal agencies)21 days later
- 13 May 2024CISA SSVC assessment: exploitation active432 days (about 1 year) later
- 21 Oct 2025CVE record last updated526 days (about 1 year) later
- 12 Nov 2026Analysed by vulneraibility.com387 days (about 1 year) later
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
| Metric | Value | What it means |
|---|---|---|
| Attack vector | NetworkReachable over the internet or any routable network. | Reachable over the internet or any routable network. |
| Attack complexity | LowRepeatable attack, no special conditions. | Repeatable attack, no special conditions. |
| Privileges required | NoneThe attacker needs no prior access. | The attacker needs no prior access. |
| User interaction | NoneNo victim action needed. | No victim action needed. |
| Scope | UnchangedImpact stays within the vulnerable component. | Impact stays within the vulnerable component. |
| Confidentiality | HighTotal data disclosure possible. | Total data disclosure possible. |
| Integrity | HighComplete modification possible. | Complete modification possible. |
| Availability | HighFull outage possible. | Full outage possible. |
Common questions
Is CVE-2022-46169 being exploited?
Yes. CVE-2022-46169 appears in CISA's Known Exploited Vulnerabilities catalog, which means exploitation in the wild has been confirmed and reported. Treat it as active rather than theoretical, and patch it ahead of higher-scoring vulnerabilities that carry no exploitation evidence.
How severe is CVE-2022-46169?
CVE-2022-46169 is rated Critical with a CVSS score of 9.8. Severity describes how bad exploitation would be, not how likely it is: pair it with exploitation evidence before deciding what to patch first.
Is there a patch for CVE-2022-46169?
Yes. A fix has been recorded for CVE-2022-46169. The vendor advisory is the authority on the exact fixed version — apply it from there rather than from a summary.
What does CVE-2022-46169 affect?
CVE-2022-46169 affects cacti:cacti. Confirm the exact affected versions against the vendor advisory before deciding you are exposed.
Exploitation status reflects CISA's KEV catalog as we last synced it. Check the catalog directly.
References
5 references in the CVE record, grouped by the tags the record gives them.
Other links (5)
- github.com /Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf
- github.com /Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216
- github.com /Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9
- github.com /Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b
- cisa.gov /known-exploited-vulnerabilities-catalog?field_cve=CVE-2022-46169
Also tracked as GHSA-6p93-p743-35gf (OSV).
Where the data on this page comes from
- CVE List (CVE.org): description, affected versions, references; CVE Terms of Use
- NVD: CVSS and CPE data
- CISA KEV catalog: exploitation, date added, due date
- CISA Vulnrichment (ADP): SSVC decision points
- FIRST EPSS: exploit probability and percentile
- Exploit-DB: published exploits
- Metasploit Framework: exploit and scanner modules
- Nuclei templates: detection templates
- PoC-in-GitHub: GitHub repositories that claim a proof of concept
- OSV: advisory aliases and downstream package versions
Summary, impact and triage tags: written by our AI analysis pipeline from the sources above. Check them against the sources.
Similar CVEs
Get CVEs like this by email. Join the free digest: the CVEs we flag as major, all CVSS 8.0 or higher, in up to three emails a day (sent at 05:00, 11:00 and 15:00 UTC). Matching alerts to the products you run needs an account, and accounts are invite-only during the beta.