新たに公開されたU-Bootの6件の脆弱性が、組み込みシステムやルーター、IoTデバイス、そしてデータセンターのサーバーで使われるBaseboard Management Controller(BMC)など、最も広く導入されているブートローダーの一つに影響を及ぼすことが判明しました。
これらの脆弱性は、U-BootのVerified Boot機能とRoot of Trust(RoT)保護の中核をなすメカニズムであるFIT(Flattened Image Tree)署名検証ロジックに存在します。
U-Bootはブートチェーンの早い段階で実行されるため、ここに脆弱性があると、その後に続くファームウェア実行のあらゆる段階が損なわれる可能性があります。
Binarlyがv2026.04を対象に行った分析によると、影響を受けるコードの大部分はv2013.07から存在しており、これは50を超える安定版リリースに加え、無数のベンダーフォークにも影響が及ぶ可能性があることを意味します。
6件の脆弱性のうち、2件は任意コード実行を可能にするもので、残る4件はサービス拒否(DoS)攻撃を引き起こします。
BRLY-2026-037は、関数fdt_find_regions内のNULLポインタ参照外しの脆弱性で、FIT解析中にfdt_get_nameがNULLを返した際に発生します。メモリレイアウト次第では、単純なクラッシュにとどまらず、アドレス0x0の制御と組み合わせることでスタックベースのバッファオーバーフローにまで発展する可能性があります。
BRLY-2026-038は同じ関数内のスタックバッファアンダーフローで、長さの値の代わりに負のエラーコードが返されることでポインタが逆方向に移動し、最終的にリターンアドレスを上書きして完全なコード実行を可能にします。この挙動はQEMU ARM上で実証されています。
BRLY-2026-039は、「hashed-strings」プロパティ内のサイズフィールドが検証されないことに起因するDoS脆弱性で、攻撃者はU-Bootにイメージ境界を最大4GBも超えて読み込ませることが可能になります。
BRLY-2026-040は、バージョンヘッダーが古いイメージのFDTプロパティを解析する際に発生するNULLポインタ参照外しの脆弱性です。
BRLY-2026-041は、外部データのオフセットとサイズのフィールドが検証されないことに起因し、攻撃者はハッシュ検証の対象を境界外メモリに向けたり、巨大な読み込みサイズを要求したりすることが可能になります。
最後に、BRLY-2026-042はフォーマット検証中のfdt_check_no_atにおける無制限の再帰処理に関する脆弱性です。ネストされたノード1つあたりのイメージサイズはわずか12バイトで済む一方、再帰呼び出し1回につき16バイト以上のスタックを消費するため、攻撃者はデバイスの利用可能なRAM容量にかかわらず、確実にスタックを枯渇させることができます。
6件すべての脆弱性は、信頼されていないFITイメージの処理中、しかも検証が完了する前の段階でトリガーされます。つまり、悪意のあるイメージは真正性チェックを通過する必要すらなく、被害を引き起こせるということです。
悪用には物理的なアクセスが必要だと考えられがちですが、Binarlyが以前にSupermicroのBMCについて行った調査では、リモートの攻撃者がファームウェア更新の仕組みを悪用し、ハードウェアに直接触れることなく悪意のあるイメージを送り込める場合があることが示されています。
影響の内容は脆弱性の種類によって異なります。DoS系の不具合はデバイスを事実上使用不能にしてしまい、復旧にはSPIチップの物理的な再書き込みが必要になることもあります。一方、コード実行系の脆弱性ははるかに危険で、攻撃者がブートの最も早い段階で悪意のあるコードを実行できてしまいます。
これにより、結果として仕込まれるインプラントは極めて隠密性が高く、従来の手法では検出が難しいものになります。
Binarlyはこれらの問題をU-Bootのセキュリティポリシーに基づいて報告し、開示プロセスの当初は難航したものの、最終的にメンテナーのSimon Glass氏とTom Rini氏と直接協力し、パッチを開発してU-Bootのmasterブランチにマージしました。
修正はすべて現在公開されており、影響を受けるベンダーやデバイスメーカーには速やかな適用が呼びかけられています。
Binarlyは、U-Bootの分析を自社のTransparency PlatformおよびVulHunt APIにどのように組み込み、今後こうした種類の不具合を大規模に検出できるようにしたかを詳しく解説する続報を予定しています。
翻訳元: https://cyberpress.org/u-boot-fit-signature-flaws/