GnuTLSが開始点

ほぼこもセキュリティニュース By Terilogy Worx

GnuTLSは暗号化ライブラリの一種です。
OpenSSLがHeartbleedで話題となってしまいましたが、その同じジャンルのソフトウェアです。
このGnuTLSでセキュリティバグの修正が案内されました。
GNUTLS-SA-2022-07-07で報告されたCVE-2022-2509です。

CVE-2022-2509で修正されたバグそのものの内容は、ダブルフリーとして知られるメモリ管理の誤りの修正です。
ダブルフリーとは、その名前の通り2回開放してしまうというものです。
通常プログラムはメモリを使用し、使用が終わると開放します。
ダブルフリーは誤って2回開放してしまうというものです。

通常ダブルフリーが発生してしまうだけの場合、対象のメモリ領域を使用している他のプログラムが存在する場合にそのプログラムが正しく動作できなくなるという事態を引き起こす場合があります。
見方によればDoS攻撃に利用できると言えなくはないと思います。
しかし今回のCVE-2022-2509はこれとは別の問題を引き起こします。

今回のCVE-2022-2509はGnuTLSの証明書検証コードのなかのバグが原因となっています。
ある条件を満たした証明書を使うサイトにアクセスすると、バグの前提条件を満たした状態となり、GnuTLSのダブルフリーが発生します。
このときにリモートコード実行を実施できてしまうのです。
つまりこの脆弱性を悪用すると、攻撃者は被害者の操作を何ら期待することなく、自由にプログラムクラッシュを誘発させてその流れで自由に攻撃者が準備した実行可能コードに実行を移すことができるようになるのです。

言い方を変えると、攻撃者はこの脆弱性を悪用して、一時的または永続的にマルウェアを埋め込むことができることを示します。
最初に許可を求めるポップアップ警告を生成することなく、信頼できないコードをコンピュータに挿入できるということです。

さて、私たちの実施すべきことはなんでしょう。
いつも通りパッチを適用しましょう。
問題の発生する範囲は、GnuTLS 3.6.0からGnuTLS 3.7.6までです。
GnuTLS 3.7.7で問題は修正されています。
この問題に限らずパッチをタイムリーに適用することを継続できれば、Heartbleedみたいな悲しいことに巻き込まれるリスクも下げることができるでしょう。

参考記事(外部リンク):GnuTLS patches memory mismanagement bug – update now!
nakedsecurity.sophos.com/2022/08/01/gnutls-patches-memory-mismanagement-bug-update-now/