needhelp
← Back to blog

ssh-keysign-pwn: قراءة ملفات مملوكة للجذر عبر خطأ منطق ptrace

by xingwangzhe
Linux
Kernel
Security
Qualys
ptrace
CVE

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 (العملية المستهدفة ليس لها واصف ذاكرة)، الدالة تتخطى فحص القابلية للتفريغ بالكامل.

  1. عملية تستدعي do_exit() للإنهاء
  2. do_exit() يشغل exit_mm() أولاً — هذا يزيل واصف الذاكرة
  3. ثم يشغل exit_files() — لكن واصفات الملفات لا تزال حية في هذه النقطة
  4. مع 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 يدمج الإصلاح

References

Share this page