U-Bootに6件の脆弱性、攻撃者がブートプロセスを乗っ取り可能に

悪意あるファームウェアは、Linuxが起動する前にデバイスの制御を奪うことができます。しかもOSレベルで動作するセキュリティソフトウェアからはほとんど検知できません。Binarlyの研究者らはU-Bootに6件の脆弱性を発見しました。このオープンソースのブートローダーは、ルーターやサーバー、産業用システム、そして多種多様なIoTデバイスで利用されています。

U-Bootの欠陥がこれほど危険な理由

U-Bootは、デバイスの電源投入時に最初に実行されるコンポーネントの一つです。ハードウェアを初期化した後、オペレーティングシステムに制御を引き渡します。この初期段階における欠陥は、攻撃者に重大な機会の窓を与えます。アンチウイルスソフトウェアや監視エージェント、その他のセキュリティ機構が読み込まれる前に、介入を可能にしてしまうのです。

バグの所在:FITイメージの署名検証

これらの脆弱性は、FITイメージのデジタル署名を検証するコード内に存在します。FITはFlattened Image Treeの略です。U-BootはこのFIT形式を使って、Linuxカーネルやデバイス設定、その他のファームウェアコンポーネントをパッケージ化します。Verified Boot機能は本来、署名を検証し、改ざんされたイメージを拒否するはずです。しかし脆弱性のあるコードは、真正性の検証が完了する前にファイルの内容を解析し始めてしまいます。そのため、細工されたイメージはブートローダーの検証が終わる前にクラッシュを引き起こす可能性があります。署名が無効だと判定される前に、メモリを破損させることもできてしまいます。

6件の欠陥:2件はコード実行、4件はDoSを引き起こす

6件の脆弱性のうち2件は、特定の条件下でブートローダーのコンテキスト内で任意コード実行を可能にする可能性があります。残る4件はサービス拒否(DoS)を引き起こし、デバイスを起動不能にする恐れがあります。根本的な欠陥には、スタック破損、範囲外メモリ読み取り、ヌルポインタ参照、オフセット検証の不備、無制限の再帰処理などが含まれます。

BRLY-2026-038 — CVSS 6.8(最も深刻)

この欠陥は、署名検証中にスタックバッファのアンダーフローを引き起こします。研究者らは、攻撃者が制御データを上書きし、オペレーティングシステムが起動する前にコード実行を達成できる可能性があると評価しています。

BRLY-2026-037

この脆弱性は通常、ブートローダーのクラッシュを引き起こします。しかし、メモリレイアウトの条件が揃った場合、コード実行につながる可能性もあります。

攻撃が成功すると何が可能になるか

攻撃が成功すると、ブートシーケンスの最も初期の段階で制御権が奪われます。この段階では、悪意あるコードによってコンポーネントの起動順序を改変できてしまいます。個々のセキュリティチェックを無効化したり、永続的なファームウェアインプラントをインストールしたりすることも可能です。オペレーティングシステム内のセキュリティツールは、この被害が発生した後になって初めて制御を受け取ります。そのため、こうした脅威の検知には苦戦を強いられます。

想定される攻撃シナリオ

この脆弱性の悪用には、細工されたファームウェアイメージを標的に送り込む必要があります。多くのシナリオでは、攻撃者は物理的なアクセス、あるいはファームウェア更新機構への事前の制御権のいずれかを必要とします。しかし、常に現地でのアクセスが必要というわけではありません。サーバーのベースボード管理コントローラー(BMC)や一部のネットワーク機器は、リモートでのファームウェア更新に対応しています。管理インターフェースを侵害した攻撃者は、ネットワーク経由で悪意あるイメージを送り込むことができます。

影響範囲:50以上のU-Bootリリースが対象となる可能性

脆弱性のあるコードの大部分は、U-Boot 2013.07にまで遡ります。Binarlyは、この欠陥が50以上の安定版リリースに影響する可能性があると推定しています。独自仕様のファームウェアイメージに組み込まれた、ベンダー独自の改変版ビルドの多くも危険にさらされています。影響を受けるデバイスの確定的なリストはまだ存在しません。これは、ハードウェアメーカーが独自に保守している膨大な数のU-Bootビルドが存在するためです。

パッチ適用状況とユーザーが取るべき対応

Binarlyは2026年5月、この脆弱性をU-Bootのメンテナーに報告しました。パッチはすでにメインラインプロジェクトにマージされています。しかし、ほとんどのユーザーにとって、ブートローダー単体の更新だけでは不十分です。ルーター、サーバー、組み込みデバイスの各メーカーは、自社のファームウェアビルドにこのパッチを組み込む必要があります。その上で、公式チャネルを通じてアップデートをリリースしなければなりません。サポートが終了している旧型デバイスについては、修正が提供されない可能性もあります。

翻訳元: https://meterpreter.org/u-boot-vulnerabilities-binarly/

ソース: meterpreter.org