リモートコード実行につながるstrongSwan IPsecの脆弱性

Linux、Android、FreeBSD、macOS で使用される IPSec ベースの VPN パッケージである StrongSwan には、攻撃者によるリモート コード実行に悪用される可能性のある脆弱性 (CVE-2023-41913) があります。 この脆弱性は、Key Exchange (IKE) プロトコルの TKMv2 (Trusted Key Manager) 実装を備えた charon-tkm プロセスのバグが原因で、特別にフォーマットされた DH (Diffie-Hellman) スキーム値を処理するときにバッファ オーバーフローが発生します。 この脆弱性は、charon-tkm および StrongSwan リリース 5.3.0 以降を使用するシステムでのみ発生します。 この問題は、strongSwan 5.9.12 アップデートで修正されています。 5.3.x 以降のブランチの脆弱性を修正するためのパッチも用意されています。

このエラーは、パブリック Diffie-Hellman 値をスタック上の固定サイズのバッファにコピーする前にそのサイズをチェックしないことが原因で発生します。 オーバーフローは、認証なしで処理される特別に作成された IKE_SA_INIT メッセージを送信することによって開始される可能性があります。 StrongSwan の古いバージョンでは、サイズ チェックは KE ペイロード ハンドラー (キー交換) で実行されていましたが、バージョン 5.3.0 では、パブリック値のチェックを DH プロトコル ハンドラー側に移動する変更が追加されました ( Diffie-Hellman) を追加し、既知のグループの妥当性チェックを簡素化する汎用関数を追加しました。 見落としにより、IKE プロセスと TKM (Trusted Key Manager) の間のプロキシとして機能する charon-tkm プロセスに新しいチェック関数を追加するのを忘れていました。その結果、memcpy() 関数に未チェックの値が含まれていました。これにより、512 バイトのバッファ データに最大 10000 バイトを書き込むことができました。

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

コメントを追加します