
upsmon: حقن أوامر نظام التشغيل عن بُعد (RCE) عبر ups.alarm المتحكم فيه من قبل المهاجم في تنفيذ NOTIFYCMD
upsmon يدخل القيمة ups.alarm المقدَّمة من الخادم والتي يتحكم فيها المهاجم، دون تعقيم، في أمر صدفي يشغّله عبر system(). عندما يبلغ جهاز خاضع للمراقبة عن حالة ALARM ويكون المشغِّل قد ضبط NOTIFYCMD مع EXEC على حدث ALARM، فإن قيمة ups.alarm التي تحتوي على استبدال أوامر الصدفة ($(...) / backticks على POSIX، أو كسر اقتباس "&…&" على Windows cmd.exe) تؤدي إلى تنفيذ أوامر تعسفية على نظام التشغيل بصلاحية مستخدم upsmon — عادةً root، لأن upsmon يعمل بصلاحية root لإدارة إيقاف تشغيل النظام.
clients/upsmon.c (notify()، والتوأمان الخاصان بـ WIN32 async_notify() وwall())،
مدفوعًا برسالة NOTIFY_ALARM القياسية في clients/upsmon.h.git master الحالي. غير المتأثّر: ≤ 2.8.2.
تم التأكيد عبر مقارنة الوسمين v2.8.2 وv2.8.3: معالجة ups.alarm → NOTIFY_ALARM
(ups_is_alarm()، وdo_notify(…, NOTIFY_ALARM, …)، وGET الخاصة بـ ups.alarm) أُدخلت في الإصدار 2.8.3
(عبر issue #2657 / PR #2658). تم التحقق من قابلية الاستغلال في الحزم الموزَّعة
(Fedora 42/43)، و (Fedora 41 / Debian sid / ubuntu:rolling)، و (Ubuntu 25.10)؛ ولم
يتم تفعيلها على (Debian trixie/stable، Ubuntu 24.04 LTS).يُرجى الرجوع إلى GHSA-mjgp-j4gm-6qg5 لقراءة التقرير الكامل.
https://github.com/user-attachments/assets/a3e76a3f-9be4-4a72-b5e7-3ae9bdcf3de7
nut-client 2.8.52.8.42.8.32.8.1