PostgreSQL の脆弱性 CVE-2024-10979 が FIX:情報漏洩とシステム乗っ取りの恐れ

8.8 Rated PostgreSQL Vulnerability Puts Databases at Risk

2024/11/15 HackRead — PostgreSQL に存在する深刻度の高い脆弱性 CVE-2024-10979 により、世界中の無数のデータベースのセキュリティが、危険に直面するという可能性が生じる。この、広範に使用されている OSS データベース・システムの脆弱性を発見したのは、Varonis のサイバー・セキュリティ研究者である Tal Peleg と Coby Abrams である。

HackRead に共有された Varonis のレポートによると、この脆弱性 CVE-2024-10979 の CVSS スコアは 8.8 という高い数値を記録しており、欠陥の深刻さを浮き彫りにしている。なお、PostgreSQL 17.1/16.5/15.9/14.14/13.17/12.21 未満の、すべてのバージョンに脆弱性が存在するとのことだ。

この脆弱性の悪用に成功した特権のないユーザーには、PostgreSQL PL/Perl エクステンション内における環境変数の操作が許されてしまう。PL/Perl エクステンションとは、Perl プログラミング言語により、データベース関数を記述するツールである。したがって、このインタラクションの脆弱性を悪用する攻撃者は、データベースを実行しているサーバ上の環境変数を操作する可能性を手にする。

PostgreSQL のアドバイザリでは、「PostgreSQL の PL/Perl における環境変数の不適切な制御により、特権のない攻撃者が、PATH などの機密性の高いプロセス環境変数を変更することが可能になる。 攻撃者が、データベース・サーバの OS ユーザー権限を持っていない場合であっても、多くのケースにおいて、任意のコード実行が可能になる」と説明されている。

環境変数とは、プログラムの動作を制御する、不可視の設定のようなものである。攻撃者は、これらの変数を変更することで、悪意のコードを実行し、最終的にはデータ窃取やシステム制御の奪取を可能にする。

さらに、環境変数には、アクセスキーやファイル・パスなどの、機密情報を保持している場合もあるため、それらを操作する攻撃者により、データベース・サーバからの機密情報を窃取も可能になる。

すべてのユーザーに対して強く推奨されるのは、この脆弱性に対する修正が含まれている、PostgreSQL バージョン 17.1/16.5/15.9/14.14/13.17/12.21 へと、ただちにアップデートすることだ。

Varonis が推奨するのは、PostgreSQL を最新のマイナー・バージョンに更新した上で、問題となるエクステンションを制限することだ。この対策を構成するのは、CREATE EXTENSIONS 権限付与を特定のエクステンションに限定すること、そして、shared_preload_libraries コンフィグ・パラメータの設定により、必要なものだけをロードすることである。この修正に関する詳細な説明は、こちらで参照できる。

さらに、データベースにインストールするエクステンションを制限することで、攻撃者による脆弱性の悪用を防ぎ、ユーザーに最小限の権限を付与することで、被害を最小限に抑えるべきである。