4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【緊急】PostgreSQLに複数のRCE脆弱性(CVSS 8.8)発覚。intarrayやpgcrypto利用者は至急アップデートを

4
Posted at

警告:本脆弱性は「任意のコード実行(RCE)」につながる危険なものです。
DBサーバの乗っ取りを防ぐため、計画的なメンテナンスとアップデートを強く推奨します。

⚡ 3行でわかる要点 (TL;DR)

  1. PostgreSQL 14〜18 の全系列に、OSコマンド実行につながる深刻な脆弱性(CVE-2026-2004他)が修正されました。
  2. 一般的な拡張機能である intarraypgcrypto、およびマルチバイト文字処理に起因するメモリ破壊が原因です。
  3. v18.2, 17.8, 16.12, 15.16, 14.21 へのアップデートが必須となります。

🚨 はじめに

2026年2月12日(現地時間)、PostgreSQL Global Development Groupは、サポートされている全てのバージョンに対するセキュリティアップデートをリリースしました。

今回のアップデートでは、CVSSスコア 8.8 (High) を記録する3件の深刻な脆弱性が修正されています。これらは特定の条件下で、認証されたDBユーザーがPostgreSQLの実行権限(通常は postgres ユーザー)で任意のOSコマンドを実行できるというものです。

本記事では、特に影響が大きいと考えられる3つの脆弱性のメカニズムについて、技術的な観点から解説します。


🛠 技術解説:なぜDBからOSコマンドが実行できるのか?

今回の脆弱性の共通点は、拡張機能やコア機能における「入力検証の不備」によるメモリ破壊です。

1. intarray 拡張における型検証回避 (CVE-2026-2004)

intarray は整数配列を高速に扱うための公式拡張機能ですが、その内部にある「選択率推定関数(selectivity estimator)」に欠陥が見つかりました。

通常、クエリプランナが実行計画を立てる際、この推定関数が呼び出されます。攻撃者は、オブジェクト作成権限(CREATE権限など)を持っている場合、特定の細工された入力を推定関数に渡すことで、型チェックをバイパスし、メモリ上の不正な領域を実行させることが可能でした。

2. pgcrypto におけるヒープバッファオーバーフロー (CVE-2026-2005)

pgcrypto はDB内で暗号化・復号を行うための拡張機能です。
今回の脆弱性は、復号処理(pgp_sym_decrypt 等)において、暗号化データのメタデータ検証が不十分だったことに起因します。

-- 攻撃の概念イメージ
-- 内部構造を偽装した不正な暗号化データを復号させようとすると...
SELECT pgp_sym_decrypt(malicious_cipher_text, 'key');

攻撃者が作成した「データ長を偽った暗号文」を復号させると、確保されたヒープ領域を超えてデータが書き込まれ(Heap Buffer Overflow)、結果としてプロセスの制御を奪われる可能性があります。

3. マルチバイト文字処理の不備 (CVE-2026-2006)

これは拡張機能ではなく、PostgreSQLのコア機能であるテキスト操作に関する脆弱性です。
UTF-8などのマルチバイト文字を含む文字列の長さ計算において検証漏れがあり、特定の細工されたSQLクエリを発行することでバッファオーバーランを引き起こすことが可能でした。


🛡 影響を受けるバージョンと対策

対象バージョン

現在サポートされている以下のメジャーバージョン系列すべてが影響を受けます。

  • PostgreSQL 18.x
  • PostgreSQL 17.x
  • PostgreSQL 16.x
  • PostgreSQL 15.x
  • PostgreSQL 14.x

修正済みバージョン

以下のマイナーバージョン(またはそれ以降)へアップデートしてください。

系列 修正版
PostgreSQL 18 18.2
PostgreSQL 17 17.8
PostgreSQL 16 16.12
PostgreSQL 15 15.16
PostgreSQL 14 14.21

暫定的な回避策

即座の再起動が難しい場合、かつ intarraypgcrypto を使用していない場合は、該当の拡張機能を削除することで攻撃対象領域(Attack Surface)を減らすことは可能です。

-- intarrayを使用していない場合
DROP EXTENSION intarray;

ただし、CVE-2026-2006(マルチバイト文字の問題)はコア機能に存在するため、バイナリのアップデート以外に完全な解決策はありません。


📝 まとめ

データベースは「守るべきデータ」の最奥部に位置しますが、SQLインターフェースを通じて複雑な処理を実行できるため、アプリケーションサーバー同様にRCEのリスクが存在します。

特に pgcrypto など外部データを処理する拡張機能を利用している場合、リスクは高まります。週末やメンテナンスウィンドウを利用し、速やかにパッチを適用することをお勧めします。

参考文献


この記事が役に立ちましたら、LGTM 👍 をいただけると励みになります。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?