広く使用されているブートローダーU-Bootに6件の脆弱性が発見されました。これらを悪用されると、攻撃者がデバイスの起動時に悪意あるコードを実行できるようになり、セキュリティ保護機能を無効化した上で永続的なマルウェアをインストールする、ステルス型のファームウェア攻撃につながる恐れがあります。
U-Bootは世界で最も広く利用されているオープンソースのブートローダーの一つで、エンタープライズサーバーのBaseboard Management Controller(BMC)をはじめ、ネットワーク機器、産業用システム、IoTデバイスなど、多くの組み込みLinuxデバイスに搭載されています。
U-Bootはオペレーティングシステムを読み込む役割を担っているため、このブートローダーに脆弱性があると、OSやそのセキュリティソフトウェアが起動する前の段階で、攻撃者がデバイスを侵害できてしまう可能性があります。
U-Bootのセキュリティ機能の一つであるVerified Bootは、暗号署名を用いることで、信頼できる鍵によって署名されたファームウェアおよびOSイメージのみが起動時に読み込まれるようにする仕組みです。
ファームウェアセキュリティ企業のBinarlyは今週公開したレポートで、U-BootのFIT(Flattened Image Tree)署名検証コードに存在する6件の脆弱性を公表しました。
Binarlyは「このコンポーネントの重要性を認識し、Binarly Research Teamはu-bootプロジェクトの中核機能をより詳細に調査することにしました」と説明しています。
「この調査により、信頼できないイメージの検証時に発生するサービス拒否(DoS)から任意コード実行に至るまで、影響度の異なる6件の脆弱性が明らかになりました」としています。
研究者によると、このうち2件の脆弱性はファームウェア検証中に任意コード実行につながる可能性があり、残る4件は脆弱なデバイスをクラッシュさせるために悪用される恐れがあるとのことです。
これらの脆弱性は、OS起動前にファームウェアイメージを検証するコードに影響を及ぼすものであるため、攻撃者がこの検証プロセスを悪用できれば、OSが読み込まれる前に悪意あるコードを実行できてしまう可能性があります。
公表された6件の脆弱性は以下の通りです。
- BRLY-2026-037: 悪意あるファームウェアイメージを処理する際にU-Bootをクラッシュさせる可能性がある脆弱性。一定の条件下では任意コード実行に悪用され得る。
- BRLY-2026-038: ファームウェア署名検証中に攻撃者が任意コードを実行できる可能性があるメモリ破損の脆弱性。
- BRLY-2026-039: U-Bootにファームウェアイメージの範囲外を読み込ませることでデバイスをクラッシュさせられる、範囲外読み取りの脆弱性。
- BRLY-2026-040: 特別に細工されたファームウェアイメージによってブートローダーをクラッシュさせられる、ヌルポインタ参照の脆弱性。
- BRLY-2026-041: 外部に保存されたファームウェアデータの検証が不適切なため、悪意あるファームウェアイメージの処理時にU-Bootがクラッシュする脆弱性。
- BRLY-2026-042: 利用可能なスタックメモリを枯渇させてブートローダーをクラッシュさせられる、無制限再帰の脆弱性。
Binarlyによると、脆弱なコードの大部分はU-Bootバージョン2013.07から存在しており、そのためこれらの脆弱性はプロジェクトの50を超えるリリースに影響を及ぼす可能性があるほか、脆弱なコードを自社ファームウェアに取り込んでいるベンダーにも影響が及ぶ恐れがあるとのことです。
「つまり、U-Bootプロジェクトの50を超える安定版リリースに影響が及ぶ可能性があるということです。多数のダウンストリームベンダーのフォークを合わせて考えると、これらの脆弱性は業界全体に大きな影響を与えます」とBinarlyは説明しています。
悪用に成功した場合、任意コード実行の脆弱性を突かれると、攻撃者はブート処理の最も初期の段階でコードを実行できるようになります。
これはOSが読み込まれる前に発生するため、攻撃者はファームウェアのセキュリティ機能を無効化したり、ブートプロセスを改変したり、永続的なファームウェアマルウェアをインストールしたりするなど、高い権限を伴う悪意ある行為を行える可能性があります。
Binarlyによれば、こうした悪意ある動作はOS起動前に実行されるため、検知が困難であるとのことです。
Binarlyは、これらの脆弱性の悪用には必ずしも物理的なアクセスが必要とは限らないとしています。リモートファームウェア更新に対応するBMCなどのシステムでは、すでに管理インターフェースを侵害している攻撃者が、特別に細工したファームウェアイメージをアップロードすることで脆弱性を悪用できる可能性があります。
Binarlyはこれらの脆弱性をU-Bootのメンテナーに報告し、6件すべての問題に対するパッチを提出しており、これらは既にプロジェクトの上流コードベースに取り込まれています。
ただし、U-Bootは各ハードウェアメーカーによって個別にファームウェアに組み込まれているため、修正がユーザーに届く前に、まずベンダー各社のファームウェア更新に取り込まれる必要があります。
もはやファームウェア更新の提供を受けていない旧型または サポート終了済みのデバイスについては、永久に修正されない可能性もあります。
攻撃者に先んじて、すべてのレイヤーをテストする
セキュリティチームが記録できている攻撃成功例は54%にとどまり、実際にアラートを発しているのはわずか14%に過ぎません。残りは環境内を検知されないまま通過しています。
Picusのホワイトペーパーでは、breach and attack simulation(侵害・攻撃シミュレーション)によってSIEMやEDRのルールをテストし、検知をすり抜ける脅威を防ぐ方法を紹介しています。