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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-27280 — CVE-2026-27280の詳細な分析と概念実証。Adobe DNG SDKの`dng_render_task::ProcessArea`における領域外書き込みで、Androidの画像デコードAPIを介して到達可能。根本原因、悪用可能性の評価、RCEギャップ分析を含む。 | Kitploit
ツール/GitHubGitHub/r3n3r0/cve-2026-27280
Androidセキュリティ脆弱性分析エクスプロイトリバースエンジニアリングファジングモバイルセキュリティ論文と研究バイナリエクスプロイト
GitHubr3n3r0/cve-2026-27280

CVE-2026-27280

CVE-2026-27280の詳細な分析と概念実証。Adobe DNG SDKの`dng_render_task::ProcessArea`における領域外書き込みで、Androidの画像デコードAPIを介して到達可能。根本原因、悪用可能性の評価、RCEギャップ分析を含む。

リポジトリを見る
117時間56分前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

dng_render_task::ProcessArea における領域外書き込み(Adobe DNG SDK / Android)

通常のDNGファイルからAndroidの公開画像デコードAPIを通じて到達可能であり、 Galaxy S25上で、端末自身の/system/lib64/libdng_sdk.soを使用して再現しました。

  • 脆弱性あり: DNG SDK 1.7.1 ビルド 2410 / 2471(2410はテスト端末に搭載されているもの)
  • 修正済み: ビルド 2502(DNG_REQUIRE(srcArea.Size() == dstArea.Size()) + srcAreaインデックス)
  • 端末: SM-S931B、Android 16、セキュリティパッチ 2026-01-01 — 修正前であり、搭載ライブラリに2502のガード文字列が存在しないことで確認済み
root@kitploit:~
#12 AImageDecoder_decodeImage                  /system/lib64/libjnigraphics.so
#11 android::ImageDecoder::decode              /system/lib64/libhwui.so
#09 SkCodec::getPixels                         /system/lib64/libhwui.so
#08 SkRawCodec::onGetPixels                    /system/lib64/libhwui.so
#07 dng_render::Render()                       /system/lib64/libdng_sdk.so
#06 SkDngHost::PerformAreaTask                 /system/lib64/libhwui.so
#00 dng_render_task::ProcessArea               /system/lib64/libdng_sdk.so   <-- 脆弱性あり

1段落の要約

ProcessAreaは、タイルサイズの一時バッファをsrcAreaにマッピングしますが、dstArea座標でインデックス付けします。srcArea = dstArea + fSrcOffsetであり、fSrcOffsetはファイルのDefaultCropOrigin — 実際のカメラDNGでは常に非ゼロ — であるため、宛先ポインタはfSrcOffset * rowStep * pixelSizeだけ割り当て領域からずれ、マスクの読み戻しがそこに書き込まれます。これは変位であり、整数オーバーフローではないため、巨大な割り当てを必要としません。だからこそ、スマートフォン上で到達可能なのです。

レイアウト

root@kitploit:~
01-vulnerability/   脆弱性あり・修正済みのdng_render.cpp、および2471→2502の差分
02-poc/             ジェネレータ、ローダ、プローブ(ソース)+ プリビルド済みarm64バイナリ
03-samples/         DNGファイル
04-evidence/        ASANログ、端末のtombstone、プローブ出力
05-analysis/        根本原因、ジェネレータ、隣接測定、RCEギャップ分析

03-samples

05-analysis

06-rce-lab(RCEへの取り組み)

