カーのナビゲーションシステムをジャイルブレイクして時刻を変更するためだけにやった話

2026/11/03 1:29

カーのナビゲーションシステムをジャイルブレイクして時刻を変更するためだけにやった話

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

研究員が、2014 年式のルノー ラテティユド(Renault Latitude)において、TomTom Carminat LIVE ヘッドユニット(コードネーム:beaumont)を成功fullyに悪用し、そのインフォテインメントシステムへの完全な制御を獲得しました。この事案は、レガシー自動車機器における重大なセキュリティ欠陥の暴露をもたらしました。当該装置は、Samsung S5P6440 SoC を中心として構築された TomTom 独自のコア Linux ベース OS(2.6.28.10)を動作させ、大半のパーティションは noexec としてマウントされており、SD カードは unionfs セットアップを利用しています。DRM チェックでは正当な SD カードおよび正しい CID の有無が要求されましたが、攻撃者は master.script 内のスクリプトコマンドを通じて core_pattern ハンドラを操作し、安全制限を迂回することが可能でした。

具体的には、研究員は /bin/dbus-monitor を使用して SIGABRT クラッシュをトリガーし、生成される coredump をカスタムの LOG コマンドへパイプすることで、root 権限を持つ任意のシェルコマンドを実行しました。これにより、/mnt/flash/settings.dat に格納されているタイムゾーンオフセットのような重要なシステム設定(例:夏時間変更後、UTC+3 から UTC+2 への修正)を直接的に変更することができ、欠落しているメニューオプションを上書きし、過時化した SD カードにより引き起こされる「No maps detected!」エラーも修正できました。このエクスプロイトは、unionfs マウント制限に対して入力検証が行われない「ttn」バイナリパーサーの欠陥を活用しています。これにより、公式な許可なくダッシュボードディスプレイを制御するドライバーが可能となり、スクリプト操作を通じてカスタムソフトウェアコンポーネントへのアクセスが可能な箇所には大きなリスクが存在することが示されました。製造業者は、車両データや設定への不正アクセスを防ぐために、緊急にパッチの発行または影響を受けたハードウェアの置換を実施すべきです。なお、リバースエンジニアリングの結果および更新ファイルは、TomTom GitHub リポジトリ(https://github.com/andronedev/carminat-tomtom-live-re)で入手可能です。

本文

TomTom ラテュードの時刻設定トラブルと、SD カード制限を突破した exploits による解決

背景:地味だが愛着のある車両

  • 車両: 2014 年式の日産・ルノー「ラテュード」。高級車とはほど遠い地味な車。
  • 現状: 経年劣化はあるが、A から B への移動や基本機能は正常に動作しており、不満がない状態だった。
  • 購入時の出来事:
    • 前所有者から「ナビゲーション用 SD カード」の譲渡を提案された。
    • 前所有者曰く:「時計時刻を変更するにはこのカードが必須」。
    • ただし、私はこれを疑った理由:
      • オンライン動画では時刻設定オプションがすぐに確認できる画面が表示されていること。
      • SD カード内の地図データが古すぎて機能せず、「地図が見つかりません!」というメッセージが常に表示されていたこと。
      • 結局前所有者はカードを処分した。

問題:夏時間変更後の混乱

  • 状況: エストニアで冬時間(UTC+2)への切り替えを実施。
  • 発生: ダッシュボードの時刻と実時間が1 時間ずれる。
  • 探索:
    • 「時刻設定」メニューが存在しないことに気づく(オンライン動画との不整合)。
    • 設定ボタンは Bluetooth や電話帳設定しか機能せず、もう一方は無反応で「地図が検出されませんでした」と表示されるだけ。
  • 試行錯誤: メニューやボタンの組み合わせを試したが約 1 時間経っても解決せず、ファームウェア解析に着手。

発見:SD カードなしでは設定メニューに入れない

リバースエンジニアリングの結果、以下の事実が判明した。

  • 前所有者の正しさ: SD カード挿入なしには、正しい設定メニューへのアクセスは不可能。
  • DRM 保護:
    • 指向するメニュー定義自体が SD カードから読み込まれている。
    • システムは CID(カード固有 ID)に基づいた署名検証を行っており、正規のカード以外やコピー品での設定画面取得を拒絶する。

解決への道筋:root アクセスとシステム解析

私は有料の正規カード購入を断念し、自らの手で root 権限獲得および時刻修正を試みることにした。

システム構成の把握

  • ハードウェア: TomTom Carminat LIVE (型番 beaumont) / Samsung S5P6440 SoC。
  • OS: Linux 2.6.28.10 ベースのカスタム OS。
  • 更新ファイル構造 (
    ttsystem
    )
    :
    • ext3 ファイルシステムを含む内部ルートファイルシステムを格納。
    • 高エントピーデータと零ブロック(ゼロバイト)で構成され、おそらく署名検証が行われている箇所がある。

自動化スクリプトの分析 (
master.script
)

  • 起動時に自動読み込まれるカスタム言語スクリプト。
  • 利用可能な機能:
    • LOG
      : 指定ファイルへの文字列書き込み(0x20-0x7E の ASCII に限定)。
    • SHEX
      : 実行プログラムを指定するが、パラメータは渡せない(トークン制限あり)。
    • 画像表示機能。

攻撃ベクトルの検討と失敗例

以下の方法で直接コード実行を試みましたが、全て失敗しました。

試行内容結果理由
更新イメージの改変❌更新ロジックが不明瞭な拒否判定があったため。
QEMU シミュレーター構築⚠️システム起動時頻繁に再起動(3 秒ごと)するため不安定。検証用には有用だが本番非対応。
ファイルシステムの既読制 (noexec)❌
/content
や
/media/sdcard
等が
noexec
でマウントされており、スクリプト実行不可。
SHEX
のパラメータ制限
❌単一のトークンしか受け付けないため、パスや引数を指定できない。
LOG ファイル書き込みのみ⚠️root権限で書き込めるが、只読マウント領域への書換えは不可能、且つ実行不能。
画像バッファオーバーフロー (Unicorn)❌読み取り系(OOB read)の脆弱性は発見したが、書き込み系 (write) は見付からず、コード実行へ至らなかった。

突破:コアパターン(core_pattern)を利用したコード実行

既存の機能と Linux のシステムコールを組み合わせて突破口を特定しました。

1. 戦略:内核によるスクリプト実行

  • 発想: ユーザー空間から直接実行ではなく、内核が別のプロセスを起動する仕組みを利用する。
  • 手法:
    /proc/sys/kernel/core_pattern
    を書き換えることで、コアダンプ(core dump)の出力先を指定できる機能を悪用する。

2. 具体的な手順

  1. 書き込み経路の確保:
    • master.script
      の
      LOGFILE
      に
      ../../proc/sys/kernel/core_pattern
      を設定。
    • ここに特殊な文字列
      |/bin/sh /media/sdcard/payload.sh
      をログとして記録する。
  2. トリガーの選定:
    • 内核は
      core_pattern
      で指定されたプロセスを起動し、パイプを通じてダンプデータを出力する。
    • 問題点: システムがクラッシュすると再起動されスクリプトが中断するリスク。
    • 解決:
      /bin/dbus-monitor
      がシステムバス接続失敗時(本機では非動作のため)に
      SIGABRT
      を発火し、確実なクラッシュと core dump を引き起こす特性を利用。
  3. 実行コマンドの構成:
    • /bin/sh /media/sdcard/payload.sh
      は rootfs に存在するため(noexec マウントでも回避可能)、内核起動時に正しく実行される。

3. 実装された
master.script

#define LOGFILE ../../proc/sys/kernel/core_pattern
LOG |/bin/sh /media/sdcard/payload.sh
SHEX /bin/dbus-monitor
  • 検証: SD カード挿入と"Yes"選択後、システムが正常に再起動することを確認。コード実行権限の獲得に成功。

最終解決:時差修正の実施

root アクセス取得後、以下の作業を完了しました。

  1. システムイメージのバックアップ:
    dd
    コマンドで内部 eMMC を完全保存。
  2. 設定ファイルの確認: 時刻・時差情報は
    /mnt/flash/settings.dat
    に格納されていることを発見(カスタムバイナリ形式)。
  3. 値の変更:
    • GPS 時間を基準とし、ローカルオフセットを「分」で管理。
    • 旧値:180 (UTC+3 / サマータイム)
    • 新値:120 (UTC+2 / ウィンタータイム)
  4. 結果: 愛車の時刻設定が正常に修正されました!

結論: 厳重に制限された環境においても、複数の脆弱性や仕様を組み合わせて、内核の挙動(core_pattern)を利用することで、意図しないコード実行を実現し、目的を達成することができました。

同じ日のほかのニュース

一覧に戻る →

2026/11/04 6:40

生成 AI の基礎:直感的な数学入門の小さな本

## Japanese Translation: 本書は、現代の生成人工知能の数学的基盤に対するコンパクトかつ導出志向的な導入を提供する。主となるモデルファミリー—including 主成分分析(PCA)と確率的 PCA、変分オートエンコーダー、正規化フロー、自己回帰的因数分解、拡散モデル、Wasserstein GAN、GAN、エネルギーベースモデル—to れらの間の深い相互関係を明らかにするために関連する概念を開発する。本書の目的は、生成モデリングの構造を理解しやすくしつつ、モデルの導出と関係性を理解するために必要な数学的な実体も保持することにある。本書は、数学に興味を持つ研究者、実践者、学生のための基礎構築用の入門書として機能する。メタデータには提出履歴が反映されており、v1 バージョンが 2026 年 5 月 28 日に(125 KB)、v2 バージョンが 2026 年 9 月 8 日に(1,168 KB)提出された。改訂を通じて、コアなミッションは元のドラフトと一貫して維持されている。

2026/11/04 6:51

PostgreSQL の内部構造

## Japanese Translation: 弘野博文氏のテキストの核心となるメッセージは、PostgreSQL と機械学習統合に特化した国際的なリモート職へのターゲットされた求人情報であり、ヨーロッパ、南半球、または東南アジアでのビザスポンサシップを具体的に要請しています。彼は最近の一時滞在からの回復後、日本に長期的に住み続ける意図を持っています。鈴木氏は、広範な技術的作業に対する商業契約を明確に提供しており、売上利益共有(売上 20%)または完全な買収(5,000,000 ユーロ)を含みます。彼の主要プロジェクトである「PostgreSQL の内部構造」は、2015 年 9 月 26 日に最初に公開され、バージョン 19-beta 以前の版本をカバーしています。最近の更新には、2026 年 5 月 1 日に出版された第 12 章(「論理的複製」)、2026 年 6 月 28 日に出版された 8.5 セクション(「非同期 I/O」)、および 2024 年 12 月 14 日に追加された第 11.2.4 セクションの衝突が含まれています。教育機関はこれらの教材の研究のために無料アクセスが与えられています。過去の XZ バックドア事件に関連する匿名脅威による過去のため、鈴木氏は連絡問い合わせを受諾する前に 2 つの SNS アドレスによるソーシャルメディアの認証を厳格に必要としています;匿名メッセージはもう受け入れられていません。

2026/11/04 6:39

Safari が 27.3 で適応型ダークモードを導入

## Japanese Translation: Apple は Safari 27.3 ベータ版で Adaptive Dark Mode を導入しました(ダークモードサポートは当初 Safari 12.1 で提供開始)。この機能は、明るい色のウェブサイトをダークなシステムインターフェース内でも表示できるようにすると同時に、既存のレイアウトを崩さずに処理することを目的としています。ページの色を自動的に解析し、色相を保ちながら輝度を反転させる高度なカラーマトリックスを採用し、アクセシビリティ向上のため WCAG 4.5:1 のコントラスト比を目標としています。以前のバージョンでは開発者のサポートがなかったためトラフィックの約 40% しかダークモードを利用できず(ネイティブ対応サイトは約 10%)、この新たなベータ版では既存コンテンツを自動的に適応させます。システムは SVG をピクセルヒストグラムで処理し、mix-blend-mode などのエフェクトによる視覚的な不具合を防ぐためにビットマップロゴを変換しますが、パフォーマンスとプライバシーを確保するため `<canvas>` コンテンツは変更しません。ユーザーが電力効率の向上から恩恵を受ける一方で、機能はユーザーのプライバシーを最優先としており、JavaScript の色クエリやキャンバスレンダリングも元の色を保つように設計されており、ウェブサイト自身でも検知不可能です。開発者には最適な互換性を得るために透明な背景など現代的な実践を採用するよう推奨されていますが、現時点では特定のメタタグを使用して変換から opting out(除外)することは可能でありながら、Safari 27.3 ベータ版 1 ではこの目的で"light only"キーワードをサポートしていません。