
upsmon: iniezione di comandi del sistema operativo da remoto (RCE) tramite ups.alarm controllato dall'attaccante nell'esecuzione di NOTIFYCMD
upsmon interpola il valore ups.alarm fornito dal server e controllabile dall'attaccante, senza sanificazione, in un comando shell che esegue tramite system(). Quando un dispositivo monitorato segnala uno stato ALARM e l'operatore ha configurato NOTIFYCMD con EXEC sull'evento ALARM, un valore ups.alarm contenente sostituzione di comando della shell ($(...) / backtick su POSIX, o un break-out di virgolette "&…&" su Windows ) comporta l', perché viene eseguito come root per gestire lo spegnimento del sistema.
cmd.exeupsmon — comunemente rootupsmonclients/upsmon.c (notify(), e i gemelli WIN32 async_notify() e wall()),
guidato dal messaggio standard NOTIFY_ALARM in clients/upsmon.h.git master attuale. Non interessate: ≤ 2.8.2.
Confermato confrontando i tag v2.8.2 vs v2.8.3: la gestione ups.alarm → NOTIFY_ALARM
(ups_is_alarm(), do_notify(…, NOTIFY_ALARM, …), la GET di ups.alarm) è stata introdotta in 2.8.3
(tramite issue #2657 / PR #2658). Vulnerabilità verificata sui pacchetti distribuiti nut-client 2.8.5
(Fedora 42/43), 2.8.4 (Fedora 41 / Debian sid / ubuntu:rolling), 2.8.3 (Ubuntu 25.10); non
innescata su 2.8.1 (Debian trixie/stable, Ubuntu 24.04 LTS).Fare riferimento a GHSA-mjgp-j4gm-6qg5 per leggere il report completo.