UEFI セキュア ブート保護をバイパスできる GRUB2 の XNUMX つの脆弱性

GRUB2 ブートローダーの XNUMX つの脆弱性に関する情報が公開されました。これらの脆弱性は、特別に設計されたフォントを使用し、特定の Unicode シーケンスを処理するときにコードの実行につながる可能性があります。 脆弱性を利用して、UEFI セキュア ブート検証済みブート メカニズムをバイパスすることができます。

特定された脆弱性:

  • CVE-2022-2601 - pf2 形式で特別に設計されたフォントを処理するときに grub_font_construct_glyph() 関数でバッファ オーバーフローが発生します。これは、max_glyph_size パラメータの誤った計算と、明らかに必要よりも小さいメモリ領域の割り当てが原因で発生します。グリフを収容します。
  • CVE-2022-3775 特別なスタイルのフォントで一部の Unicode シーケンスをレンダリングすると、範囲外書き込みが発生します。 この問題はフォント処理コードにあり、グリフの幅と高さが利用可能なビットマップのサイズと一致するかどうかを適切にチェックしていないことが原因です。 攻撃者は、データの末尾が割り当てられたバッファの外側に書き込まれるような方法で入力を作成する可能性があります。 脆弱性の悪用は複雑であるにもかかわらず、コードの実行に問題が生じる可能性が排除されないことに注意してください。

修正はパッチとして公開されています。 ディストリビューションの脆弱性の排除状況は、Ubuntu、SUSE、RHEL、Fedora、Debian のページで評価できます。 GRUB2 の問題を修正するには、パッケージを更新するだけでは十分ではなく、新しい内部デジタル署名を生成し、インストーラー、ブートローダー、カーネル パッケージ、fwupd ファームウェア、および shim レイヤーを更新する必要もあります。

ほとんどの Linux ディストリビューションは、UEFI セキュア ブート モードでの検証済みブートのために、Microsoft によってデジタル署名された小さな shim レイヤーを使用します。 この層は、独自の証明書を使用して GRUB2 を検証します。これにより、ディストリビューション開発者は、すべてのカーネルと GRUB アップデートを Microsoft によって認定される必要がなくなります。 GRUB2 の脆弱性により、シム検証が成功した後、オペレーティング システムをロードする前の段階でコードが実行され、セキュア ブート モードがアクティブなときに信頼チェーンに割り込み、以降のブート プロセスを完全に制御できるようになります。別の OS をロードし、オペレーティング システム コンポーネント システムを変更し、ロックダウン保護をバイパスします。

デジタル署名を取り消さずに脆弱性をブロックするために、ディストリビューションは SBAT (UEFI Secure Boot Advanced Targeting) メカニズムを使用できます。このメカニズムは、最も一般的な Linux ディストリビューションの GRUB2、shim、および fwupd でサポートされています。 SBAT は Microsoft と共同開発され、メーカー、製品、コンポーネント、バージョンに関する情報を含む追加のメタデータを UEFI コンポーネントの実行可能ファイルに追加することが含まれます。 指定されたメタデータはデジタル署名で証明されており、UEFI セキュア ブートの許可または禁止コンポーネントのリストに個別に含めることができます。

SBAT を使用すると、セキュア ブートのキーを取り消すことなく、個々のコンポーネントのバージョン番号に対するデジタル署名の使用をブロックできます。 SBAT による脆弱性のブロックには、UEFI 証明書失効リスト (dbx) の使用は必要ありませんが、内部キーを置き換えて署名を生成し、GRUB2、shim、およびディストリビューションによって提供されるその他のブート アーティファクトを更新するレベルで実行されます。 SBAT が導入される前は、証明書失効リスト (dbx、UEFI 失効リスト) を更新することが、脆弱性を完全にブロックするための前提条件でした。これは、攻撃者が、使用されているオペレーティング システムに関係なく、古い脆弱なバージョンの GRUB2 が含まれるブータブル メディアを使用する可能性があるためです。デジタル署名によって認証され、UEFI セキュア ブートを侵害します。

出所: オープンネット.ru

コメントを追加します