
إعادة إنتاج معملي لـ CVE-2026-34040: يتجاوز المكونات الإضافية AuthZ الخاصة بـ Docker/Moby باستخدام هيئات طلب كبيرة الحجم (>1MB) لإنشاء حاويات مميزة مع وصول إلى المضيف.
KO: هذا مشروع إعادة إنتاج عملي لثغرة تتجاوز مكونات الإذن (AuthZ) الخاصة بـ Docker (Moby) باستخدام نص طلب يتجاوز 1 ميجابايت. EN: إعادة إنتاج معملي لثغرة تتجاوز مكونات الإذن (AuthZ) الخاصة بـ Docker (Moby) باستخدام نص طلب كبير (أكبر من 1 ميجابايت).
| العنصر | القيمة |
|---|---|
| CVE | CVE-2026-34040 |
| CVSS 3.1 | 8.8 (عالية) — CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| CWE | CWE-288 (تجاوز المصادقة باستخدام مسار أو قناة بديلة), CWE-863 (تفويض غير صحيح) |
| متأثر | moby/moby < 29.3.1, docker/docker < 29.3.1, moby/moby/v2 < 2.0.0-beta.8 |
| تم الإصلاح في | 29.3.1, 2.0.0-beta.8 |
| السبب الجذري | إصلاح غير مكتمل لـ CVE-2024-41110 |
| تعهد التصحيح | moby/moby@e89edb1 |
KO: متجه CVSS الرسمي هو
AV:L(محلي). بمعنى أن السيناريو المصنف هو مستخدم ذو صلاحيات منخفضة لديه وصول محلي لواجهة Docker API (عادة/var/run/docker.sock). يستخدم هذا الإثبات (PoC) مقبس يونكس المحلي فقط. EN: متجه CVSS الرسمي هوAV:L(محلي). السيناريو المصنف هو مستخدم ذو صلاحيات منخفضة لديه وصول محلي لواجهة Docker API (عادة/var/run/docker.sock). يستخدم هذا الإثبات (PoC) مقبس يونكس المحلي فقط.
KO:
- يمنع المكون الإضافي AuthZ إنشاء حاوية مميزة بحجم طلب عادي (HTTP 403).
- نفس الطلب مع حشو يتجاوز 1 ميجابايت يتجاوز فحص AuthZ.
- يصل الطلب المتجاوز إلى خادم Docker وينشئ حاوية مميزة.
- مع مزيج الامتياز + ربط المضيف، يمكن إظهار قراءة ملف المضيف وتنفيذ أمر المضيف.
EN:
- يتم حظر طلب إنشاء حاوية مميزة بحجم عادي بواسطة المكون الإضافي AuthZ (HTTP 403).
- نفس الطلب مع حشو يتجاوز 1 ميجابايت يتجاوز فحص AuthZ.
- يصل الطلب المتجاوز إلى خادم Docker وينشئ حاوية مميزة.
- باستخدام الامتياز + ربط المضيف، يمكن إظهار قراءة ملف المضيف وتنفيذ أمر المضيف.
KO: هذا CVE نفسه لا يقرأ
/etc/shadowأو ينفذ RCE مباشرة. جوهر الثغرة هو تجاوز طلب Docker API الذي يجب أن يحجبه AuthZ، والخطوات اللاحقة (قراءة الملف، chroot، تنفيذ الأمر) هي عروض توضيحية للتأثير تسيء استخدام الميزات العادية لـ Docker/Linux. EN: هذا CVE نفسه لا يقرأ/etc/shadowأو ينفذ RCE مباشرة. الثغرة هي تجاوز طلب Docker API الذي يجب أن يحجبه AuthZ؛ الخطوات اللاحقة (قراءة الملف، chroot، تنفيذ الأمر) هي عروض توضيحية للتأثير تسيء استخدام الميزات العادية لـ Docker/Linux.
.
├── README.md
├── poc.py # Working PoC (local UNIX socket only)
├── requirements.txt # Python standard library only
├── LICENSE
├── lab/
│ ├── authz.rego # OPA policy: blocks privileged + host-root bind
│ └── daemon.json # Registers the AuthZ plugin
└── docs/
├── concepts.md # 개념 / Concepts
├── lab-setup.md # 환경 구성 / Lab setup
├── how-it-works.md # 동작 원리 / How it works (source-level)
├── usage.md # 사용법 / Usage
├── troubleshooting.md # 문제 해결 / Troubleshooting
└── references.md # 참고 / References
KO: لكي يعمل هذا الإثبات (PoC) بشكل ذي معنى، يجب توفر جميع الشروط التالية. EN: جميع ما يلي مطلوب لكي يكون هذا الإثبات (PoC) ذا معنى.
# 1) Pull the image used by the PoC
sudo docker pull alpine
# 2) Run the non-destructive bypass check
sudo python3 poc.py --mode check
متوقع على هدف ضعيف / النتيجة المتوقعة على الهدف الضعيف:
small request -> HTTP 403 (AuthZ blocks)
oversized request -> HTTP 201 or HTTP 404 (AuthZ bypassed; daemon processed it)
KO:
404 No such imageهو أيضًا دليل على التجاوز - يعني أن الطلب تجاوز AuthZ (ليس 403) ووصل إلى مرحلة البحث عن الصورة في خادم Docker. في العروض التقديمية/التجارب، قم بسحبalpineمسبقًا لتجنب الارتباك. EN: رسالة404 No such imageلا تزال دليلاً على التجاوز - الطلب تجاوز AuthZ (ليس 403) ووصل إلى مرحلة البحث عن الصورة في الخادم. قم بسحبalpineمسبقًا لتجنب الارتباك في العرض.
الاستخدام الكامل في docs/usage.md. / راجع docs/usage.md للاستخدام الكامل.
KO: استخدم فقط في مختبر معزول تملكه أو مفوض صراحة باختباره. لا تقم بتشغيله ضد واجهات Docker API عن بعد، أو خوادم طرف ثالث، أو بيئة إنتاج، أو نقاط نهاية Docker مكشوفة على الإنترنت. تتطلب أوضاع العرض التوضيحي (
rce-proof,host-command,reverse-shell-local) علامة تأكيد صريحة. EN: استخدم فقط في مختبر معزول تملكه أو مفوض صراحة باختباره. لا تقم بتشغيله ضد واجهات Docker API عن بعد، أو خوادم طرف ثالث، أو بيئة إنتاج، أو نقاط نهاية Docker مكشوفة على الإنترنت. تتطلب أوضاع العرض التوضيحي (rce-proof,host-command,reverse-shell-local) علامة تأكيد صريحة.
انظر docs/references.md. / docs/references.md المرجع.
| الشرط | مطلوب | السبب |
|---|
الوصول المحلي لواجهة Docker API (/var/run/docker.sock) | نعم | يرسل الإثبات (PoC) الطلبات إلى المقبس |
| تمكين المكون الإضافي AuthZ بسياسة تفحص النص | نعم | الهدف من التجاوز هو فحص AuthZ |
| Docker/Moby < 29.3.1 | نعم | الإصدارات المصححة ترفض النصوص الكبيرة |
الصورة alpine موجودة محليًا | موصى به | وإلا ستعيد عملية الإنشاء 404 No such image |