
# ثغرة رفع الامتيازات المحلية في لينكس عبر snap-confine + systemd-tmpfiles، مشروحة بالتفصيل
إخلاء مسؤولية: هذا المستودع لأغراض تعليمية فقط. جميع المحتويات مبنية على النشرة الأمنية الأصلية التي نشرتها Qualys في 17 مارس 2026. تم إصلاح الثغرة - تأكد دائمًا من تحديث أنظمتك. لا تستخدم هذه المواد ضد أنظمة لا تملكها أو ليس لديك إذن كتابي صريح لاختبارها.
CVE-2026-3888 هي ثغرة تصعيد امتيازات محلي (LPE) تؤثر على التثبيت الافتراضي لنظام Ubuntu Desktop >= 24.04. تم اكتشافها والإفصاح عنها علنًا بواسطة Qualys في مارس 2026.
ما يجعل هذه الثغرة مثيرة للاهتمام بشكل خاص - كما أشارت Qualys نفسها - هو أنها لا تنبع من مكوّن واحد معطوب. بدلاً من ذلك، تنشأ من التفاعل بين برنامجين آمنين بشكل فردي:
| المكوّن | الدور |
|---|---|
snap-confine | ثنائي SUID-root يبني مساحة أسماء التركيب (sandbox) لتطبيقات snap |
systemd-tmpfiles | خدمة تابعة للجذر تقوم بتنظيف الملفات القديمة في /tmp بشكل دوري |
لا يوجد أي من البرنامجين معطوب بمفرده. معًا، يخلقان نافذة قابلة للاستغلال.
النشرة الأصلية: https://cdn2.qualys.com/advisory/2026/03/17/snap-confine-systemd-tmpfiles.txt
الفضل: فريق أبحاث الأمن في Qualys
cve-2026-3888/
├── README.md ← أنت هنا
├── analysis/
│ ├── 01-vulnerability.md ← الغوص العميق في الثغرة
│ ├── 02-race-condition.md ← كيف تعمل سباق TOCTOU
│ ├── 03-backpressure-technique.md ← خدعة الضغط الخلفي AF/UNIX
│ ├── 04-exploitation-steps.md ← شرح كامل خطوة بخطوة
│ └── 05-mitigations.md ← ما تم إصلاحه وكيف
└── src/
├── firefox_2404.c ← مساعد السباق (مشروح)
└── librootshell.c ← شيلكود محمل الديناميكي (مشروح)
| إصدار Ubuntu | عمر التنظيف | وقت الانتظار (فعلي) |
|---|---|---|
| 24.04 LTS | 30 يومًا | 30 يومًا |
| > 24.04 | 10 أيام | 10 أيام |
تم الإصلاح في: snapd 2.74.2
/tmp/.snap كـ root:root 0755/tmp بكتابات دورية، لكن اترك /tmp/.snap قديمًاsystemd-tmpfiles بحذف /tmp/.snap القديم - وبما أن /tmp قابل للكتابة عالميًا، يعيد المهاجم إنشاء .snap ويمتلكهsnap-confine خطوة بخطوةsnap-confine بتركيب مكتبات يملكها المهاجم كجذر داخل مساحة الأسماءld-linux-x86-64.so.2 بشيلكود - أي ثنائي SUID يتم تنفيذه في مساحة الأسماء هذه يشغّل كودنا كجذر/var/snap/firefox/common/ للحصول على شل بصلاحيات كاملة