複数のOpenSSL脆弱性がRSA KEM処理における機密データを露出

新たに開示されたOpenSSLの脆弱性により、攻撃者は機密データをアプリケーションメモリから直接アクセスできる可能性があります。

CVE-2026-31790として追跡されているこの中程度の重大度の脆弱性は、RSA Key Encapsulation Mechanism(KEM)RSASVEのカプセル化処理に影響します。

OpenSSLは2026年4月7日にセキュリティアドバイザリを発行し、ユーザーに直ちにパッチを適用するよう促しています。根本的な問題は、暗号化プロセスにおける不適切なエラーハンドリングを中心にしています。

アプリケーションがRSASVEキーカプセル化を使用して秘密暗号化キーを確立する場合、特定の関数に依存して成功を検証します。残念ながら、コーディングの誤りにより、システムが戻り値を不適切に検証します。

エクスプロイトの仕組み

脆弱性はRSA_public_encrypt()関数内に存在し、成功時に書き込まれたバイト数を返すか、エラー時に-1を返すはずです。

しかし、影響を受けたコードは戻り値が非ゼロかどうかのみをチェックします。RSA暗号化が失敗して-1を返す場合、システムはそれを非ゼロの成功として誤って登録します。

この誤検知により、カプセル化プロセスは継続されます。アプリケーションは出力長を設定し、暗号文バッファを有効なキーが生成されたかのように処理します。

攻撃者が無効なRSA公開キーを提供し、アプリケーションがそれを最初に検証できない場合、システムはエラーを処理し、バッファの初期化されていない内容を攻撃者に漏らします。

この古いメモリには、以前のアプリケーションプロセスから非常に機密性の高いデータが含まれている可能性があります。

Red HatのSimo Sorceが2026年2月にこの脆弱性を報告し、Nikola Pajkovskyが修正を開発しました。OpenSSLの古いバージョン、特に1.0.2および1.1.1は、このバグの影響を全く受けません。

影響を受けたバージョン(それぞれのFIPSモジュールを含む)を実行している場合、最新のパッチリリースにアップグレードする必要があります。

利用可能なセキュリティアップデートは以下の通りです:

  • OpenSSL 3.0ユーザーは3.0.20にアップグレードしてください
  • OpenSSL 3.3ユーザーは3.3.7にアップグレードしてください
  • OpenSSL 3.4ユーザーは3.4.5にアップグレードしてください
  • OpenSSL 3.5ユーザーは3.5.6にアップグレードしてください
  • OpenSSL 3.6ユーザーは3.6.2にアップグレードしてください

システムに直ちにパッチを当てられない管理者は、コードレベルの回避策を実装できます。開発者は、処理前にアプリケーションが公開キーを検証することを確認する必要があります。

具体的には、EVP_PKEY_encapsulate()を実行する前にEVP_PKEY_public_check()またはEVP_PKEY_public_check_quick()を呼び出すことで、脆弱性を正常に軽減し、メモリリークをブロックできます。

翻訳元: https://gbhackers.com/multiple-openssl-flaws-expose-sensitive-data/

ソース: gbhackers.com