以前の判定を超える作業: その主張のうち2つを測定によって反証し、「破損したポインタが使用されるか」というギャップを埋め、チェーンが停止する正確な理由を特定します。最初に06-rce-lab/README.mdを読んでください。evidence/*.mdファイルは実験ごとのレポートであり、src/ + apk/は再現可能なハーネスです。

再現

root@kitploit:~
adb push 02-poc/bin-arm64/poc_aimg 03-samples/trigger_natural_croporigin.dng /data/local/tmp/
adb shell "cd /data/local/tmp && chmod 755 poc_aimg && ./poc_aimg trigger_natural_croporigin.dng"
# -> Segmentation fault, tombstone frames inside libdng_sdk.so

arm64ローダを再ビルドするには、Android独自のdng_sdkフラグ(Android.bpから)が必要です。そうしないと、構造体レイアウトが搭載ライブラリと一致しません:

root@kitploit:~
-DUNIX_ENV=1 -DqDNGBigEndian=0 -DqDNGThreadSafe=1 -DqDNGUseLibJPEG=1 \
-DqDNGUseXMP=0 -DqDNGValidateTarget=1 -DqDNGUsingSanitizer=1 -DqLinux=1 -DqAndroid=1

ステータス

これはCVE-2026-27280(DNG SDK 1.7.1 2471以前、CWE-787、CVSS 3.1 7.8 HIGH)に相当し、2026-03-10に公開 — バージョン範囲とクラスで一致し、Adobeが関数名を特定したことによる確認ではありません。

実機のAndroidデコードパス上で、2026-01-01にパッチ適用された端末で証明済み: 攻撃者が選択した宛先への領域外書き込み(4バイト粒度、双方向、ASLR非依存); プレーンなDNGからAImageDecoderを通じて到達可能で、Samsung Galleryをサムネイルローダ内で強制終了させることを実証; 隣接領域の静かな決定的破壊; free()に到達する破損したポインタ(N1解決); DNG形式で表現されたヒープスプレー(ImageStats × SubIFD); スプレーしたオブジェクトへの書き込みの照準、6/10 vs 0/10。

AndroidパスではRCEではなく、その根本的な理由は1つ: コードは単一の値0x3F800000しか書き込めません。すべてはそこから派生します — 書き込みは連続的であり(Scudoヘッダ上のストライドなし)、書き込むゼロはなく(長さ/参照カウントの破壊なし)、タグを保持する部分的な上書きには正確に1つの固定ターゲットオフセットがあります。1つの値は、ランダム化された256 MBのリザベーションに対する1回の試行であり、スプレーの量や並行性を増やしても試行回数は増えません。デスクトップSDKでは書き込み可能なセットは256値 → 約67 MBの帯域にわたって256回の試行となり、7.8がそこで正しい理由です。

以前の判定(05-analysis/05-exploitability-verdict.md)から撤回され、測定によって反証されました: 「実際のデコーダはスプレープリミティブを提供しない」 および 「オーバーラップは単一のデコード内から操作できない」。ブロックの原因はPAC、BTI、Scudoのチェックサムではなく — 単一の書き込み可能な値であり、Adobeの2502修正がsrcAreaでのインデックス付けによって根本的に除去するコードの特性です。

動作するエクスプロイトは構築されておらず、ここに公開されているものもありません。

ツールをダウンロード
ファイル機能
trigger_natural_croporigin.dng自然なジオメトリ(DefaultCropOrigin = 8,8); AImageDecoderをクラッシュさせる
benign_reference.dng原点0の同一ファイル — 正常にデコードされ、ヒープのプローブに使用
silent_corruption.dng小さいサイズクラス: クラッシュせずに領域外書き込み(5/5)
far_write_crash.dng大きな変位: 明確にフォールトする
ファイル内容
01-root-cause.mdバグ、修正、書き込みの形状
02-dng-generator.mdトリガーファイルの構築方法、2つの調整ノブ、落とし穴
03-neighbours.md制御可能性の数値、バッファの隣にあるもの、緩和策
04-what-is-missing-for-rce.md証明されていること(P1-P8)、証明されていないこと(N1-N3)、残りのステップ
05-exploitability-verdict.md以前の判定 — 06-rce-labによって取って代わられ、記録用に保持
ファイル内容
EXP1-stride-vs-scudo.mdストライド vs Scudoヘッダ: 抽象論では可能、Androidパスでは不可能(planes==1)
EXP2-N1-corrupted-pointer-used.md破損したポインタがfree()に到達 — N1は解決
EXP2-real-process.md実際のSamsung Galleryプロセスでの書き込み、何も仕掛けていない
EXP-imagestats-spray.md以前の判定が不可能と呼んだヒープスプレーを、DNG形式で表現
EXP-aimed-spray.mdスプレーしたオブジェクトへの書き込みの照準: 6/10 vs 0/10
EXP-small-class-in-app.md実際のアプリプロセス内で到達可能なコードポインタ
EXP-band-commit.md / EXP-concurrency.mdターゲットのコミットが失敗する理由: 書き込み可能な値1つ = 1回の試行
EXP-write-read-mismatch.md2つ目の欠陥 + ProcessAreaの完全なソース監査
EXP-value-1.0f.md1.0fをデータとして使う経路、構造的に閉鎖