CVE-2020-13777:2年間隠されたGnuTLSの脆弱性

CVE-2020-13777と呼ばれるGnuTLSの脆弱性は、TLS(Transport Layer Security)を使用する広く採用されているオープンソースライブラリです。

報告によると、この脆弱性はライブラリに約2年間存在し、再開されたTLS 1.3セッションが攻撃にさらされていることが判明しています。この脆弱性は2018年9月のGnuTLS 3.6.4で発見され、2020年6月3日の新しいバージョンのGnuTLS 3.6.14で対処されました。

CVE-2020-13777の脆弱性の説明

報告によると、このバグにより、GnuTLSサーバーは以前のセキュアなTLS 1.3セッション中に発行されたセッションチケットを、秘密鍵を作成する機能を使用せずに使用できるようになりました。

gnutls_session_ticket_key_generate()

この脆弱性を利用して、攻撃者はTLS 1.3での認証を回避できるため、TLS 1.2で以前の会話を回復できます。

Airtowerという名前の研究者が言っているように:

「GnuTLSサーバーは、gnutls_session_ticket_key_generate()によって生成された秘密鍵にアクセスすることなく、互いに発行されたチケットを使用できます。これにより、有効な資格情報のないMITMサーバーは、有効な資格情報を持つサーバーとの最初の接続を最初に確立したクライアントとのセッションを再開できます。この問題は、TLS 1.2の再開の使用が期待どおりに失敗した場合に、TLS 1.3に適用されます。」

セキュリティ研究者は、この問題をUbuntuバージョン3.6.13-2ubuntu1で最初に認識し、52e78fleと呼ばれるマスターからの新しいビルドで作成しました。

TheRegisterの指摘によると、一部の研究者はGnuTLSは依存関係として排除する必要があると主張していますが、多くの研究者はライブラリに対して軽蔑を表明しています。

MITER CVE辞書によると、CVE-2020-13777の説明は次のように記述されています。

「3.6.14より前のGnuTLS 3.6.xは、セッションチケットの暗号化に不正な暗号を使用します(TLS 1.2では機密性が失われ、TLS 1.3では認証がバイパスされます)。 2018-09-18コミットでのエラーのため、影響を受ける最も古いバージョンは3.6.4(2018-09-24)です。最初のキーローテーションまで、TLSサーバーはアプリケーションから派生した暗号化キーの代わりに常に間違ったデータを使用します。」

ただし、RedHatの助言で明記されているように、この脆弱性に対する緩和策は確認されていません。