
استخدم CVE-2026-46333 و CVE-2026-31431 لتغيير كلمة مرور أي مستخدم.
[!WARNING] استخدم هذه الأداة فقط على الأنظمة التي تملكها أو لديك إذن باختبارها. يُوصى بالاحتفاظ بجلسة شل صلبة (root) مفتوحة إذا لم تكن قادرًا على إعادة تشغيل النظام في حالة الفشل، فقد لا تتمكن من مسح ذاكرة التخزين المؤقت للصفحات الخاصة بـ
/etc/shadowبدون صلاحيات الجذر.
استخدم CVE-2026-46333 و CVE-2026-31431 لتغيير كلمة مرور أي مستخدم دون الحاجة إلى رفع الصلاحيات إلى الجذر.
python passwd.py <username>
يمكنك أيضًا تشغيل الأمر بدون وسائط لرؤية التجزئات (hashes) الموجودة حاليًا في ملف الظل (shadow file).
يتيح CopyFail (CVE-2026-31431) والثغرات المماثلة كتابة 4 بايتات إلى أي ملف في نظام التشغيل يمكنك قراءته. هذا يعني عمومًا أنك لا تستطيع تعديل الملفات التي لا يمكنك قراءتها، مثل قواعد PAM أو ملف الظل. يمكنك استخدام CopyFail لرفع الصلاحيات إلى الجذر وتغيير أي ملف تريده بعد ذلك (هناك الكثير من أدلة الإثبات (PoCs) لهذا بما في ذلك أداتي الخاصة RootRemover)، لكن ماذا لو أردنا تعديل ملفات أخرى دون رفع الصلاحيات؟
يحتاج CopyFail فقط إلى واصف ملف (file descriptor) ليعمل. معظم أدلة الإثبات تفتح ملفًا وتستخدم هذا الواصف، لكن يمكننا الحصول عليه من أي مكان آخر. هنا تأتي CVE-2026-46333.
CVE-2026-46333 قادرة على سرقة واصف ملف للملفات القابلة للقراءة من قبل الجذر من chage أو ssh-keysign. نظرًا لأننا نريد /etc/shadow لتعديل كلمات المرور، فإننا نركز على chage. يتم استخدام pidfd_getfd لسرقة واصف الملف الخاص بـ /etc/shadow لأنه توجد نقطة أثناء تنفيذه يتم فيها تعيين معرف المستخدم (UID) إلى المستخدم الذي قام بتنفيذه (مما يسمح بـ pidfd_getfd)، ولكن نظرًا لوجود بت SUID، فقد تمكن من فتح /etc/shadow كجذر قبل خفض مستوى الصلاحيات إلى مستخدمنا.
هذا الواصف موجود في وضع O_RDONLY، أي للقراءة فقط، لكن نظرًا لأن لدينا CopyFail فهذا لا يهم، يمكننا رفع الصلاحيات إلى الكتابة. يمكننا ببساطة تمرير الواصف إلى CopyFail واستخدام الثغرة مثل أي ملف آخر قابل للقراءة.
/etc/shadow.passwd.passwd بمجرد أن يكون لديك كلمة مرور معروفة يحل هذه المشكلة.