本文へスキップ
MameTechNews
バックエンド

AWS、Postgres MCPのCOPY TO PROGRAMによるOSコマンド実行を修正

## POINTS

  • 対象は1.1.7未満の自己管理構成。PG_WIRE_PROTOCOLかつsuperuserまたはpg_execute_server_programが条件
  • 修正版はPyPIの1.1.7。フォークや独自改変がある場合は同等パッチの取り込みが必要
  • パッケージ更新に加え、MCP用ロールを最小権限へ切り、マスターユーザー接続をやめる

AWSは9月9日、セキュリティ掲示板2026-104-AWSでCVE-2026-87911を公開した。Pythonパッケージawslabs.postgres-mcp-serverの1.1.7未満で、読み取り専用をうたうSQL検証が不完全だった。認証済みユーザーが既定の読み取り専用モードでMCPサーバーを使った際、処理される内容に仕込んだCOPY ... TO PROGRAM文を通じ、認証していない攻撃者が自己管理PostgreSQLホスト上でOSコマンドを実行し得る。

影響が出るのは、接続方式がPG_WIRE_PROTOCOLで、設定したDBロールがスーパーユーザーまたはpg_execute_server_programを持つ自己管理構成だ。最小権限ロールだけで接続している場合、アプリケーション層を抜けてもDBが拒否するため対象外になる。修正はPyPIの1.1.7。フォークした場合も同等の修正を取り込む必要がある。

読み取り専用をうたう検証を抜けてホスト実行に達するため、エージェントにDBを触らせているチームはパッケージ更新だけでは足りない。専用ロールを切り、rds_superuserやマスターユーザーで繋がない。読み取り専用ならCONNECT/USAGE/SELECTとロールレベルの読み取り専用トランザクションに閉じ、ブロックリストとDB権限の二段で見る。