CVE-2022-46169
Exploitation confirmed. First attested on 2023-02-16 by CISA-ADP, CISA KEV, GCVE · kevintel, GCVE · shadowserver.
- Published2022-12-05
- Fixed in1.2.23
- WeaknessCWE-74 · CWE-78 · CWE-863
Am I affected?
Debian, Ubuntu or Red Hat sometimes backport a fix without changing the upstream version number: such a version reads « to verify », never « affected ».With a domain, we read the version its public headers and pages expose. A distribution build can carry the fix under an older number.
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.
Timeline
dates in UTC- 2022-12-0521:15CVE publishedNVD
- 2023-02-16Added to the CISA KEV catalogCISA KEV
- 2023-02-16Listed as exploited by GCVEGCVE
- 2023-02-16Exploitation first reportedCISA KEV
- 2023-03-31Exploit-DB entryExploit-DB
- 2024-05-1317:39SSVC exploitation set to activeCISA-ADP
Observed activity
isMalicious corpus · updated 2026-11-04 09:37 UTCBlock these indicators
- Firewall list (EDL, text): https://api.ismalicious.com/edl/cve/CVE-2022-46169?format=txt
- CSV export: https://api.ismalicious.com/edl/cve/CVE-2022-46169?format=csv
- TAXII collection of exploited CVEs
- The EDL and CSV take an API key on the Pro plan.
Versions per branch
NVD · CISA-ADP| Branch | Affected | Fixed in | Source |
|---|---|---|---|
| 1.2 | < 1.2.23 | 1.2.23 | NVD |
| 1.2 | ≥ -, < 1.2.23 | 1.2.23 | CISA-ADP |
as publishedRanges as NVD and OSV publish them; a distribution’s build can be fixed under an older number.
Products declared by the CNA1 product
As GitHub_M, the CNA that assigned this CVE, declared them in the CVE record; versions as written.
- cactiAffected
- = < 1.2.23no fix stated
Source: the CNA record (CVE Program), © The MITRE Corporation,CVE Terms of UseCVE recordupdated 2022-12-05
Distribution builds and vendor advisories
Packages from OSV.dev and products from the vendors' CSAF advisories.
version not verifiedVersions not verified: read as OSV.dev and the vendors publish them, not checked against each vendor's release list.
Packages
- cactiUbuntu:Pro:22.04:LTSall versions · fixed in 1.2.19+ds1-2ubuntu1.1+esm2
- cactiUbuntu:Pro:20.04:LTSall versions · fixed in 1.2.10+ds1-1ubuntu1.1+esm2
- cactiUbuntu:Pro:18.04:LTSall versions · fixed in 1.1.38+ds1-1ubuntu0.1~esm4
- cactiSUSE:Package Hub 15 SP4all versions · fixed in 1.2.23-bp154.2.6.1and 1 other package
- cactiSUSE:Package Hub 12all versions · fixed in 1.2.23-bp154.2.6.1and 1 other package
- cactiopenSUSE:Tumbleweedall versions · fixed in 1.2.23-1.1
- cactiopenSUSE:Leap 15.4all versions · fixed in 1.2.23-bp154.2.6.1and 1 other package
- cactiDebian:14all versions · fixed in 1.2.22+ds1-3
4 more package ranges on OSV.dev
Vendor advisories
- CVE-2022-46169 Red Hat Product Security
cacti: unauthenticated command injection
Fix
- Update Cacti to 1.2.23
- CISA’s required action: Apply updates per vendor instructions.due 2023-03-09
Advisories and patches
- github.comPatch
- github.comPatch
- github.comPatch
- github.comMitigation · Patch
Detection
read 2026-11-03 22:42 UTC- Nuclei template
- available ProjectDiscovery
- Proof-of-concept repositories
- 20 repositories, unverifiedimjdl/CVE-2022-461690xf4n9x/CVE-2022-46169taythebot/CVE-2022-46169sh4den/CVE-2022-46169sAsPeCt488/CVE-2022-46169 PoC-in-GitHub
- Metasploit modules
- 1 moduleexploit/linux/http/cacti_unauthenticated_cmd_injectionrank: excellentModule metadata: Metasploit Framework, © Rapid7, Inc., BSD-3-Clause. Metasploit Framework
CISA Known Exploited Vulnerability
- Date Added
- 2023-02-16
- Patch Due Date
- 2023-03-09
- Ransomware Use
- Unknown
- Required Action
- Apply updates per vendor instructions.
Sources
- CISA KEVKEV entry2023-02-16
- ENISA EUVDexploitation2023-02-162023-02-16
- GCVEexploitation2023-02-16
- CISA-ADPSSVC decisionactive2024-05-13
- OpenCVESSVC decisionactive—
- CNACVSS 3.19.8known since 2026-10-23
- NVDCVSS 3.19.8read 2026-10-23
- CNAweakness (CWE)CWE-74known since 2026-10-23
- NVDweakness (CWE)CWE-78, CWE-863read 2026-10-23
- FIRST EPSSEPSS score99.8 %read 2026-11-03
- PoC-in-GitHubproof of concept20read 2026-11-03
- Exploit-DBdetectionread 2026-11-03
- ProjectDiscoverydetectionread 2026-11-03
- Metasploit FrameworkMetasploit modules1known since 2026-11-01
- OSVaffected packages—
Identifiers
- EUVD-2022-48996same flawENISA EUVD · LicenseRef-ENISA-legal-notice
- exploit/linux/http/cacti_unauthenticated_cmd_injectionexploit moduleMetasploit Framework © Rapid7 · BSD-3-Clause
- DLA-3252-1advisory covering several CVEsDebian · LicenseRef-unstated
- DSA-5298-1advisory covering several CVEsDebian · LicenseRef-unstated
- openSUSE-SU-2023:0025-1advisory covering several CVEsopenSUSE · LicenseRef-unstated
- openSUSE-SU-2024:12593-1advisory covering several CVEsopenSUSE · LicenseRef-unstated
- USN-7226-1advisory covering several CVEsUbuntu
Technical details
- CVSS v3 Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
- Published
- 2022-12-05
- Last Modified
- 2026-06-17
- NVD status
- Analyzed
Frequently asked questions
What is CVE-2022-46169?
Is CVE-2022-46169 actively exploited?
What is the CVSS score for CVE-2022-46169?
Running cacti? Hear about its next vulnerability
Surveillance reads the versions in your stack — a domain, a lockfile or a list — checks each CVE against the ranges its sources publish, and alerts you when one you run is exploited or enters CISA KEV. A version it cannot read stays « version not verified ».
No credit card required · No monthly cap on website lookups · 250 API requests/month
Go further
- For a threat intelligence platform: malware, C2 and ransomware indicators over STIX/TAXII.
- Following what attackers exploit right now? The CISA KEV additions of the month, with their patch deadlines.
- Running this software? Vulnerability monitoring alerts you to new vulnerabilities in your products.
Related vulnerabilities
Same product first, then the same vendor advisory and the same publication week.
Sources for this record
- CISA KEV · CC0-1.0 (cisagov/kev-data)
- CVE Program · CVE Program Terms of Use
- ENISA EU Vulnerability Database · ENISA legal notice §1.2 (reproduction authorised, provided the source is acknowledged)
- Exploit-DB · Exploit-DB terms of service · terms restrict redistribution
- FIRST EPSS · EPSS terms of use (free use, attribution requested)
- GCVE · GCVE dump terms (preserve source attribution)
- Metasploit Framework · BSD-3-Clause
- Nuclei templates · MIT
- NVD · Public domain (17 U.S.C. § 105) for NVD-authored data; third-party content under its own terms
- OpenCVE · OpenCVE terms of service · terms restrict redistribution
- OSV.dev · Per record, as its publisher states it: each row carries the label in sourceLicense when one is served
- PoC-in-GitHub · CC0-1.0
- Red Hat Product Security (CSAF and VEX) · CC-BY-4.0
- CISA Vulnrichment · CC0-1.0