Critical OpenSSL Vulnerabilities Enable Remote Code Execution Attacks
2026/06/10 CyberSecurityNews — 2026年6月9日に公開された OpenSSL のセキュリティ・アドバイザリは、特別に細工された PKCS7 または S/MIME 署名メッセージをアプリケーションが処理した場合に発生し得る、リモート・コード実行の脆弱性について警告している。この脆弱性 CVE-2026-45447 (深刻度 High) は、PKCS7_verify 関数に存在するヒープ use-after-free バグに起因する。それにより、メモリ破壊が引き起こされ、特定のデプロイ環境では任意のコード実行に至る可能性がある。

この問題は、署名メッセージに空の SignedData.digestAlgorithms ASN.1 SET が含まれる場合に発生する。この状態で、OpenSSL が呼び出し元アプリケーションが所有する BIO オブジェクトを解放しても、アプリケーション側は変更を認識しない状態を継続する。
その後に、アプリケーションが同一の BIO を再利用または解放すると、use-after-free 状態が発生し得る。アロケータの挙動および BIO の管理方法によっては、クラッシュ/ヒープ破壊/制御可能なエクスプロイトへとつながる可能性がある。
重大な OpenSSL RCE 脆弱性
この脆弱性が影響を及ぼす範囲は、OpenSSL の PKCS7 API を用いて PKCS7 または S/MIME 署名の検証を行うアプリケーションとなる。その一方で、同様の機能を CMS API に依存して実装している場合には影響は生じない。
アドバイザリによると、OpenSSL のバージョン 4.0/3.6/3.5/3.4/3.0/1.1.1/1.0.2 が影響を受けるため、各ブランチに対する修正版が提供されている。
管理者に強く推奨されるのは、OpenSSL 4.0.1/3.6.3/3.5.7/3.4.6/3.0.21 へのアップグレードである。また、レガシー系の延長サポートを利用しているユーザーは、1.1.1zh または 1.0.2zq へと移行する必要がある。
なお、4.0/3.6/3.5/3.4/3.0 の FIPS モジュールは、この問題の影響を受けない。その理由は、脆弱なコードが FIPS 境界の外側に存在しているからである。
このアドバイザリでは、重大な PKCS7 のバグに加えて、OpenSSL コードベースの多様な領域に影響する複数の脆弱性についても説明されている。これらは、High 〜 Medium レベルの深刻度に分類される。
具体的には、CMS AuthEnvelopedData 処理における欠陥による、不正な認証の付与や整合性バイパスの問題および、QUIC のロジック不備によるメモリ枯渇や、NULL ポインタ参照を通じたサービス拒否が含まれる。
さらに、低レベル EVP_Cipher インターフェイスを使用した場合に発生する、IV (Initialization Vector) 無視による AES-OCB の誤用問題があり、これにより nonce の一意性およびタグの真正性が破綻する。
その他にも、ASN.1 パースの複数のバグ/PKCS12 の PBMAC1 検証の問題/CMS のパスワードベース復号の不備/CMP 処理の欠陥なども含まれる。これらの多くは、主にサービス拒否を引き起こすが、より高度な暗号攻撃につながる可能性もある。
OpenSSL の TLS/QUIC/CMS/PKCS7/HPKE/S/MIME などのプロトコルは、それぞれの脆弱性/設定/機能の使用状況に応じて異なる影響を受ける。
ただし、最も危険な暗号関連の弱点の一部は、低レベル EVP プリミティブを使用するカスタム・アプリケーションや、OpenSSL 上に独自のメッセージング・プロトコルを実装しているケースに限定される。
特に、厳格な入力検証を行っていない場合や、エラー・コードをオラクルとして利用する設計においてリスクが高まる。
OpenSSL チームが推奨するのは、最新バージョンへのパッチ適用に加え、PKCS7/CMS/QUIC/AES-OCB/AES-SIV/PKCS12 ワークフローの使用状況を監査し、高リスクな露出を特定することだ。
アップグレードが遅れる場合の暫定的なハードニング措置として、OCSP stapling や脆弱な PKCS7 ベースの処理経路などの、不要な機能を無効化することが推奨される。
訳者後書:OpenSSL の脆弱性 CVE-2026-45447 の原因は、PKCS7_verify 関数において、空のデータを含む特別なメッセージを処理する際のメモリ管理の不備にあります。この欠陥により、内部で BIO というオブジェクトが解放された後も、アプリケーション側が事実を認識できずに再利用してしまう use-after-free という状態が引き起こされます。その結果、メモリの破壊が発生し、最悪の場合には外部から任意のプログラムを実行されてしまう危険性が生まれます。ご利用のチームは、ご注意ください。よろしければ、OpenSSL での検索結果も、ご参照ください。
You must be logged in to post a comment.