公開日:2022/03/16 最終更新日:2024/02/26

JVNVU#90813125
OpenSSLのBN_mod_sqrt()における法が非素数のときに無限ループを引き起こす問題

概要

OpenSSLのBN_mod_sqrt()には、法が非素数の場合、無限ループを引き起こす問題があります。

影響を受けるシステム

  • OpenSSL 1.0.2zdより前の1.0.2系のバージョン
  • OpenSSL 1.1.0系すべてのバージョン
  • OpenSSL 1.1.1nより前の1.1.1系のバージョン
  • OpenSSL 3.0.2より前の3.0系のバージョン

詳細情報

OpenSSL Projectより、OpenSSL Security Advisory [15 March 2022]が公開されました。
深刻度 - 高(Severity: High)
OpenSSLのBN_mod_sqrt()は有限体における平方根を計算します。BN_mod_sqrt()には、法が非素数の場合、無限ループを引き起こす問題があります。
BN_mod_sqrt()は圧縮形式の楕円曲線暗号の公開鍵を含む証明書、もしくは圧縮形式でエンコードされた基準点(Base Point)を持つ楕円曲線パラメータを含む証明書をパースする際に使用されます。また、OpenSSLは証明書の署名を検証する前に証明書をパースするため、外部から受け取った証明書をパースする際、無限ループを引き起こされる可能性があります。同様に、秘密鍵に楕円曲線パラメータを含んでいる場合にも細工された秘密鍵をパースすることで無限ループを引き起こされる可能性があります。
この問題は次の状況で起こる可能性があります。

  • TLSクライアントがサーバ証明書を処理する
  • TLSサーバがクライアント証明書を処理する
  • ホスティングサービス事業者が顧客から受け取った証明書や秘密鍵を処理する
  • 認証局が契約者から受け取ったCSR (証明書署名要求) データを処理する
  • その他、ASN.1形式の楕円曲線パラメータを処理する場合

想定される影響

不正な楕円曲線パラメータを含む証明書や秘密鍵などをパースすることで無限ループを引き起こされ、サービス運用妨害(DoS)状態になる可能性があります。

対策方法

アップデートする
開発者が提供する情報をもとに、最新版へアップデートしてください。
開発者は、本脆弱性への対策版として次のバージョンをリリースしています。

  • OpenSSL 1.0.2zd (プレミアムサポートを契約したユーザのみ)
  • OpenSSL 1.1.1n
  • OpenSSL 3.0.2
OpenSSL 1.0.2系はサポートが終了しているため、プレミアムサポートを契約したユーザを除きアップデートは提供されません。
OpenSSL 1.1.0系はサポートが終了しており、アップデートは提供されません。
開発者は、OpenSSL 1.0.2プレミアムサポートを契約したユーザ以外に対しては、OpenSSL 3.0系もしくは1.1.1系へのアップデートを推奨しています。

ベンダ情報

ベンダ ステータス ステータス
最終更新日
ベンダの告知ページ
三菱電機株式会社 該当製品あり 2022/08/02 三菱電機株式会社 の告知ページ
図研エルミック株式会社 該当製品無し 2022/03/30
日本電気株式会社 該当製品あり 2024/02/26

参考情報

JPCERT/CCからの補足情報

JPCERT/CCによる脆弱性分析結果

謝辞

関連文書

JPCERT 緊急報告
JPCERT REPORT
CERT Advisory
CPNI Advisory
TRnotes
CVE
JVN iPedia

更新履歴

2022/03/30
図研エルミック株式会社のベンダステータスが更新されました
2022/05/12
三菱電機株式会社のベンダステータスが更新されました
2022/08/02
三菱電機株式会社のベンダステータスが更新されました
2022/09/07
日本電気株式会社のベンダステータスが更新されました
2022/12/13
日本電気株式会社のベンダステータスが更新されました
2023/03/28
日本電気株式会社のベンダステータスが更新されました
2023/07/03
日本電気株式会社のベンダステータスが更新されました
2023/09/01
日本電気株式会社のベンダステータスが更新されました
2024/02/26
日本電気株式会社のベンダステータスが更新されました