古いバージョンの lighttpd の出荷によって引き起こされる AMI MegaRAC ファームウェアの脆弱性

American Megatrends (AMI) の MegaRAC ファームウェアに脆弱性が確認されました。このファームウェアは、サーバー メーカーが自律的な機器管理を組織するために使用する BMC (ベースボード管理コントローラー) コントローラーで使用されており、認証されていない攻撃者がリモートからサーバーのメモリの内容を読み取ることができます。 Web インターフェイスの機能を提供するプロセス。この脆弱性は 2019 年以降にリリースされたファームウェアに存在し、パッチが適用されていない脆弱性を含む古いバージョンの Lighttpd HTTP サーバーが出荷されたことが原因で発生します。

Lighttpd コードベースでは、この脆弱性は 2018 年にバージョン 1.4.51 で修正されましたが、修正は CVE 識別子を割り当てず、脆弱性の性質を説明するレポートも公開せずに行われました。リリース ノートではセキュリティ修正について言及していますが、「..」および「.」文字の使用に関連する mod_userdir の脆弱性に焦点を当てていました。ユーザー名に。

変更点のリストには、HTTP ヘッダーの処理に関する問題についても言及されていましたが、この修正はファームウェア開発者によって見逃され、製品には転送されませんでした。これは、use-after-free クラスの脆弱性が排除される可能性に関する注記が、コミットのテキスト、および一般リストでは、解放後のメモリ アクセスでエラーが発生したことを示す変更は行われていません。

この脆弱性により、メモリの内容が割り当てられたバッファの外で読み取られる可能性があります。この問題は、「If-Modified-Since」HTTP ヘッダーの複数のインスタンスを指定するときに使用される HTTP ヘッダー結合コードのバグが原因で発生します。ヘッダーの 2 番目のインスタンスを処理するときに、lighttpd はマージされた値を保持するために新しいバッファーを割り当て、最初のヘッダーの値を含むバッファーのメモリを解放しました。この場合、con->request.http_if_modified_since ポインタは変更されず、既に解放されたメモリ領域を指し続けました。

このポインタは、If-Modified-Since ヘッダーの内容を比較する操作で使用され、その結果、さまざまなリターン コードが生成されたため、攻撃者は、以前に保存されていたメモリの新しい内容を総当たりで推測する可能性があります。最初のバッファによって占有されます。この問題は、ASLR (アドレス空間ランダム化) などのセキュリティ メカニズムをバイパスするメモリ レイアウトを決定するなど、他の脆弱性と組み合わせて使用​​される可能性があります。

この脆弱性の存在は、Lenovo および Intel サーバー プラットフォームで確認されていますが、これらのファームウェアを使用する製品のサポート期間が終了していることと、脆弱性の重大度が低いため、これらの企業はファームウェアのアップデートをリリースする予定はありません。この問題は、Intel M70KLP および Lenovo HX3710、HX3710-F、および HX2710-E プラットフォームのファームウェアで発生します (特に、最新のファームウェア バージョン Lenovo 2.88.58 および Intel 01.04.0030 に脆弱性が存在します)。さらに、lighttpd の脆弱性は、Supermicro 機器のファームウェアや、Duluth および AETN の BMC コントローラを使用するサーバーにも現れることが報告されています。

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

コメントを追加します