ssh-keysign-pwn: قراءة ملفات مملوكة للجذر عبر خطأ منطق ptrace
ssh-keysign-pwn: خطأ منطقي عمره ست سنوات في دالة
__ptrace_may_access()في النواة، أبلغت عنه Qualys وصححه Linus Torvalds في 14 مايو 2026. المستخدمون غير المميزين يمكنهم قراءة ملفات مملوكة للجذر تشمل مفاتيح SSH الخاصة و/etc/shadow.
واحدة أخرى
مايو 2026 لم يكن لطيفاً مع نواة لينكس. Dirty Frag، Fragnesia، والآن — ssh-keysign-pwn — كشفت عنه Qualys في 14 مايو وأصلحه Linus Torvalds في نفس اليوم.
هذه مختلفة عن عائلة “انسخ شيئاً إلى ذاكرة التخزين المؤقت للصفحة.” إنها خطأ منطقي خالص في __ptrace_may_access().
| المقياس | القيمة |
|---|---|
| أبلغت عنه | Qualys Security Advisory |
| أصلحه | Linus Torvalds |
| Commit الإصلاح | 31e62c2ebbfd |
| بقي لـ | ~6 سنوات |
| التأثير | قراءة ملفات مملوكة للجذر كمستخدم غير مميز |
كيف يعمل
الخطأ يعيش في __ptrace_may_access(). هذه الدالة هي الحارس للفحص البيني للعمليات.
هناك حالة خاصة: عندما يكون task->mm == NULL (العملية المستهدفة ليس لها واصف ذاكرة)، الدالة تتخطى فحص القابلية للتفريغ بالكامل.
- عملية تستدعي
do_exit()للإنهاء do_exit()يشغلexit_mm()أولاً — هذا يزيل واصف الذاكرة- ثم يشغل
exit_files()— لكن واصفات الملفات لا تزال حية في هذه النقطة - مع
task->mm == NULLلكن واصفات الملفات لا تزال مفتوحة،pidfd_getfd(2)يمكنه سرقة تلك الواصفات
الأهداف
sshkeysign_pwn — يستهدف ssh-keysign، ملف ثنائي مساعد يوقع تحديات مصادقة المضيف.
chage_pwn — يستهدف chage -l <user>، الذي يفتح /etc/shadow.
التوقيت
| التاريخ | الحدث |
|---|---|
| ~2020 | Jann Horn يحدد نمط سرقة الواصفات ويقترح تصحيحاً (لم يُدمج) |
| 2026-05-14 | Qualys تبلغ عن الثغرة؛ Linus Torvalds يدمج الإصلاح |