JPCERTコーディネーションセンター(JPCERT/CC: Japan Computer Emergency Response Team Coordination Center)は12月16日、「JVNVU#90127554: OpenSSLのlibsslにおけるX509_verify_cert()内部エラーの不正な処理」において、OpenSSLの内部関数の戻り値処理に問題が発覚し、セキュリティアドバイザリがリリースされたこと伝えた。この問題によって、OpenSSLを利用しているアプリケーションが正常に動作しなくなる恐れがあるという。

OpenSSLプロジェクトから発行されたセキュリティアドバイザリは次の通り。

  • OpenSSL Security Advisory [14 December 2021]

    OpenSSL Security Advisory [14 December 2021]

OpenSSLのライブラリであるlibsslは、クライアント側でサーバ証明書の検証を行う際にX509_verify_cert()関数を呼び出す。この関数は、メモリ不足が発生した場合などに戻り値として内部エラーを示す負の値を返すようになっている。今回判明した問題は、OpenSSL側でこのような負の戻り値が誤って処理され、アプリケーション側が予期していないエラー値を返す可能性があるというもの。結果として、アプリケーションがこれを正しく処理できずに正常に動作しなくなる危険性が生じるという。

想定される影響はアプリケーションによって異なるものの、クラッシュや無限ループ、その他の不正な動作が発生する可能性があるとされている。

また、この問題はOpenSSL 3.0の別のバグと組み合わさることで、さらに深刻な被害がもたらされる可能性があるという。

影響を受けるバージョンは3.0.0で、3.0.1にアップデートすることで影響を回避することができる。OpenSSL 1.1.1および1.0.2はこの問題の影響を受けないという。また、OpenSSL 1.1.0はサポートが終了しているため、この問題の影響について評価されていない。

OpenSSLプロジェクトでは、OpenSSL 1.0.2のプレミアムサポートを契約しているユーザーを除いて、OpenSSL 3.0または1.1.1にアップデートすることを推奨している。