kkaanozturk/HyperOS-Directory-Traversal-Analysis

GitHub: kkaanozturk/HyperOS-Directory-Traversal-Analysis

Stars: 1 | Forks: 0

İstinye Üniversitesi # 🔬 CVE-2025-21082: HyperOS AVCodec Use-After-Free [![Lisans: MIT](https://img.shields.io/badge/Lisans-MIT-green.svg?style=for-the-badge)](LICENSE) [![Python](https://img.shields.io/badge/Python-3.8%2B-3776AB?style=for-the-badge&logo=python&logoColor=white)](https://python.org) [![Rust](https://img.shields.io/badge/Rust-1.70%2B-CE422B?style=for-the-badge&logo=rust&logoColor=white)](https://rust-lang.org) [![CVE](https://img.shields.io/badge/CVE-2025--21082-red?style=for-the-badge&logo=security&logoColor=white)](https://cve.mitre.org) [![CVSS](https://img.shields.io/badge/CVSS-8.1%20High-orange?style=for-the-badge)](https://nvd.nist.gov) ![Rust CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b6974fca25173621.svg) ![Security Scan](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/81dc2604a9173627.svg) **Xiaomi HyperOS AVCodec Medya Framework'ündeki Use-After-Free Zafiyetinin Kapsamlı Analizi ve Rust ile Simülasyonu** *Üniversite Final Ödevi — Siber Güvenlik Araştırma Projesi* 🌐 **[Canlı Simülasyonu Tarayıcıda Deneyimleyin](https://kkaanozturk.github.io/HyperOS-Directory-Traversal-Analysis/simulation.html)**
## 📖 Proje Hakkında Bu repository, Xiaomi **HyperOS AVCodec** medya işleme framework'ünde tespit edilen kritik bir **Use-After-Free (UAF)** zafiyeti olan **CVE-2025-21082**'nin derinlemesine teknik analizini, saldırı mekanizmasının simülasyonunu ve çözüm önerilerini içermektedir. Zafiyetin temel sebebi, AVCodec'in asenkron callback mekanizmasında codec context'inin, worker thread'ler hâlâ çalışırken serbest bırakılmasıdır. Bu durum klasik bir **Use-After-Free race condition**'a yol açmakta ve teorik olarak **Uzaktan Kod Çalıştırma (RCE)** imkânı sunmaktadır. Proje; Rust ile yazılmış güvenli bir UAF simülasyonu, kapsamlı teknik dokümantasyon, GitHub Actions CI boru hattı otomasyonu ve tarayıcı tabanlı interaktif bir görselleştirme içermektedir. ## 📂 Depo Yapısı HyperOS-Directory-Traversal-Analysis/ │ ├── 📁 .github/ # GitHub topluluk ve CI/CD iş akışları │ ├── 📁 ISSUE_TEMPLATE/ # Hata ve özellik talep şablonları │ │ ├── 📄 config.yml # Issue şablon yapılandırması ve bağlantılar │ │ ├── 📄 hata-raporu.yml # Hata raporu formu (YAML Forms) │ │ └── 📄 ozellik-istegi.yml # Özellik isteği formu (YAML Forms) │ ├── 📁 workflows/ │ │ ├── 📄 rust.yml # Rust CI — Derleme, test ve lint pipeline │ │ ├── 📄 pages.yml # GitHub Pages otomatik yayınlama │ │ ├── 📄 security.yml # Güvenlik taraması (cargo-audit, CodeQL) │ │ └── 📄 docs.yml # Dokümantasyon lint ve bağlantı kontrolü │ ├── 📄 dependabot.yml # Otomatik bağımlılık güncelleme │ ├── 📄 FUNDING.yml # GitHub Sponsors yapılandırması │ ├── 📄 mlc_config.json # Markdown link checker ayarları │ ├── 📄 PULL_REQUEST_TEMPLATE.md │ └── 📄 SECURITY.md # Güvenlik politikası │ ├── 📁 assets/ # Logo ve görsel dosyalar │ └── 🖼️ isu-logo.png # İstinye Üniversitesi logosu │ │ ├── 📁 docs/ # Teknik dokümantasyon │ ├── 📄 zafiyet-analizi.md # Zafiyet analizi ve CVSS skorlaması │ ├── 📄 mimari-analiz.md # HyperOS AVCodec mimari şeması │ ├── 📄 cozum-onerileri.md # Çözüm önerileri ve C++ yamaları │ └── 📄 README.md # Dokümantasyon rehber indeksi │ ├── 📁 research_results/ # Ödev araştırma sonuçları │ ├── 📄 Cevaplarım.md # 10 ileri düzey sorunun cevapları │ ├── 📄 SORULAR.md # Ödev soruları │ ├── 📄 yorum.md # Kişisel analiz ve yorum │ ├── 📄 simple.md # Basit açıklamalar (50 adım) │ ├── 🌐 infographic.html # Görsel zafiyet rehberi │ └── 📄 README.md # Araştırma sonuçları indeksi │ ├── 📁 poc_python/ # Python analiz araçları (Referans) │ ├── 📄 exploit.py # CVE-2025-2844 Directory Traversal PoC │ └── 📄 requirements.txt │ ├── 📁 poc_rust/ # Rust UAF simülasyonu (Ana PoC) │ ├── 📁 src/ │ │ └── 📄 main.rs # Unsafe Rust ile UAF simülasyon mantığı │ └── 📄 Cargo.toml │ ├── 🌐 simulation.html # İnteraktif web simülasyon paneli (5 sahne) ├── 📄 README.md # Bu dosya ├── 📄 CODE_OF_CONDUCT.md # Topluluk davranış kuralları ├── 📄 CONTRIBUTING.md # Katkıda bulunma rehberi ├── � TODO.md # Görev takip listesi └── ⚖️ LICENSE # MIT Lisansı ## 🧠 Zafiyet Özeti | Özellik | Detay | | :--- | :--- | | **CVE Numarası** | CVE-2025-21082 | | **Zafiyet Türü** | Use-After-Free (CWE-416) | | **Etkilenen Bileşen** | Xiaomi HyperOS AVCodec Framework | | **CVSS v3.1 Skoru** | **8.1 (High)** | | **Saldırı Vektörü** | Ağ (Network) | | **Etki** | Uzaktan Kod Çalıştırma (RCE) potansiyeli | | **Keşif Tarihi** | 10 Şubat 2025 | | **Yama Tarihi** | 20 Şubat 2025 | ### Zafiyetin Özü [Ana Thread] processFrameAsync() → Worker thread başlatılır ↓ release() çağrılır → Bellek SERBEST BIRAKILIR ⚠️ ↓ [Worker Thread] Serbest bırakılan belleğe erişmeye devam eder → UAF 💥 ## 🎬 Demo Projenin derlenmesini, çalıştırılmasını ve Use-After-Free simülasyon çıktısını gösteren ekran kaydını aşağıdan izleyebilirsiniz:
## 🚀 Hızlı Başlangıç ### Gereksinimler - **Rust** 1.70 veya üzeri → [rustup.rs](https://rustup.rs/) - **Python** 3.8 veya üzeri - Modern bir web tarayıcısı (Chrome, Firefox, Edge) ### 1. Rust PoC — UAF Simülasyonu # Projeyi klonlayın git clone https://github.com/kkaanozturk/HyperOS-Directory-Traversal-Analysis.git cd HyperOS-Directory-Traversal-Analysis/poc_rust # Release modunda derleyin cargo build --release #### 🔴 Zafiyetli Senaryo (Race Condition & UAF Gösterimi) # Windows .\target\release\cve_2025_21082_uaf_poc.exe --mode vulnerable --verbose # Linux / macOS ./target/release/cve_2025_21082_uaf_poc --mode vulnerable --verbose **Beklenen Çıktı:** 🔬 CVE-2025-21082: HyperOS AVCodec UAF PoC Mode: vulnerable ⚠️ Running vulnerable scenario... CodecContext allocated in Arc> 🧵 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 #### 🟢 Yamalanmış Senaryo (Güvenli Senkronizasyon) # Windows .\target\release\cve_2025_21082_uaf_poc.exe --mode patched --verbose # Linux / macOS ./target/release/cve_2025_21082_uaf_poc --mode patched --verbose **Beklenen Çıktı:** 🔬 CVE-2025-21082: HyperOS AVCodec UAF PoC Mode: patched ✅ Running patched scenario... CodecContext allocated safely in Arc> 🧵 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 ### 2. İnteraktif Web Simülasyonu Yerel sunucu kurmakla uğraşmak istemiyorsanız doğrudan **[GitHub Pages Canlı Önizleme](https://kkaanozturk.github.io/HyperOS-Directory-Traversal-Analysis/simulation.html)** linkine tıklayarak simülasyonu tarayıcınızda deneyimleyebilirsiniz. Yerel olarak çalıştırmak isterseniz: # Proje kök dizininde py -m http.server 8000 # Tarayıcınızda açın: http://localhost:8000/simulation.html Simülasyon **5 sahne** içermektedir: 1. 🧪 **Lab Ortamı** — AVCodec pipeline tanıtımı 2. 🏗️ **Context Oluşturma** — Heap bellek düzeni 3. ⚡ **Race Condition** — Zaman çizelgesi ve zafiyet penceresi 4. 💥 **UAF Sömürüsü** — Heap reclamation ve dangling pointer 5. 🛡️ **Patch Karşılaştırması** — Zafiyetli vs. yamalı kod ### 3. Python Analiz Araçları (Eski PoC — Referans Amaçlı) cd poc_python py -m pip install -r requirements.txt py exploit.py -u http://hedef:5000 -f etc/shadow ## 📚 Teknik Dokümantasyon | Doküman | İçerik | | :--- | :--- | | 📊 [Zafiyet Analizi](docs/zafiyet-analizi.md) | CVE-2025-21082 teknik analizi, CVSS skorlaması, saldırı senaryoları, HyperOS vs AOSP karşılaştırması | | 🏗️ [Mimari Şeması](docs/mimari-analiz.md) | AVCodec async pipeline, bileşen diyagramları, race condition akış şeması | | 🛡️ [Çözüm Önerileri](docs/cozum-onerileri.md) | Zafiyetli/yamalı C++ kod örnekleri, RAII pattern, MTE, CFI, ASan entegrasyonu | | 📋 [Araştırma Sonuçları](research_results/README.md) | Ödev soruları, 10 ileri düzey sorunun cevapları, kişisel analiz ve görsel rehber | ## 🔬 Teknik Detaylar ### Zafiyetli Kod Paterni (C++) class AVCodecContext { void processFrameAsync() { worker_thread_ = std::thread([this]() { buffer_->processFrame(); // Worker thread çalışıyor }); // ❌ join() yok — race condition! } void release() { delete buffer_; // ❌ Worker hâlâ çalışırken bellek serbest bırakılıyor buffer_ = nullptr; } }; ### Yamalı Kod Paterni (C++) class AVCodecContext { void release() { shutdown_requested_ = true; worker_cv_.notify_all(); if (worker_thread_.joinable()) { worker_thread_.join(); // ✅ Thread tamamlanana kadar bekle } delete buffer_; // ✅ Güvenli temizlik } }; ### Rust Simülasyonu — UAF Tespiti unsafe fn process_frame(&mut self) -> bool { // Magic number bozulduysa UAF gerçekleşmiş demektir if self.magic != 0xDEADBEEF { println!("🚨 UAF tespit edildi! Magic: 0x{:08X}", self.magic); return false; } self.frame_counter += 1; true } ## 🛡️ Savunma Stratejileri | Yöntem | Açıklama | Etkinlik | | :--- | :--- | :---: | | **Thread Senkronizasyonu** | `join()` ile thread tamamlanana kadar bekleme | ⭐⭐⭐⭐⭐ | | **Referans Sayımı** | `shared_ptr` ile otomatik yaşam süresi yönetimi | ⭐⭐⭐⭐⭐ | | **RAII Pattern** | Destructor ile otomatik kaynak temizliği | ⭐⭐⭐⭐ | | **AddressSanitizer** | Derleme zamanı UAF tespiti | ⭐⭐⭐⭐ | | **MTE (ARM64)** | Donanım seviyesi bellek etiketleme | ⭐⭐⭐⭐⭐ | | **CFI** | Kontrol akışı bütünlüğü koruması | ⭐⭐⭐ | ## ⚠️ Yasal Uyarı ## 📄 Lisans Bu proje **MIT Lisansı** ile lisanslanmıştır. Detaylar için [LICENSE](LICENSE) dosyasına bakınız.
*Eğitim amaçlı hazırlanmıştır* ## 👤 Geliştirici Proje Künyesi | | | | :--- | :--- | | 👤 **Adı Soyadı** | Mevlit Kaan Öztürk | | 🔢 **Öğrenci Numarası** | 2520191003 | | 🏛️ **Bölüm** | Bilişim Güvenliği Teknolojisi | | 🎓 **Kurum** | İstinye Üniversitesi | | 📚 **Ders / Kapsam** | BGT006 — Sızma Testi Final Ödevi |
标签:后端开发