On this page
CVE Details
- Protection status: Protected by Atomicorp rules · About protection statuses
- CVE: CVE-2022-46169
- Name: Cacti remote_agent.php Pre-Auth Command Injection (CVE-2022-46169)
- Severity: Critical
- CVSS: 9.8 (v3.1) (Critical)
- CVSS version: 3.1
- CVSS source: N/A
- CVSS vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H- Attack vector: Network
- Attack complexity: Low
- Privileges required: None
- User interaction: None
- Scope: Unchanged
- Confidentiality impact: High
- Integrity impact: High
- Availability impact: High
- CWE: CWE-74 — Improper Neutralization of Special Elements in Output Used by a Downstream Component (‘Injection’), CWE-78 — Improper Neutralization of Special Elements used in an OS Command (‘OS Command Injection’), CWE-863 — Incorrect Authorization
- Related CAPEC attack patterns (via MITRE CWE relationships): CAPEC-10 (opens in a new tab) , CAPEC-101 (opens in a new tab) , CAPEC-105 (opens in a new tab) , CAPEC-108 (opens in a new tab) , CAPEC-120 (opens in a new tab) , CAPEC-13 (opens in a new tab) , CAPEC-135 (opens in a new tab) , CAPEC-14 (opens in a new tab) , CAPEC-15 (opens in a new tab) , CAPEC-24 (opens in a new tab) , CAPEC-250 (opens in a new tab) , CAPEC-267 (opens in a new tab) , CAPEC-273 (opens in a new tab) , CAPEC-28 (opens in a new tab) , CAPEC-3 (opens in a new tab) , CAPEC-34 (opens in a new tab) , CAPEC-42 (opens in a new tab) , CAPEC-43 (opens in a new tab) , CAPEC-45 (opens in a new tab) , CAPEC-46 (opens in a new tab) , CAPEC-47 (opens in a new tab) , CAPEC-51 (opens in a new tab) , CAPEC-52 (opens in a new tab) , CAPEC-53 (opens in a new tab) , CAPEC-6 (opens in a new tab) , CAPEC-64 (opens in a new tab) , CAPEC-67 (opens in a new tab) , CAPEC-7 (opens in a new tab) , CAPEC-71 (opens in a new tab) , CAPEC-72 (opens in a new tab) , CAPEC-76 (opens in a new tab) , CAPEC-78 (opens in a new tab) , CAPEC-79 (opens in a new tab) , CAPEC-8 (opens in a new tab) , CAPEC-80 (opens in a new tab) , CAPEC-83 (opens in a new tab) , CAPEC-84 (opens in a new tab) , CAPEC-88 (opens in a new tab) , CAPEC-9 (opens in a new tab)
- Vendor: cacti
- Vulnerable product: cacti
- CVE published: 2022-12-05
- CVE last modified: 2026-06-17
- Affected versions (NVD configurations):
- cacti: < 1.2.23
- EPSS: 0.9983; 100.0th percentile as of 2026-10-21 (FIRST (opens in a new tab) )
- CISA KEV: Listed (added 2023-02-16)
- Known ransomware campaign use: Unknown
- Latest Update: 2026-10-21
- Selected Rule IDs observed: 344364 , 344370
- Matching rules: 2; rules with blocking actions: 2
- Would-block Rule IDs: 344364 , 344370
- Request surfaces inspected: JSON request data, Request argument names, Request arguments, Request cookies, SOAP request data, XML request data
Technical vulnerability details · CVSS assessments, exploit evidence & CPE data
CVSS assessments
CVSS v3.1 · security-advisories@github.com
- Base score: 9.8
- Base severity: CRITICAL
- Exploitability subscore: 3.9
- Impact subscore: 5.9
- Assessment type: Secondary
- Source identifier: security-advisories@github.com
- Full vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H- Attack vector: Network
- Attack complexity: Low
- Privileges required: None
- User interaction: None
- Scope: Unchanged
- Confidentiality impact: High
- Integrity impact: High
- Availability impact: High
- Exploit maturity: Not scored
CVSS v3.1 · NVD
- Base score: 9.8
- Base severity: CRITICAL
- Exploitability subscore: 3.9
- Impact subscore: 5.9
- Assessment type: Primary
- Source identifier: nvd@nist.gov
- Full vector:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H- Attack vector: Network
- Attack complexity: Low
- Privileges required: None
- User interaction: None
- Scope: Unchanged
- Confidentiality impact: High
- Integrity impact: High
- Availability impact: High
- Exploit maturity: Not scored
Exploitability and impact subscores describe the vulnerability’s technical characteristics. Exploit maturity describes the reported state of exploitation; these are separate measures.
Assessment source: NVD record (opens in a new tab) · CVE record (opens in a new tab)
CISA SSVC assessments
These are CISA’s published decision points at the assessment time. They are not a complete organization-specific prioritization decision.
- Provider: CISA ADP
- Provider identifier: 134c704f-9b21-4f2e-91b3-4a467353bcc0
- SSVC version: 2.0.3
- Role: CISA Coordinator
- Assessment timestamp: 2024-05-13T17:39:57.218915Z
- Exploitation: active
- Automatable: no
- Technical Impact: total
- Source: CISA ADP in the CVE record (opens in a new tab)
Exploit references
The CVE source data tags these references as exploits. A reference alone does not establish reliability or active exploitation.
Vulnerable CPE configurations
cpe:2.3:a:cacti:cacti:*:*:*:*:*:*:*:*- Version end (exclusive):
1.2.23 - NVD match criteria ID:
B252EEC1-25BE-428B-96CA-22A0E812D3BA
- Version end (exclusive):
Vulnerability Description
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.
Recommended Actions
Maintain the observed Atomicorp protections. Keep your Atomicorp commercial rules current and confirm that the selected observed rules (344364 , 344370 ) have not been locally disabled. Atomicorp commercial rules are enabled by default. If you use Atomic WAF, review the applicable policy and rule settings.
Apply the vendor’s remediation. WAF protection is defense in depth and does not replace upgrading or following the affected vendor’s guidance.
- Affected versions: Cacti version < 1.2.23.
- The CVE record does not include written upgrade or workaround instructions, but it does publish the following patch or mitigation reference:
- CISA KEV required action: Apply updates per vendor instructions.
- CISA KEV federal remediation due date: 2023-03-09
Validate after changes. Confirm rule updates are current, review WAF events for the affected application, and test application behavior after vendor upgrades, mitigations, or local policy changes.
Research Notes
Atomicorp WAF protections are designed around attack techniques and exploit behaviors, allowing existing protections to apply across multiple vulnerabilities without requiring a unique rule for every CVE.
Public Vulnerability References
- NVD (opens in a new tab)
- CVE Record (opens in a new tab)
- Patch or mitigation: https://github.com/Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216 (opens in a new tab)
- Patch or mitigation: https://github.com/Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9 (opens in a new tab)
- Patch or mitigation: https://github.com/Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b (opens in a new tab)
- Patch or mitigation: https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf (opens in a new tab)
- CVE authority reference: https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2022-46169 (opens in a new tab)
Test or Research Source
- Source: Vulhub cacti/CVE-2022-46169 (opens in a new tab)
- Tags: CVE-2022-46169, cve, http, replay, vulhub
Research Note Context
This research note documents exploit-technique analysis associated with this vulnerability and references Atomicorp WAF protections observed during engineering review, testing, or validation activities.
Atomicorp security controls are generally designed to identify and mitigate attack techniques and exploit behaviors rather than individual CVE identifiers. As a result, protections developed for one vulnerability may also apply to related attack variants and future vulnerabilities using similar techniques.
Learn More
Atomicorp develops commercially supported security technologies for web applications, servers, endpoints, workloads, and legacy enterprise platforms.
Organizations interested in protecting systems against exploit techniques associated with vulnerabilities such as this one can learn more about:
- Atomic ModSecurity Rules: commercially maintained WAF rules for ModSecurity deployments, including protections for web attacks, bots, scanners, malware, exploitation attempts, and emerging vulnerability classes.
- Atomic WAF: an enterprise web application firewall with Atomicorp rules, centralized management, reporting, authentication controls, and operational tooling.
- Atomic ModSecurity Integrator: a special licensing option for MSPs, MSSPs, OEMs, VARs, reverse proxy providers, and other integrators who want to incorporate Atomicorp ModSecurity rule technology into their own products or services.
- Atomic OSSEC: an enterprise OSSEC-based intrusion detection, compliance, and security monitoring platform.
- Atomic Protector: workload protection for Linux, web, cloud, data center, and hybrid environments.
For additional information, product evaluations, or technical discussions, visit https://www.atomicorp.com/ or https://modsecurity.io/ (opens in a new tab) .