Critical Shim Bug Impacts Every Linux Boot Loader Signed In The Past Decade
2024/02/07 SecurityAffairs — shim のバージョン 15.8 がリリースされ、6つの脆弱性が修正された。これらの脆弱性のうち、最も深刻な脆弱性が CVE-2023-40547 (CVSS:9.8) である。特定の状況下において、この http ブート・サポートの脆弱性は、Secure Boot のバイパスにつながり、リモート・コード実行を引き起こす可能性を持つ。
NVD のアドバイザリには、「shim における、リモート・コード実行の脆弱性が発見された。shim のブート・サポートは、HTTP レスポンスを解析する際に、攻撃者が操作する値を信頼してしまう。この脆弱性により、攻撃者による悪意の HTTP リクエストの作成が可能となり、完全に制御された境界外書き込みプリミティブと、完全なシステム侵害につながる可能性がある」と記されている。
shim というコンパクトなコードは、大半の Linux ディストリビューションにおいて、Secure Boot をサポートするブートプロセスで使用されるものである。
Shim が頻繁に採用されるケースは、ブートローダもしくは OS カーネルのいずれかが、UEFI ファームウェアが認識する署名を欠いている場合となる。ファームウェアが信頼する鍵で署名された shim により、署名されていないブートローダやカーネルのロード/実行が可能になる。
この脆弱性の発見者は、Microsoft Security Response Center (MSRC) の Bill Demirkapi だ。
Eclypsium の投稿には、「Microsoft Security Response Center の Bill Demirkapi によって、この脆弱性が発見/報告された。具体的に言うと、HTTP プロトコルの処理に起因するものであり、境界外書き込みを引き起こし、システムの完全な侵害につながる可能性がある」と記されている。
この脆弱性は、過去 10年間に署名された、すべての Linux ブートローダーに影響すると、Demirkapi は警告している。
Eclypsium の研究者たちは、以下の攻撃シナリオを公開した:
攻撃者は、MiTM (Man-in-the-Middle) 攻撃を実行し、HTTP ブートをサポートするファイルを提供しながら、被害者と HTTP サーバの間の HTTP を傍受する。この攻撃は、被害者と正当なサーバの間に位置する、どのネットワーク・セグメントからでも実行できる。
さらに、十分な権限を持つ攻撃者は、この問題をトリガーにして、ライブ Linux USB スティックを悪用することで、EFI 変数/EFI パーティション上のデータを操作できる。そして、ブート順序を変更し、リモートから脆弱な shim をシステムにロードさせることで、 Secure Boot を無効化することもなく、同じリモート・サーバから特権コードを実行できるようになる。
続いて、第3の攻撃経路では、同じネットワーク上の攻撃者が、PXE を操作することで、脆弱な shim ブートローダをチェーン・ロードできる。この脆弱性を悪用すると、カーネルがロードされる前に、攻撃者によるシステムの制御が可能になる。その結果として特権アクセスが生じ、カーネルやオペレーティング・システムで実装されている、あらゆる制御をバイパスできるようになる。
Eclypsium は、「この脆弱性の悪用に成功した攻撃者は、カーネルがロードされる前にシステムの制御を得ることになり、特権的なアクセスと、カーネルとオペレーティング・システムにより実装された、あらゆる制御を回避する能力を得る」と述べている。
今回の shim アップデートでは、CVE-2023-40547 の他にも、以下の5つの脆弱性が修正された:
- CVE-2023-40546:LogError() の呼び出し (NULL ポインタの非参照) の脆弱性
- CVE-2023-40548:32 Bit システム上の SBAT セクションサイズに関する、整数オーバーフロー (ヒープ・オーバーフロー) の脆弱性
- CVE-2023-40549:PE バイナリをロードする際の、境界外読み込みの脆弱性
- CVE-2023-40550:SBAT 情報を検証する際の、境界外読み込みの脆弱性
- CVE-2023-40551:MZ バイナリの境界チェックの脆弱性
文中にもあるように、shim は、とてもシンプルな構造になっているようですね。shim について検索してみたら、技評に「Ubuntuにおけるセキュアブートの仕組み」という記事があり、「shim は GRUB などの他のブートローダーの署名を検証した上で起動するだけのブートローダーである。Microsoftによる署名処理を少なくするために、できる限りシンプルに作られている」と記されていました。とにかく、アップデートを、お急ぎください。よろしければ、UEFI で検索も、ご利用ください。


You must be logged in to post a comment.