Multiple OpenSSL Vulnerabilities Exposes Sensitive Data in RSA KEM Handling
2026/04/08 CyberSecurityNews — OpenSSL が 2026年4月のセキュリティ・アップデートとして公開したのは、サポート対象ブランチにおける 7 件の脆弱性の修正である。その中でも、RSA KEM RSASVE カプセル化処理における Medium レベルの脆弱性 CVE-2026-31790 は、初期化されていないメモリを攻撃者に露出する可能性があるものだ。このアドバイザリが、影響を受ける 3.x 系列ユーザーに対して推奨するのは、利用中のブランチに応じた OpenSSL 3.0.20/3.3.7/3.4.5/3.5.6/3.6.2 へのアップグレードである。

OpenSSL 脆弱性によるデータ露出
前述のとおり、最も深刻な脆弱性 CVE-2026-31790 は、RSA/RSASVE で EVP_PKEY_encapsulate() を使用し、攻撃者が提供する RSA 公開鍵を検証せずに処理するアプリケーションに影響を及ぼす。
OpenSSL によると、根本的な原因は戻り値のチェックの誤りである。RSA_public_encrypt() は失敗時に “-1” を返すが、該当コードはゼロ以外かどうかのみを確認していた。そのため、暗号化が失敗しても、処理が成功したように見える状態にあった。
このロジック不備が危険な結果を招くのは、呼び出し元が指定する暗号文バッファを利用するケースとなる。RSA 処理が失敗しても、API は出力長を設定して、正常終了として制御を返す。その結果、暗号文バッファ内に古いデータや未初期化バイトが残存した状態で、相手に送信される可能性がある。
OpenSSL が警告するのは、これらのバイトに過去のプロセス実行時に残った、機密データが含まれる可能性があることだ。それにより、単なる暗号処理の失敗が情報漏洩に転じる恐れがある。
この脆弱性は、OpenSSL の 3.0/3.3/3.4/3.5/3.6 に影響するが、OpenSSL 1.0.2/1.1.1 には影響を及ぼさない。ただし、バージョン 3.0/3.3/3.4/3.5/3.6 の FIPS モジュールも対象となるため、一般用途だけでなく規制環境にも影響が及ぶ。
暫定的な対策として OpenSSL が推奨するのは、EVP_PKEY_encapsulate() 呼び出しの前に、EVP_PKEY_public_check() または EVP_PKEY_public_check_quick() を実行することである。
攻撃を成立させるためには、不正な公開鍵を受け入れる必要があるため、この対策は重要である。すでに公開鍵の検証を実施している環境はリスクが低いが、鍵を暗黙的に信頼するアプリケーションは、この脆弱性の影響を受けやすい。
その他の修正脆弱性
RSASVE の Medium レベルの脆弱性に加えて、OpenSSL は 6 件の Low レベルの脆弱性も修正している。
- CVE-2026-28386:AVX-512/VAES 対応 x86-64 環境における AES-CFB-128 の境界外読み取り
- CVE-2026-28387:DANE クライアント設定における use-after-free
- CVE-2026-28388:delta CRL の NULL 参照
- CVE-2026-28389/CVE-2026-28390:CMS の KeyAgreeRecipientInfo/KeyTransportRecipientInfo 処理における NULL 参照
- CVE-2026-31789:32-bit 環境における OCTET STRING 変換時のヒープバッファ・オーバーフロー
これらの問題は、主に DoS を引き起こすものであり、証明書/CMS オブジェクト/CRL/公開鍵などの不正入力を処理する際に、パースやエラー・ハンドリングの経路が攻撃面となる典型的なリスクを示している。
影響範囲と対応
メールゲートウェイ/証明書処理ツール/S/MIME サービス/KEM API を利用するカスタム・アプリケーションも、この脆弱性の影響を受ける。この更新がセキュリティ・チームに再認識させるのは、OpenSSL の影響範囲が TLS 終端に限定されないことである。
脆弱性 CVE-2026-31790 は、2026年2月23日に Red Hat の Simo Sorce により報告され、Nikola Pajkovsky により修正された。
影響を受ける環境を運用している組織は、速やかにパッチを適用すべきである。さらに、外部またはユーザーから提供される公開鍵を扱うワークフローでは、明示的な公開鍵検証を追加する必要がある。
訳者後書:今回のセキュリティ・アップデートにおいて、OpenSSL 3.x 系列のコード内で関数の戻り値を確認する際のロジック不備に起因する、脆弱性 CVE-2026-31790 が修正されました。具体的には、RSA 暗号化を行う関数が失敗した際に返す “-1” という値を、正しくエラーとして処理せず、成功と誤認して処理を継続するバグが生じています。その結果として、暗号化が失敗した場合において、バッファ内に残っていた未初期化のデータや過去の機密情報などが、そのまま相手に送信されてしまう恐れがあります。ご利用のチームは、ご注意ください。よろしければ、OpenSSL での検索結果も、ご参照ください。
You must be logged in to post a comment.