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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-36355 — CVE-2026-36355: Realtek rtl819x Jungle SDK - 認証不要のカーネルメモリ読み取り/書き込み(デバッグioctl経由) | Kitploit
ツール/GitHubGitHub/totekuh/cve-2026-36355
組み込みシステムセキュリティ特権昇格脆弱性分析エクスプロイトワイヤレスセキュリティハードウェアセキュリティバイナリエクスプロイト
GitHubtotekuh/cve-2026-36355

CVE-2026-36355

CVE-2026-36355: Realtek rtl819x Jungle SDK - 認証不要のカーネルメモリ読み取り/書き込み(デバッグioctl経由)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-36355: Realtek rtl819x Jungle SDK - デバッグIOCTLを介した認証なしカーネルメモリ読み書き

  • CVE: CVE-2026-36355
  • CWE: CWE-782, CWE-787, CWE-200
  • 発見者: Daniil Gordeev
  • 公開日: 2026-05-03

概要

Realtek rtl819x アウトオブツリー「Jungle SDK」に含まれる rtl8192cd Wi-Fi カーネルドライバは、write_mem (0x89F5) および read_mem (0x89F6) という2つのIOCTLを、アクセス制御チェックなしで公開しています。ドライバに支えられた無線ネットワークインターフェースを開くことができるローカルユーザーは誰でも、任意のカーネル仮想メモリを読み書きでき、直接 root につながります。

ハンドラは 8192cd_cfg.h 内の _IOCTL_DEBUG_CMD_ によってゲートされており、これは無条件に定義されています(#ifdef DEBUG なし)。したがって、デバッグコマンドセットはすべての製品ビルドにコンパイルされます。

リファレンスエクスプロイト(kpwn)は非特権シェルから uid=0 を達成し、ハードコードされたアドレスはゼロです。task_struct レイアウトと init_task の位置は両方ともランタイムで自動検出されるため、カーネルバージョンやOEMビルドをまたいで移植可能です。

影響を受ける製品

この脆弱性は Realtek rtl819x Jungle SDK カーネル Wi-Fi ドライバに存在し、v3.4.14B までの既知の全バージョンが影響を受けます。開示時点で修正はありません。メインライン Linux の rtlwifi / rtw88 / rtw89 は別のコードベースであり、影響を受けません。

共有ドライバコアは複数のバリアント(rtl8192cd、rtl8192es、rtl8192ee、rtl8192fe、rtl8188ee など)にコンパイルされます。Wi-Fi ドライバを含む Jungle SDK ビルドはすべて影響を受けます。

影響の可能性が高い — 製品ごとの検証が必要

Realtek Jungle SDK は OEM 契約のもとで広く再配布されています。CVE-2021-35395 のベンダーリスト(同じSDKの別のユーザースペースコンポーネントを標的としたもの)に記載されているベンダーには、D-Link、TOTOLINK、Tenda、NEC、I-O DATA、Elecom、Buffalo、Humax、H3C、IP-COM が含まれます。各製品ラインが脆弱なカーネルドライバを搭載しているかどうかは、製品ごとのGPLソースリリースの調査が必要です。本アドバイザリは、独立した検証なしにそれを断言するものではありません。

テスト環境

デバイスOrtel 4G LTE CPE (OEM: MeiG Smart FORGE_SLT711)
SoCQualcomm MDM9607, ARMv7 Cortex-A7
カーネルLinux 3.18.48
モジュールrtl8192es.ko

確認済み: モジュール .bss への 0xDEADBEEF の書き込み、読み戻しと復元。非特権シェルから init_task の走査と資格情報の上書きによる uid=1000 から uid=0 への完全な LPE を達成。

技術的詳細

根本原因

8192cd_cfg.h 内:

root@kitploit:~
#define _IOCTL_DEBUG_CMD_

#ifdef DEBUG でゲートされていません。デバッグコマンドセットはすべての製品ビルドに含まれます。

脆弱なハンドラ

ドライバの rtl_ioctl() ディスパッチャは、0x89F5 と 0x89F6(ワイヤレスドライバがベンダー拡張に使用する標準の SIOCDEVPRIVATE+5/+6 プライベートIOCTL範囲内)を write_mem と read_mem にルーティングします。ハンドラはユーザー指定の文字列を解析します:

  • 読み取り: dw,<addr>,<count> — カーネル仮想アドレス addr から32ビットワードを count 個読み取る
  • 書き込み: dw,<addr>,<count>,<value> — value の32ビットワードを count 個 addr に書き込む

アドレスは _atoi(base 16) で解析され、カーネル仮想アドレス空間に対する memcpy() に渡され、結果は copy_to_user() でユーザー空間に書き戻されます。次のものはありません:

  • capable() チェックなし
  • アドレスに対する access_ok() チェックなし
  • アドレス範囲に対する境界チェックなし
  • ロックなし — デバッグコマンドセット内の59すべてのIOCTLが、.bss 内の単一の2000バイトのグローバルバッファ(tmpbuf1)を共有します

読み取りプリミティブは1回の呼び出しあたり最大128バイトに制限されています。書き込みプリミティブは任意の長さを受け入れます。

同じアクセス制御のギャップは、デバッグセット内の他のハンドラ(0x89F3/0x89F4/0x89F8–0x89FD によるハードウェアレジスタの読み書き、0x89F1 によるMIB書き込み、eFuseの読み書き、製造テストモード)にも適用されます。これらは同じコードパスから到達可能であり、このバグにパッチを当てる人は誰でも完全な監査が必要です。

概念実証

kpwn - MeiG FORGE_SLT711(Ortel 4G LTE CPE)、カーネル3.18.48で uid=1000 から uid=0 へ

リファレンスエクスプロイト kpwn.c(本アドバイザリとともに公開):

  • 任意の非特権ユーザーとして実行可能。root は不要。
  • カーネル .data のブルートフォーススキャンで位置を特定する init_task を走査することで、task_struct のオフセット(comm、cred、tasks、pid)を自動検出します。
  • 各 /sys/class/net/* を読み取りプリミティブでプローブすることで、脆弱なインターフェースを自動検出します。
  • /proc/kallsyms が読み取り可能な場合は44回のIOCTL、kptr_restrict=2 の場合は約7600回のIOCTL(完全な .data スキャンパス)。すべてのテスト実行で無条件に root シェルを取得します。
root@kitploit:~
# Build:
arm-linux-gnueabi-gcc -static -O2 -o kpwn kpwn.c

# Run as unprivileged user:
$ id
uid=1000(pwn) gid=3003(inet) ...
$ /tmp/kpwn
kpwn — RTL8192CD kernel LPE
[*] Scanning interfaces...
[+] wlan0 — read primitive confirmed
[*] Resolving init_task...
[+] init_task @ 0xc08ecb38
[+] comm=0x3a8 cred=0x3a4 tasks=0x250 pid=0x2c0
[+] cred=0xed3a4500 uid=1000 gid=3003
[*] Overwriting credentials...
[+] uid=0 euid=0 gid=0 egid=0
*** GOT ROOT *** uid=1000 -> 0 (44 ioctls)
# id
uid=0(root) gid=0(root) groups=0(root)
ツールをダウンロード
日付2026-02-23