最近 GRUB8ブートローダーの2つの脆弱性に関する情報がリリースされましたその UEFIセキュアブートメカニズムをバイパスし、未検証のコードを実行できるようにしますたとえば、ブートローダーまたはカーネルレベルで実行されるマルウェアを注入します。
ほとんどのLinuxディストリビューションでは、UEFIセキュアブートモードでの検証済みブートには、Microsoftデジタル署名によって認定された小さな補正レイヤーが使用されることに注意してください。
このレイヤーは、GRUB2を独自の証明書と照合して検証するため、開発者はすべてのGRUBカーネルを認証してMicrosoftに更新する必要はありません。
それと共に GRUB2の脆弱性により、検証後の段階でコードを実行できます 修復は成功しますが、オペレーティングシステムが読み込まれる前に、セキュアブートがアクティブなときに信頼の鎖に適合し、別のオペレーティングシステムの起動を含む後続の起動プロセスを完全に制御し、オペレーティングシステムのコンポーネントシステムを変更し、保護ロックをバイパスします。
BootHoleの脆弱性の場合のように 昨年から、 ブートローダーを更新するだけでは問題をブロックできません攻撃者は、使用しているオペレーティングシステムに関係なく、デジタル署名で認定された古い脆弱なバージョンのGRUB2を備えたブートメディアを使用して、UEFIセキュアブートを危険にさらす可能性があります。
この問題は、取り消された証明書のリストを更新することによってのみ解決されます (dbx、UEFI失効リスト)。ただし、この場合、Linuxで古いインストールメディアを使用する機能は失われます。
失効した証明書のリストが更新されたファームウェアを備えたシステムでは、更新されたLinuxディストリビューションのセットはUEFIセキュアブートモードでのみロードできます。
ディストリビューションは、インストーラー、ブートローダー、カーネルパッケージ、fwupdファームウェア、および補正レイヤーを更新して、それらの新しいデジタル署名を生成する必要があります。
ユーザーは、インストールイメージやその他のブートメディアを更新する必要があります UEFIファームウェアの証明書失効リスト(dbx)をダウンロードします。 UEFIでdbxが更新されるまで、オペレーティングシステムに更新プログラムがインストールされているかどうかに関係なく、システムは脆弱なままです。
派生した問題を解決するには 取り消された証明書の配布の 将来的にはSBATメカニズムを使用する予定です (UEFI Secure Boot Advanced Targeting)は、GRUB2、shim、およびfwupdをサポートするようになり、将来のアップデートでdbxtoolパッケージによって提供される機能を置き換えます。 SBATは UEFIコンポーネントの実行可能ファイルに新しいメタデータを追加するためにMicrosoftと共同で開発されました、製造元、製品、コンポーネント、およびバージョン情報が含まれます。
特定された脆弱性のうち:
- CVE-2020-14372-GRUB2のacpiコマンドを使用すると、ローカルシステムの特権ユーザーは、SSDT(セカンダリシステム記述テーブル)を/ boot / efiディレクトリに配置し、grub.cfgの設定を変更することにより、変更されたACPIテーブルをロードできます。
- CVE-2020-25632: rmmodコマンドの実装ですでに解放されている(解放後の使用)メモリ領域へのアクセス。これは、関連する依存関係を考慮せずにモジュールをダウンロードしようとしたときに現れます。
- CVE-2020-25647: USBデバイスを初期化するときに呼び出されるgrub_usb_device_initialize()関数のバッファ制限を書き出します。 この問題は、USB構造に割り当てられたバッファーのサイズと一致しないパラメーターを生成する特別に準備されたUSBデバイスを接続することで悪用される可能性があります。
- CVE-2020-27749: grub_parser_split_cmdline()のバッファオーバーフロー。これは、GRUB1コマンドラインで2KBを超える変数を指定することによって発生する可能性があります。 この脆弱性により、セキュアブートを経由せずにコードを実行できる可能性があります。
- CVE-2020-27779: cutmemコマンドを使用すると、攻撃者はメモリからアドレスの範囲を削除して、セキュアブートをバイパスできます。
- CVE-2021-3418: shim_lockの変更により、昨年のCVE-2020-15705の脆弱性を悪用するための追加のベクトルが作成されました。 GRUB2の署名に使用する証明書をdbxにインストールすることにより、GRUB2は、署名を検証せずに任意のカーネルを直接ロードできるようにしました。
- CVE-2021-20225: 多数のオプションを使用してコマンドを実行するときに、バッファーからデータを書き込む機能。
- CVE-2021-20233: 引用符を使用するときにバッファサイズが正しく計算されないために、バッファからデータを書き出す機能。 サイズを計算するとき、実際にはXNUMX文字が必要ですが、一重引用符をエスケープするにはXNUMX文字が必要であると想定されました。