
upsmon: Remote-OS-Befehleinschleusung (RCE) über angreiferkontrolliertes ups.alarm bei der NOTIFYCMD-Ausführung
upsmon interpoliert den vom Server gelieferten, angreiferkontrollierten ups.alarm-Wert unbereinigt in einen Shell-Befehl, den es über system() ausführt. Wenn ein überwachtes Gerät einen ALARM-Status meldet und der Betreiber NOTIFYCMD mit EXEC für das ALARM-Ereignis konfiguriert hat, führt ein ups.alarm-Wert, der eine Shell-Befehlssubstitution enthält ($(...) / Backticks unter POSIX oder ein "&…&"-Quote-Breakout unter Windows ), zur , da zur Verwaltung des System-Herunterfahrens als root läuft.
cmd.exeupsmon-Benutzer — üblicherweise rootupsmonclients/upsmon.c (notify() sowie die WIN32-Zwillinge async_notify() und wall()),
gesteuert durch die Standard-NOTIFY_ALARM-Nachricht in clients/upsmon.h.git master. Nicht betroffen: ≤ 2.8.2.
Bestätigt durch Diff der Tags v2.8.2 vs v2.8.3: Die ups.alarm → NOTIFY_ALARM-Behandlung
(ups_is_alarm(), do_notify(…, NOTIFY_ALARM, …), der ups.alarm-GET) wurde in 2.8.3 eingeführt
(über Issue #2657 / PR #2658). Als verwundbar verifiziert auf den ausgelieferten Paketen nut-client 2.8.5
(Fedora 42/43), 2.8.4 (Fedora 41 / Debian sid / ubuntu:rolling), 2.8.3 (Ubuntu 25.10); nicht
auslösbar auf 2.8.1 (Debian trixie/stable, Ubuntu 24.04 LTS).Bitte lesen Sie den vollständigen Bericht unter GHSA-mjgp-j4gm-6qg5.