„`html
Zusammenfassung
FastNetMon Community Edition bis Version 1.2.9 enthält eine kritische OS-Command-Injection-Sicherheitslücke im Juniper-Router-Integrations-Plugin. Die Schwachstelle ermöglicht unauthentifizierten Angreifern die Ausführung beliebiger Betriebssystembefehle mit den Privilegien des FastNetMon-Prozesses durch unsanitierte Eingabeparameter.
Betroffene Systeme
- FastNetMon Community Edition Version 1.2.9 und früher
- Juniper Router Integration Plugin (fastnetmon_juniper.php)
- Pavel-Odintsov FastNetmon
Technische Details
Die Sicherheitslücke befindet sich in der _log()-Funktion in src/juniper_plugin/fastnetmon_juniper.php (Zeilen 117-118). Der vulnerable Code konkateniert den Parameter $msg direkt in exec()-Aufrufe:
exec("echo `date` \"- {FASTNETMON] - " . $msg . " \" >> " . $FILE_LOG_TMP)
Die Variable $msg wird aus unsanitisierten Kommandozeilenargumenten (argv[1] bis argv[3]) konstruiert, welche die Angreifer-IP, Richtung und Leistung darstellen. Obwohl der C++-Kern derzeit sichere IP-Adressen via inet_ntoa() übergibt, erfolgt im PHP-Skript keine Input-Validierung oder Shell-Escaping.
Bei direktem Skript-Aufruf, durch externe Orchestrierungssysteme oder zukünftigen Code-Änderungen können Shell-Metazeichen injiziert werden, um beliebige Befehle auszuführen.
Empfohlene Massnahmen
- Sofort: Upgrade auf eine Patch-Version durchführen (wenn verfügbar)
- Interim: Zugriff auf das Juniper-Plugin beschränken
- Code-Fix:
exec()durchfile_put_contents()ersetzen oderescapeshellarg()auf alle Parameter anwenden - Input-Validierung für alle Kommandozeilen-Parameter implementieren
- Least-Privilege-Prinzip für FastNetMon-Prozesse sicherstellen
Bewertung
CVSS-Score: 9.8 (Critical)
Angriffsvektor: Network
Patch-Status: Nicht verfügbar
Die hohe CVSS-Bewertung widerspiegelt die kritische Natur dieser Remote-Code-Execution-Sicherheitslücke ohne erforderliche Authentifizierung.
„`