Vulnerability report

Active exploitation observed Confirmed confidence In CISA KEV

CVE-2022-46169

Unauthenticated Command Injection

Cacti / cacti · affected before 1.2.23

Severity
CVSS 9.8 · Critical
Confidence
Confirmed
Exploit status
Observed in sensors
EPSS
99.8%
First observed
10 Jul 2026
Last observed
19 Aug 2026

Decision summary

What security teams need to know first

Direct answers before the deeper technical record.

What it is

CVE-2022-46169 is an unauthenticated Unauthenticated Command Injection affecting Cacti cacti. Cacti is an open source platform which provides a robust and extensible operational monitoring and fault management...

Is it exploited?

Yes. KEV Intelligence sensors observed exploitation attempts with confirmed confidence.

Who is affected?

Cacti / cacti affected before 1.2.23.

What should we do?

Patch immediately, validate internet-facing exposure, and monitor for matching requests.

Overview

Unauthenticated Command Injection

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: `. 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.

Vendor Product Affected Status
cacti cacti Before 1.2.23 Affected
Cacti cacti Before 1.2.23 Affected
Published
05 Dec 2022
Exploitation Reported
16 Feb 2023
Attack vector
Remote
Complexity
Low
Privileges
None
User interaction
None

Tags

nuclei_scanner windows metasploit cisa php

CVE References

Exploitation evidence

Why KEV Intelligence marks this CVE as exploited

Third-party attestation and first-party sensor observation are shown separately so teams can judge the evidence chain.

Exploited in the wild

CISA

Recorded 16 Feb 2023

Independent exploitation attestation added to the KEV Intelligence record.

Active exploitation observed

KEV Intelligence sensor

First observed 10 Jul 2026

First-party sensor telemetry confirms matching exploitation attempts.

Proof of concept available

GitHub

Recorded 08 Dec 2022

Public scanner or PoC coverage increases practical exploitability.

Known exploited vulnerability sources

Per-source evidence links for KEV attestations are available through the KEV Intelligence Pro API.

Learn about Pro API access
Source Added
CISA First 2023-02-16 00:00 UTC
The Shadowserver 2026-07-03 00:00 UTC
KEV Intelligence 2026-07-10 03:25 UTC

Operational indicators for this CVE are listed under Detection.

Sensor telemetry

First-party evidence of exploitation activity

Aggregate observations show the scale, recency, and distribution of activity without overstating sparse data.

221

Attempts observed

22

Unique attacker IPs

10

Attacker countries

BR · CA · DE · EE · FR · GB · KR · MX · SC · US

1

Sensors observed

Exploitation attempts over the last 42 days

Daily events observed by KEV Intelligence sensors

Updated 19 Aug 2026

0
6
0
0
0
0
0
0
0
6
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
200
1
0
12
0
0
0
0
0
0
0
0
0
6
2
9 Jul 18 Jul 27 Jul 5 Aug 19 Aug

First observed 10 Jul 2026 · Last observed 19 Aug 2026

Pro adds sensor region and window summaries. Enterprise adds raw IPs, paths, User-Agents, and payloads.

Request telemetry access

Detection

Operational artifacts and observed signals

Make the evidence actionable in scanner, SOC, and edge-control workflows.

Observed signals

Request targets
121
User-Agents
6

Raw values available in Pro and Enterprise.

Virtual patch status

No KEV Intelligence virtual patch is currently available. Future rules ship for ModSecurity, Cloudflare, and AWS WAF.

Learn about virtual patches →

Attacker IP Indicators

Attacker IP indicators observed · available in Pro and Enterprise.

Sensor-derived attacker IP indicators are available to Pro and Enterprise accounts under Detection and through the Pro API.

Learn about Pro API access

Scanner Artifacts

Scanner and exploit-framework references linked to this CVE.

Risk and context

Severity, weaknesses, and research context

Potential Proof of Concepts

These PoCs are unverified and could contain malware. Use at your own risk.

cacti_unauthenticated_cmd_injection

metasploit · Created Unknown

Metasploit module for CVE-2022-46169

Timeline

From disclosure to observed exploitation

  1. Observed by KEV Intelligence sensors

    Evidence-backed exploitation signal

  2. Indicators of compromise added (25)

    Indicators of compromise recorded

  3. KEV confirmed by The Shadowserver

    Exploitation attested by an external source

  4. Metasploit module available

    Exploit module available

  5. Public PoC available

    Public proof-of-concept code published

  6. Nuclei template available

    Scanner coverage available

  7. Added to CISA KEV

    Listed in the CISA Known Exploited Vulnerabilities catalog

  8. CVE published

    Vulnerability disclosed publicly

  9. CVE ID reserved

    Identifier reserved by the CNA

Pro API

Automate this intelligence

Confidence, exploit status, sensor telemetry, PoCs, scanner integrations, mentions, and tags are available programmatically for VM, SOC, and CTI workflows.

  • Evidence confidence and provenance
  • First-party sensor telemetry
  • PoC and scanner references
  • Affected versions and enrichment
  • Automation-ready JSON delivery

GET /api/v2/pro/kevs/CVE-2022-46169

Free JSON includes basic KEV fields
{
  "cve_id": "CVE-2022-46169",
  "confidence": "Confirmed",
  "cvss_score": 9.8,
  "cvss_estimated": false,
  "epss_score": 0.99826,
  "exploit_status": {
    "exploited_in_the_wild": true,
    "active_exploitation_observed": true
  },
  "sensor_telemetry": { "attempts": 221, "sensors": 1 }
}

Early warning alerts

Get alerts on high-impact exploitation

Receive curator-selected alerts when exploitation activity warrants attention. Each alert includes the evidence and context needed to decide what requires attention now.

Occasional high-impact alerts. Unsubscribe anytime. See our Privacy Policy.