
upsmon: NOTIFYCMD 실행 시 공격자가 제어하는 ups.alarm을 통한 원격 OS 명령 주입(RCE)
upsmon은 서버에서 제공되고 공격자가 제어할 수 있는 ups.alarm 값을 검증 없이 system()을 통해 실행되는 셸 명령에 삽입합니다. 모니터링되는 장치가 ALARM 상태를 보고하고 운영자가 ALARM 이벤트에 대해 NOTIFYCMD를 EXEC로 구성한 경우, 셸 명령 치환($(...) / POSIX의 백틱, 또는 Windows cmd.exe에서 "&…&" 따옴표를 벗어나는 방식)을 포함하는 ups.alarm 값은 을 초래합니다. 은 시스템 종료를 관리하기 위해 root로 실행되기 때문입니다.
upsmon 사용자(일반적으로 root) 권한으로 임의 OS 명령 실행upsmonclients/upsmon.c (notify(), 그리고 WIN32 대응 함수 async_notify() 및 wall()),
clients/upsmon.h의 기본 NOTIFY_ALARM 메시지에 의해 구동됩니다.git master. 영향 없음: ≤ 2.8.2.
v2.8.2와 v2.8.3 태그 비교로 확인됨: ups.alarm → NOTIFY_ALARM 처리
(ups_is_alarm(), do_notify(…, NOTIFY_ALARM, …), ups.alarm GET)는 2.8.3에서 도입됨
(이슈 #2657 / PR #2658 경유). 배포 패키지 nut-client 2.8.5(Fedora 42/43),
2.8.4(Fedora 41 / Debian sid / ubuntu:rolling), 2.8.3(Ubuntu 25.10)에서 취약함을 확인함;
2.8.1(Debian trixie/stable, Ubuntu 24.04 LTS)에서는 트리거되지 않음.전체 보고서를 보려면 GHSA-mjgp-j4gm-6qg5를 참조하십시오.