CVE-2022-46169
Cacti Command Injection Vulnerability
Beschreibung
CVE-2022-46169 ist eine kritische Schwachstelle in Cacti, der Open-Source-Plattform für Netzwerk-Monitoring, die eine Kombination aus Command Injection (CWE-78) und Autorisierungsumgehung (CWE-863) darstellt. Ein nicht authentifizierter Angreifer kann über die Datei remote_agent.php beliebige Betriebssystembefehle auf dem Server ausführen, sofern ein Poller-Item mit der Aktion POLLER_ACTION_SCRIPT_PHP konfiguriert ist. Mit einem CVSS-Score von 9,8 (CRITICAL) und einem EPSS-Score von 94,47 % gehört diese Schwachstelle zu den am aktivsten ausgenutzten Sicherheitslücken. Die CISA hat CVE-2022-46169 in den KEV-Katalog aufgenommen. Die Schwachstelle wurde in Cacti Version 1.2.23 und im 1.3.x-Branch behoben.
KEV-Informationen
CVSS-Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HIm Rechner öffnenCWEs
Betroffene Produkte
| Hersteller | Produkt | Version |
|---|---|---|
| cacti | cacti | < 1.2.23 |
Mehrere CVSS-Bewertungen
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Referenzen
- https://github.com/Cacti/cacti/commit/7f0e16312dd5ce20f93744ef8b9c3b0f1ece2216(Patch, Third Party Advisory)
- https://github.com/Cacti/cacti/commit/a8d59e8fa5f0054aa9c6981b1cbe30ef0e2a0ec9(Patch, Third Party Advisory)
- https://github.com/Cacti/cacti/commit/b43f13ae7f1e6bfe4e8e56a80a7cd867cf2db52b(Patch, Third Party Advisory)
- https://github.com/Cacti/cacti/security/advisories/GHSA-6p93-p743-35gf(Exploit, Mitigation, Patch, Third Party Advisory)
- https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2022-46169(US Government Resource)
Schwachstellentyp
CWE-78: Improper Neutralization of Special Elements used in an OS Command (OS Command Injection)
CVE-2022-46169 umfasst eine OS-Command-Injection-Schwachstelle (CWE-78). Diese Schwachstellenklasse entsteht, wenn eine Anwendung Benutzereingaben ohne ausreichende Bereinigung in Betriebssystembefehle einbettet. Im Fall von Cacti wird der vom Angreifer kontrollierte Parameter poller_id über die Funktion get_nfilter_request_var eingelesen und ohne Filterung in einen proc_open-Aufruf eingefügt, was die Ausführung beliebiger Befehle ermöglicht.
Weitere Informationen: CWE-78 — OS Command Injection
CWE-863: Incorrect Authorization
CVE-2022-46169 beinhaltet zusätzlich eine fehlerhafte Autorisierung (CWE-863). Die Datei remote_agent.php kann ohne Authentifizierung aufgerufen werden. Die Autorisierungsprüfung basiert auf einem Vergleich der Client-IP-Adresse mit Einträgen in der Poller-Tabelle, wobei die IP-Adresse über manipulierbare HTTP-Header (z.B. Forwarded-For) gefälscht werden kann.
Weitere Informationen: CWE-863 — Incorrect Authorization
CWE-74: Improper Neutralization of Special Elements in Output Used by a Downstream Component (Injection)
Die übergeordnete Schwachstellenklasse CWE-74 (Injection) erfasst das grundlegende Problem der unzureichenden Eingabevalidierung, das sowohl der Command Injection als auch der Autorisierungsumgehung in CVE-2022-46169 zugrunde liegt.
Weitere Informationen: CWE-74 — Injection
Auswirkungsanalyse
Angriffsvektor (Netzwerk): CVE-2022-46169 ist aus der Ferne über das Netzwerk ausnutzbar, ohne dass physischer Zugang zum Cacti-Server erforderlich ist. Angriffskomplexität (Niedrig): Die Ausnutzung erfordert keine besonderen Bedingungen — lediglich ein konfiguriertes Poller-Item mit POLLER_ACTION_SCRIPT_PHP, was bei produktiven Cacti-Instanzen standardmäßig vorhanden ist. Keine Authentifizierung erforderlich: Durch die Autorisierungsumgehung (CWE-863) kann ein Angreifer ohne jegliche Zugangsdaten auf den verwundbaren Endpunkt zugreifen. Keine Benutzerinteraktion notwendig: Der Angriff erfolgt vollautomatisch ohne Zutun eines Benutzers. Vertraulichkeit, Integrität und Verfügbarkeit (jeweils Hoch): Bei erfolgreicher Ausnutzung erhält der Angreifer die Möglichkeit, beliebige Befehle auf dem Cacti-Server auszuführen, was zur vollständigen Systemkompromittierung führt — einschließlich Datenexfiltration, Manipulation von Monitoring-Daten und Ausfall des gesamten Überwachungssystems. Der CVSS-Score von 9,8 (CRITICAL) reflektiert die maximale Gefährlichkeit dieser Schwachstelle. Der EPSS-Score von 94,47 % (Perzentile: 99,997 %) belegt die extrem hohe Ausnutzungswahrscheinlichkeit.
Exploit-Reifegrad
Öffentlicher Exploit-Code und detaillierte technische Dokumentation sind verfügbar für CVE-2022-46169, unter anderem über das GitHub Security Advisory GHSA-6p93-p743-35gf, das sowohl einen Proof-of-Concept als auch Mitigationshinweise enthält. Die CISA hat die aktive Ausnutzung dieser Schwachstelle bestätigt und sie mit einer Behebungsfrist bis zum 9. März 2023 in den KEV-Katalog aufgenommen. Der EPSS-Score von 94,47 % (Perzentile: 99,997 %) signalisiert eine nahezu sichere Ausnutzungsaktivität und macht CVE-2022-46169 zu einer der am wahrscheinlichsten ausgenutzten Schwachstellen überhaupt. Da die Schwachstelle ohne Authentifizierung ausnutzbar ist und Bruteforce der benötigten IDs trivial ist, eignet sie sich hervorragend für automatisierte Massenangriffe gegen exponierte Cacti-Instanzen.
Behebung
- Cacti auf Version 1.2.23 oder höher aktualisieren: Die Schwachstelle wurde in Cacti 1.2.23 (1.2.x-Branch) sowie im 1.3.x-Branch behoben. Ein sofortiges Update ist die wichtigste Maßnahme.
- Cacti-Instanzen vom öffentlichen Internet isolieren: Falls ein sofortiges Update nicht möglich ist, den Zugriff auf Cacti-Server über Firewall-Regeln auf vertrauenswürdige interne Netzwerke beschränken. Insbesondere die Datei remote_agent.php darf nicht öffentlich erreichbar sein.
- HTTP-Header-Verarbeitung absichern: Die Funktion get_client_addr in lib/functions.php verlässt sich auf manipulierbare HTTP-Header (HTTP_X_FORWARDED_FOR, HTTP_FORWARDED_FOR etc.). Als Sofortmaßnahme den Reverse-Proxy so konfigurieren, dass eingehende X-Forwarded-For-Header überschrieben werden.
- Systemlogs auf Kompromittierungshinweise prüfen: Cacti-Logs und Webserver-Zugriffsprotokolle auf verdächtige Aufrufe von remote_agent.php untersuchen, insbesondere auf ungewöhnliche poller_id-Parameter oder Anfragen mit manipulierten Forwarded-For-Headern.
- Eingabevalidierung langfristig härten: Sicherstellen, dass alle Benutzereingaben, insbesondere der Parameter poller_id, vor der Verwendung in Systembefehlen strikt validiert und bereinigt werden. Parametrisierte Aufrufe statt String-Konkatenation für proc_open verwenden.
Technische Details
Schwachstellenmechanismus: CVE-2022-46169 kombiniert zwei Schwachstellen in Cacti: eine Autorisierungsumgehung (CWE-863) und eine OS-Command-Injection (CWE-78). Die Datei remote_agent.php ist ohne Authentifizierung zugänglich und prüft die Autorisierung ausschließlich anhand der Client-IP-Adresse. Die Funktion get_client_addr in lib/functions.php wertet dabei manipulierbare HTTP-Header ($SERVER-Variablen mit HTTP-Präfix) aus. Autorisierungsumgehung: Ein Angreifer setzt den Header Forwarded-For auf die IP-Adresse des Cacti-Servers selbst. Die Funktion gethostbyaddr löst diese IP zum Hostnamen auf, der mit dem Standardeintrag in der Poller-Tabelle übereinstimmt und die Autorisierung passiert. Command Injection: Nach der Autorisierungsumgehung ruft der Angreifer die polldata-Aktion auf. Der Parameter poller_id wird über get_nfilter_request_var eingelesen, die beliebige Zeichenketten zulässt. Dieser Parameter wird ohne Bereinigung in den String eingefügt, der an proc_open übergeben wird — beispielsweise führt poller_id=;id den Befehl id aus. Voraussetzung: Es muss ein Poller-Item mit der Aktion POLLER_ACTION_SCRIPT_PHP existieren, was durch Standardvorlagen wie Device - Uptime auf produktiven Instanzen nahezu immer gegeben ist.
Häufig gestellte Fragen
Wird CVE-2022-46169 aktiv ausgenutzt?
Ja, CVE-2022-46169 wird aktiv ausgenutzt. Die CISA hat die Schwachstelle in den KEV-Katalog aufgenommen, mit einer Behebungsfrist bis zum 9. März 2023. Der EPSS-Score von 94,47 % (Perzentile: 99,997 %) bestätigt die extrem hohe Ausnutzungswahrscheinlichkeit. Öffentlicher Exploit-Code ist verfügbar, was die Bedrohungslage zusätzlich verschärft.
Welche Produkte sind von CVE-2022-46169 betroffen?
Betroffen sind alle Cacti-Versionen vor 1.2.23 im 1.2.x-Branch sowie ältere Versionen im 1.3.x-Branch. Die Schwachstelle setzt voraus, dass ein Poller-Item mit der Aktion POLLER_ACTION_SCRIPT_PHP konfiguriert ist, was bei produktiven Instanzen durch Standardvorlagen wie "Device - Uptime" nahezu immer der Fall ist.
Wie behebe ich CVE-2022-46169?
Die wichtigste Maßnahme ist das Update auf Cacti Version 1.2.23 oder höher. Falls ein sofortiges Update nicht möglich ist, sollte der Zugriff auf die Datei remote_agent.php eingeschränkt und die Cacti-Instanz vom öffentlichen Internet isoliert werden. Weitere Details finden Sie im Abschnitt Behebung.
Wie schwerwiegend ist CVE-2022-46169?
CVE-2022-46169 ist mit einem CVSS-Score von 9,8 als CRITICAL eingestuft — die höchste Risikostufe. Die Schwachstelle ermöglicht nicht authentifizierte Remote Code Execution und wird aktiv ausgenutzt. Der EPSS-Score von 94,47 % macht sie zu einer der am wahrscheinlichsten ausgenutzten Schwachstellen überhaupt.
Hilfe beim Schwachstellenmanagement?
Unsere Sicherheitsexperten helfen Ihnen bei der Priorisierung und Behebung von Schwachstellen.