تحليل متعمق لثغرة Use-After-Free (CVE-2025-21082) في إطار عمل AVCodec Medya Framework في Xiaomi HyperOS، ومحاكاة بلغة Rust ولوحة ويب تفاعلية.
تحليل شامل ومحاكاة بـ Rust لثغرة Use-After-Free في إطار عمل AVCodec من Xiaomi HyperOS
واجب نهائي جامعي — مشروع بحث في الأمن السيبراني
🌐 جرب المحاكاة الحية في المتصفح
يحتوي هذا المستودع على تحليل فني متعمق لثغرة Use-After-Free (UAF) الحرجة CVE-2025-21082 التي تم اكتشافها في إطار عمل معالجة الوسائط HyperOS AVCodec من Xiaomi، بالإضافة إلى محاكاة آلية الهجوم وحلول مقترحة.
السبب الأساسي للثغرة هو تحرير سياق الترميز (codec context) في آلية الاتصال غير المتزامن (callback) لـ AVCodec بينما لا تزال خيوط العمل (worker threads) قيد التشغيل. يؤدي هذا إلى حالة سباق (race condition) كلاسيكية من نوع Use-After-Free، مما يوفر نظريًا إمكانية تنفيذ كود عن بُعد (RCE).
يتضمن المشروع: محاكاة آمنة لـ UAF مكتوبة بلغة Rust، توثيقًا فنيًا شاملاً، أتمتة خط أنابيب CI عبر GitHub Actions، وتصورًا تفاعليًا قائمًا على المتصفح.
HyperOS-Directory-Traversal-Analysis/
│
├── 📁 .github/ # قوالب المجتمع وسير العمل CI/CD
│ ├── 📁 ISSUE_TEMPLATE/ # قوالب طلبات الأخطاء والميزات
│ │ ├── 📄 config.yml # تكوين قالب issue وروابط
│ │ ├── 📄 hata-raporu.yml # نموذج تقرير خطأ (YAML Forms)
│ │ └── 📄 ozellik-istegi.yml # نموذج طلب ميزة (YAML Forms)
│ ├── 📁 workflows/
│ │ ├── 📄 rust.yml # Rust CI — بناء، اختبار، وتفحص lint
│ │ ├── 📄 pages.yml # نشر تلقائي لـ GitHub Pages
│ │ ├── 📄 security.yml # فحص أمني (cargo-audit, CodeQL)
│ │ └── 📄 docs.yml # فحص lint للتوثيق والتحقق من الروابط
│ ├── 📄 dependabot.yml # تحديث تلقائي للتبعيات
│ ├── 📄 FUNDING.yml # تكوين GitHub Sponsors
│ ├── 📄 mlc_config.json # إعدادات فاحص روابط Markdown
│ ├── 📄 PULL_REQUEST_TEMPLATE.md
│ └── 📄 SECURITY.md # سياسة الأمان
│
├── 📁 assets/ # ملفات الشعار والصور
│ └── 🖼️ isu-logo.png # شعار جامعة إستينيا
│
├── 📁 docs/ # التوثيق الفني
│ ├── 📄 zafiyet-analizi.md # تحليل الثغرة ودرجة CVSS
│ ├── 📄 mimari-analiz.md # رسم تخطيطي لمعمارية HyperOS AVCodec
│ ├── 📄 cozum-onerileri.md # حلول مقترحة وتصحيحات C++
│ └── 📄 README.md # فهرس دليل التوثيق
│
├── 📁 research_results/ # نتائج البحث للواجب
│ ├── 📄 Cevaplarım.md # إجابات 10 أسئلة متقدمة
│ ├── 📄 SORULAR.md # أسئلة الواجب
│ ├── 📄 yorum.md # تحليل وتعليق شخصي
│ ├── 📄 simple.md # شروحات بسيطة (50 خطوة)
│ ├── 🌐 infographic.html # دليل مرئي للثغرة
│ └── 📄 README.md # فهرس نتائج البحث
│
├── 📁 poc_python/ # أدوات تحليل Python (مرجع)
│ ├── 📄 exploit.py # إثبات المفهوم CVE-2025-2844 Directory Traversal
│ └── 📄 requirements.txt
│
├── 📁 poc_rust/ # محاكاة UAF بلغة Rust (الإثبات الرئيسي)
│ ├── 📁 src/
│ │ └── 📄 main.rs # منطق محاكاة UAF باستخدام Rust غير الآمن
│ └── 📄 Cargo.toml
│
├── 🌐 simulation.html # لوحة محاكاة ويب تفاعلية (5 مشاهد)
├── 📄 README.md # هذا الملف
├── 📄 CODE_OF_CONDUCT.md # مدونة قواعد السلوك
├── 📄 CONTRIBUTING.md # دليل المساهمة
├── 📄 TODO.md # قائمة المهام
└── ⚖️ LICENSE # رخصة MIT
| الخاصية | التفاصيل |
|---|---|
| رقم CVE | CVE-2025-21082 |
| نوع الثغرة | Use-After-Free (CWE-416) |
| المكون المتأثر | إطار عمل Xiaomi HyperOS AVCodec |
| درجة CVSS v3.1 | 8.1 (عالي) |
| ناقل الهجوم | شبكة (Network) |
| الأثر | احتمالية تنفيذ كود عن بعد (RCE) |
| تاريخ الاكتشاف | 10 فبراير 2025 |
| تاريخ التصحيح | 20 فبراير 2025 |
[الخيط الرئيسي] processFrameAsync() → بدء خيط العامل
↓
استدعاء release() → تحرير الذاكرة ⚠️
↓
[خيط العامل] يستمر في الوصول إلى الذاكرة المحررة → UAF 💥
يمكنك مشاهدة تسجيل الشاشة الذي يوضح بناء المشروع وتشغيله ومخرجات محاكاة Use-After-Free أدناه:
# استنساخ المشروع
git clone https://github.com/kkaanozturk/HyperOS-Directory-Traversal-Analysis.git
cd HyperOS-Directory-Traversal-Analysis/poc_rust
# بناء في وضع الإصدار
cargo build --release
# Windows
.\target\release\cve_2025_21082_uaf_poc.exe --mode vulnerable --verbose
# Linux / macOS
./target/release/cve_2025_21082_uaf_poc --mode vulnerable --verbose
المخرجات المتوقعة:
🔬 CVE-2025-21082: HyperOS AVCodec UAF PoC
Mode: vulnerable
⚠️ Running vulnerable scenario...
CodecContext allocated in Arc<Mutex<T>>
🧵 Starting worker thread...
🗑️ Main thread releasing codec context (UAF trigger)...
Memory corrupted to simulate UAF
🔄 Worker thread accessing codec context...
🚨 UAF detected! Magic number corrupted: 0xFEEDFACE
💥 UAF vulnerability triggered on frame 0!
🚨 Vulnerable scenario completed - UAF demonstrated!
⚠️ In a real exploit, this could lead to RCE
# Windows
.\target\release\cve_2025_21082_uaf_poc.exe --mode patched --verbose
# Linux / macOS
./target/release/cve_2025_21082_uaf_poc --mode patched --verbose
المخرجات المتوقعة:
🔬 CVE-2025-21082: HyperOS AVCodec UAF PoC
Mode: patched
✅ Running patched scenario...
CodecContext allocated safely in Arc<Mutex<T>>
🧵 Starting worker thread...
⏳ Waiting for worker thread to complete (patch applied)...
🔄 Worker thread processing frames safely...
✅ Frame 0 processed successfully
✅ Frame 1 processed successfully
✅ Frame 2 processed successfully
✅ Frame 3 processed successfully
✅ Frame 4 processed successfully
✅ Worker thread completed safely
🗑️ Safely releasing codec context...
✅ Patched scenario completed - No UAF occurred!
🛡️ Proper synchronization prevents the vulnerability
إذا كنت لا تريد عناء إعداد خادم محلي، يمكنك النقر مباشرة على رابط GitHub Pages معاينة حية لتجربة المحاكاة في متصفحك.
إذا كنت ترغب في تشغيلها محليًا: