Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ENV-CVE-2021-3975 — أثر بيئة دوكر لـ CVE-2021-3975 | Kitploit
أدوات/GitHubGitHub/yan5ui/env-cve-2021-3975
أمن الحاوياتتحليل الثغرات الأمنيةالاستغلالالتعلم والتعليماستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubyan5ui/env-cve-2021-3975

ENV-CVE-2021-3975

أثر بيئة دوكر لـ CVE-2021-3975

عرض المستودع
3منذ 2 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ENV-CVE-2021-3975 — بيئة إعادة إنتاج ثغرة libvirt

هذا المستودع هو لقطة لبيئة إعادة إنتاج الثغرة CVE-2021-3975 (libvirt qemuProcessHandleMonitorEOF use-after-free، CWE-416) المستخرجة من صورة الحاوية المقابلة yan5ui/cve-2021-3975:tier1 (المبنية على ubuntu:20.04).

تم إجراء بناء قابل لإعادة الإنتاج على كود المصدر للإصدار المخترق، مع الاحتفاظ بالمخرجات المترجمة وبرامج البناء وسجل البناء الكامل، ويمكن استخدامه مباشرة لإعادة إنتاج الثغرة والتحقق من الاستغلال.

معلومات الثغرة

العنصرالقيمة
CVECVE-2021-3975
المشروعlibvirt (سلسلة 7.1.0)
CWECWE-416 (استخدام بعد التحرير، Use-After-Free)
دالة الثغرةqemuProcessHandleMonitorEOF() (تستدعي qemuMonitorUnregister())
المستودع الرئيسيhttps://github.com/libvirt/libvirt

شروط التشغيل: يتم استدعاء qemuMonitorUnregister() في qemuProcessHandleMonitorEOF بواسطة خيوط متعددة دون حماية كافية بقفل المراقب (monitor lock)؛ أثناء إيقاف تشغيل الضيف، يمكن تشغيل UAF عبر واجهة برمجة التطبيقات virConnectGetAllDomainStats، مما يتسبب في تعطل عملية libvirt الخلفية.

توافق Sanitizer مع نوع الثغرة

تختار هذه البيئة استراتيجية إدراج الكود (instrumentation) في وقت الترجمة وفقًا لفئة CWE للثغرة.

  • CWE-416 (استخدام بعد التحرير) → تستخدم هذه الصورة بناء debug عادي
  • المترجم: clang
  • خيارات الترجمة: -O1 -g -fno-omit-frame-pointer

شرح: عادةً ما تُستخدم أدوات ASan+UBSan مع الثغرات من نوع UAF. على النظام الأساسي المستهدف ubuntu:20.04، لا تستطيع سلسلة الأدوات المزودة مع النظام (meson 0.53.2 + clang-10 + ld.bfd) تمرير -fsanitize=address,undefined بالكامل إلى خطوة ربط libvirt.so.0 (تظهر مراجع كثيرة لرموز غير معرفة __asan_* / __ubsan_*). لذلك تستخدم هذه الصورة بناء debug عادي مع رموز تصحيح (-O1، الاحتفاظ بمؤشر الإطار). يعيد هذا البناء إنتاج مسار كود الثغرة بالكامل، ويمكن تحديد نقطة الاستخدام بعد التحرير عند التعطل تحت المصحح. تم تسجيل هذا القرار وسببه في حقل sanitizer_downgrade_reason في compile/BUILD_OK.

نتائج البناء هي عملية libvirt الخلفية الكاملة ومجموعة الأدوات، والملف الثنائي الرئيسي هو compile/artifacts/libvirtd (يشير compile/artifacts/main إليه).

هيكل الدليل

root@kitploit:~
.
├── README.md            本文件
├── description.md       漏洞描述、漏洞函数源码摘录与复现任务说明
├── meta.json            结构化元数据(项目、CWE、commit、源码路径等)
├── compile/             构建产物与构建记录
│   ├── build.sh         可复现构建脚本(依赖安装 + meson setup + ninja + 收集产物)
│   ├── deps.txt         构建所需的 apt 依赖清单
│   ├── BUILD_OK         构建成功清单(构建系统、sanitizer 与降级原因、产物路径等)
│   ├── build.log        完整构建日志
│   └── artifacts/       编译产物
│       ├── libvirtd     守护进程主二进制(漏洞函数所在进程)
│       ├── main         指向 libvirtd 的符号链接(统一入口名)
│       ├── virsh / virtqemud / virtlogd / ...   其余守护进程与命令行工具
│       ├── libvirt.so.0.7001.0                   libvirt 核心共享库
│       └── libvirt_driver_qemu.so 等            各 driver / storage backend 共享库
├── src/
│   └── libvirt/         漏洞 commit 处的完整源码树
│       └── build/       meson/ninja 的 out-of-source 构建目录(编译产物原位置)
├── task/                exploit agent harness 的运行时挂载目录(镜像内为空)
└── workspace/           exploit agent harness 的运行时工作目录(镜像内为空)

حول task/ و workspace/

كلاهما دليلان يستخدمهما harness وكيل الاستغلال أثناء تشغيل إعادة الإنتاج/الاستغلال: workspace/ هو مساحة العمل الافتراضية للوكيل، وtask/ يستخدم لوضع مدخلات مهمة إعادة الإنتاج الفردية. كلاهما فارغ في الصورة، ويتم ملؤهما بواسطة harness أثناء التشغيل، وهما دليلان قياسيان في البيئة ولا يحتويان على ناتج البناء.

طريقة إعادة الإنتاج

البناء داخل الحاوية هو بناء خارج المصدر (out-of-source) باستخدام meson + ninja (انظر compile/build.sh)، ودليل البناء هو /src/libvirt/build/. الملف الثنائي الرئيسي هو compile/artifacts/libvirtd. وفقًا لتعليمات المهمة في description.md، قم باستدعاء virConnectGetAllDomainStats بشكل متزامن أثناء إيقاف تشغيل الضيف، مما يؤدي إلى تشغيل الاستخدام بعد التحرير في qemuProcessHandleMonitorEOF، ويتسبب في تعطل العملية الخلفية للتحقق من الثغرة.

تنزيل الأداة