Análisis en profundidad de la vulnerabilidad Use-After-Free (CVE-2025-21082) en el Media Framework AVCodec de Xiaomi HyperOS, simulación en Rust y panel web interactivo.
Análisis exhaustivo y simulación en Rust de la vulnerabilidad Use-After-Free en el framework multimedia AVCodec de Xiaomi HyperOS
Proyecto final universitario — Proyecto de investigación en ciberseguridad
🌐 Experimente la simulación en vivo en el navegador
Este repositorio contiene el análisis técnico en profundidad, la simulación del mecanismo de ataque y las recomendaciones de solución para CVE-2025-21082, una vulnerabilidad crítica de Use-After-Free (UAF) detectada en el framework de procesamiento multimedia HyperOS AVCodec de Xiaomi.
La causa raíz de la vulnerabilidad reside en la liberación del contexto del códec en el mecanismo de callback asíncrono de AVCodec mientras los subprocesos de trabajo aún están activos. Esta situación conduce a una condición de carrera Use-After-Free clásica y ofrece, en teoría, la posibilidad de Ejecución Remota de Código (RCE).
El proyecto incluye una simulación segura de UAF escrita en Rust, documentación técnica exhaustiva, automatización del pipeline CI con GitHub Actions y una visualización interactiva basada en navegador.
HyperOS-Directory-Traversal-Analysis/
│
├── 📁 .github/ # Flujos de trabajo CI/CD y comunidad de GitHub
│ ├── 📁 ISSUE_TEMPLATE/ # Plantillas de informes de errores y solicitudes de funciones
│ │ ├── 📄 config.yml # Configuración de plantillas de incidencias y enlaces
│ │ ├── 📄 hata-raporu.yml # Formulario de informe de errores (YAML Forms)
│ │ └── 📄 ozellik-istegi.yml # Formulario de solicitud de función (YAML Forms)
│ ├── 📁 workflows/
│ │ ├── 📄 rust.yml # Rust CI — Pipeline de compilación, prueba y lint
│ │ ├── 📄 pages.yml # Publicación automática en GitHub Pages
│ │ ├── 📄 security.yml # Escaneo de seguridad (cargo-audit, CodeQL)
│ │ └── 📄 docs.yml # Lint de documentación y verificación de enlaces
│ ├── 📄 dependabot.yml # Actualización automática de dependencias
│ ├── 📄 FUNDING.yml # Configuración de GitHub Sponsors
│ ├── 📄 mlc_config.json # Configuración del verificador de enlaces Markdown
│ ├── 📄 PULL_REQUEST_TEMPLATE.md
│ └── 📄 SECURITY.md # Política de seguridad
│
├── 📁 assets/ # Archivos de logotipos e imágenes
│ └── 🖼️ isu-logo.png # Logotipo de la Universidad İstinye
│
│
├── 📁 docs/ # Documentación técnica
│ ├── 📄 zafiyet-analizi.md # Análisis de vulnerabilidad y puntuación CVSS
│ ├── 📄 mimari-analiz.md # Diagrama de arquitectura de HyperOS AVCodec
│ ├── 📄 cozum-onerileri.md # Recomendaciones de solución y parches C++
│ └── 📄 README.md # Índice de la guía de documentación
│
├── 📁 research_results/ # Resultados de la investigación de la tarea
│ ├── 📄 Cevaplarım.md # Respuestas a 10 preguntas avanzadas
│ ├── 📄 SORULAR.md # Preguntas de la tarea
│ ├── 📄 yorum.md # Análisis y comentarios personales
│ ├── 📄 simple.md # Explicaciones simples (50 pasos)
│ ├── 🌐 infographic.html # Guía visual de vulnerabilidad
│ └── 📄 README.md # Índice de resultados de investigación
│
├── 📁 poc_python/ # Herramientas de análisis Python (Referencia)
│ ├── 📄 exploit.py # PoC de Directory Traversal CVE-2025-2844
│ └── 📄 requirements.txt
│
├── 📁 poc_rust/ # Simulación UAF en Rust (PoC principal)
│ ├── 📁 src/
│ │ └── 📄 main.rs # Lógica de simulación UAF con Rust inseguro
│ └── 📄 Cargo.toml
│
├── 🌐 simulation.html # Panel de simulación web interactivo (5 escenas)
├── 📄 README.md # Este archivo
├── 📄 CODE_OF_CONDUCT.md # Código de conducta de la comunidad
├── 📄 CONTRIBUTING.md # Guía para contribuir
├── � TODO.md # Lista de tareas pendientes
└── ⚖️ LICENSE # Licencia MIT
| Característica | Detalle |
|---|---|
| Número CVE | CVE-2025-21082 |
| Tipo de Vulnerabilidad | Use-After-Free (CWE-416) |
| Componente Afectado | Framework Xiaomi HyperOS AVCodec |
| Puntuación CVSS v3.1 | 8.1 (Alta) |
| Vector de Ataque | Red (Network) |
| Impacto | Potencial de Ejecución Remota de Código (RCE) |
| Fecha de Descubrimiento | 10 de febrero de 2025 |
| Fecha del Parche | 20 de febrero de 2025 |
[Hilo Principal] processFrameAsync() → Se inicia el hilo de trabajo
↓
Se llama a release() → La memoria se LIBERA ⚠️
↓
[Hilo de Trabajo] Continúa accediendo a la memoria liberada → UAF 💥
Puede ver a continuación la grabación de pantalla que muestra la compilación, ejecución y la salida de la simulación Use-After-Free del proyecto:
# Clonar el proyecto
git clone https://github.com/kkaanozturk/HyperOS-Directory-Traversal-Analysis.git
cd HyperOS-Directory-Traversal-Analysis/poc_rust
# Compilar en modo release
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
Salida Esperada:
🔬 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