OpenSSLの脆弱性(CVE-2020-1971)に関するIndyライブラリの影響

提供: Support
移動先: 案内検索

問題

2020年12月08日 (米国時間)、OpenSSLプロジェクトから OpenSSL の脆弱性(CVE-2020-1971) に関するアップデート情報が公開されました。


この公開された情報によると、OpenSSL には、X.509 証明書の GENERAL_NAME が EDIPartyNameを含む場合に、GENERAL_NAME_cmp 関数内で NULL ポインタ参照が発生する脆弱性があります。


この脆弱性を悪用されると、OpenSSL を実行しているサーバーおよびクライアントアプリケーションにおいて、サービス運用妨害 (DoS) 攻撃が行われる可能性があります。


本症状の影響をうけるOpenSSLのバージョンは以下の通りです。

  • OpenSSL 1.1.1 および 1.0.2 のすべてのバージョン


なお、OpenSSL Project によると OpenSSL 1.0.2、OpenSSL 1.1.0 については、既にサポートが終了しており、有償サポートを契約していない場合は1.0.2の修正バージョンを入手することができません。 そのため基本的にOpenSSL1.1.1i へのアップグレードを推奨しています。


ただし、Indyが現時点でサポートしているOpenSSLのバージョンは1.0.2迄で、1.1.1は非対応なため、推奨するバージョンへアップグレードできません。

エンバカデロでの対応

エンバカデロでは、お客様からQuality Portal経由で報告されたIndy関連の問題は、開発部からIndyコミュ二ティへ報告していますが、Indyプロジェクトに対して直接的な管理、制御は行っておりません。そのため、エンバカデロでも今回の脆弱性の修正、あるいは対応した版のIndyのリリース時期はわかっておらず、未定となっております。

※RAD Studioでは、新バージョンのリリース時にIndyのスナップショット(その時の最新版)をバンドルしています。


なお、10 Seattle以降のバージョンでは、今回のようなIndyのOpenSSLの脆弱性のサポートの対応が遅いという観点から一部の通信コンポーネントをIndyライブラリからHTTPクライアントライブラリへ移行した経緯がございます。

解決

今回の脆弱性に関するIndyライブラリ、ならびにDelphiのRTLに対する影響ですが、

  • Indyライブラリの実装コードでGENERAL_NAME_cmp関数は使用していない
  • Delphi RTLの実装コードでも同様にGENERAL_NAME_cmp関数は使用していない

以上の観点から、お客様のアプリケーションコード内で明示的にこの関数を使用しない限り、今回の問題は特に影響はいたしません。


またHTTPクライアントに関して、TNetHTTPClientなどのコンポーネントを利用されている場合は、実装コード内部のセキュリティ機能としてOpenSSLには全く依存していないため、こちらも影響を受けることはありません。


そのため、お客様のアプリケーション内で、もしIndyのTHTTPコンポーネントを利用している箇所がある場合には、今後も同様の脆弱性が見つかるリスクが考えられますので、できるだけ早い段階でTNetHTTPClientなどのHTTPクライアントへ移行することを推奨いたします。

関連事項