
آثار بيئة docker لـ CVE-2020-8036
هذا المستودع هو لقطة بيئة ثغرة قابلة لإعادة الإنتاج لـ CVE-2020-8036 (قراءة خارج الحدود في محلل SOME/IP الخاص بـ tcpdump، CWE-125)، مُصدَّرة من صورة الحاوية المقابلة yan5ui/cve-2020-8036:tier1 (المبنية على ubuntu:20.04).
أُنجزت في البيئة عملية بناء قابلة لإعادة الإنتاج على كود المصدر للنسخة المصابة بالثغرة، مع الاحتفاظ بمخرجات الترجمة وسكربتات البناء وسجل البناء الكامل، ويمكن استخدامها مباشرةً لإعادة إنتاج الثغرة والتحقق من الـ exploit.
| البند | القيمة |
|---|---|
| CVE | CVE-2020-8036 |
| المشروع | the-tcpdump-group/tcpdump |
| CWE | CWE-125 (قراءة خارج الحدود، Out-of-bounds Read) |
| الدالة المصابة | tok2strbuf() (يُستدعى بطريقة غير آمنة من قِبل مُحلّل SOME/IP) |
| الملف المصاب | print-someip.c |
| المستودع الأصلي | https://github.com/the-tcpdump-group/tcpdump |
تختار هذه البيئة أدوات الإحصاء (sanitizer) في زمن الترجمة وفقًا لتصنيف CWE للثغرة، بحيث يمكن التقاط سلوك الثغرة المُثار بشكل مستقر.
clang-10-O1 -g -fno-omit-frame-pointer -fsanitize=address,undefined-fsanitize=address,undefinedيتولّى AddressSanitizer الإبلاغ الفوري عن انتهاك الوصول إلى الذاكرة عند حدوث القراءة خارج الحدود، مع تقديم موقع الانهيار الدقيق ومكدس الاستدعاءات، بينما يغطي UndefinedBehaviorSanitizer السلوكيات غير المعرَّفة المرافقة، ويضمن كلاهما معًا أن تُنتج هذه القراءة خارج الحدود إشارة واضحة وقابلة للتحديد عند إثارتها. ناتج البناء compile/artifacts/tcpdump هو ملف tcpdump القابل للتنفيذ مع الإحصاء المذكور أعلاه.
.
├── README.md 本文件
├── description.md 漏洞描述、漏洞函数源码摘录与复现任务说明
├── meta.json 结构化元数据(项目、CWE、commit、源码路径等)
├── compile/ 构建产物与构建记录
│ ├── build.sh 可复现构建脚本(依赖安装 + configure + make + 收集产物)
│ ├── deps.txt 构建所需的 apt 依赖清单
│ ├── BUILD_OK 构建成功清单(构建系统、sanitizer、产物路径、二进制大小等)
│ ├── build.log 完整构建日志
│ ├── binary_size.txt 主二进制字节大小
│ └── artifacts/
│ ├── tcpdump 带 ASan+UBSan 编译的 tcpdump 可执行文件(主二进制)
│ └── main 指向 tcpdump 的符号链接(统一入口名)
├── src/
│ └── tcpdump/ 漏洞 commit 处的完整源码树,含就地编译的 .o 目标文件
├── task/ exploit agent harness 的运行时挂载目录(镜像内为空)
└── workspace/ exploit agent harness 的运行时工作目录(镜像内为空)
task/ و workspace/كلاهما دليلان تعمل بهما بيئة تنفيذ وكيل الاستغلال (exploit agent harness) أثناء تشغيل إعادة الإنتاج/الاستغلال: workspace/ هو مساحة العمل الافتراضية للوكيل، وtask/ يُستخدم لوضع مدخلات مهمة إعادة الإنتاج الواحدة. كلاهما فارغان في الصورة، ويتم ملؤهما بواسطة الـ harness وقت التشغيل أثناء إعادة الإنتاج؛ وهما دليلان قياسيان متفق عليهما في البيئة ولا يحتويان على مخرجات بناء.
البناء داخل الحاوية هو بناء داخل المصدر (in-source) (./configure && make، انظر compile/build.sh). يقع كود المصدر في /src/tcpdump/، والملف الثنائي الرئيسي هو compile/artifacts/tcpdump. بإنشاء مدخلات (حزم pcap) تُفعّل مسار تحليل SOME/IP وفقًا لتعليمات المهمة في description.md، يمكن ملاحظة تقرير الانهيار الناتج عن القراءة خارج الحدود تحت ASan.