つみかさね

CVE-2026-32687

High(7.8)

CVE-2026-32687 — Postgrex(Elixir)SQLインジェクション

公開日: 2026-05-23データソース: NVD, GitHub Advisory

影響を受けるソフトウェア

製品ベンダー影響バージョン
postgrexelixir-ecto0.16.0 以上 0.22.2 未満

対応ガイド

high|推奨セキュリティ修正影響: 限定的

推奨アクション

  1. 1postgrex のバージョンが 0.22.2 未満でないか確認する(mix deps | grep postgrex)
  2. 2mix.exs の依存バージョン指定を >= 0.22.2 に更新し mix deps.update postgrex を実行する
  3. 3Postgrex.Notifications を使用している箇所でチャンネル名の入力源を確認する

影響対象

Elixir / Phoenix フレームワーク利用者(Postgrex.Notifications 使用)

補足

  • -Phoenix Framework 経由で Ecto を利用している場合も間接依存として含まれる可能性があります
CVEPostgrexElixirSQLインジェクションPostgreSQLPhoenix

概要

Elixir の PostgreSQL ドライバ Postgrex において、Notifications.listen/3 および Notifications.unlisten/3 関数のチャンネル名処理に SQL インジェクション脆弱性が存在します(CVSS: 7.8)。

チャンネル名が LISTEN/UNLISTEN SQL 文へ " 文字のエスケープなしで直接挿入されるため、攻撃者がチャンネル名を制御できる場合、引用符を使ってクォートを脱出し、任意の SQL コマンドを連鎖実行できます。PostgreSQL の simple query プロトコルが複数ステートメントを許容するため、DROP TABLE などの DDL コマンドも実行可能です。同様の問題は再接続時の handle_connect/1 内での LISTEN コマンド再生時にも発生します。

CVSS ベクトル

項目
CVSS スコア7.8(High)
CWECWE-89(SQL Injection)
攻撃経路ネットワーク / ローカル(チャンネル名制御が条件)

影響を受けるソフトウェア

製品ベンダー脆弱なバージョン修正バージョン
postgrex (Hex/GitHub)elixir-ecto0.16.0 以上 0.22.2 未満0.22.2

修正バージョンと回避策

推奨対応: mix.exs で postgrex を >= 0.22.2 に更新し、mix deps.update postgrex を実行してください。

# mix.exs
defp deps do
  [
    {:postgrex, ">= 0.22.2"},
    ...
  ]
end

回避策として、Postgrex.Notifications.listen/3 に渡すチャンネル名に対してアプリケーション側でホワイトリスト検証を実施することで緩和できますが、根本的な対応はアップデートです。

関連リンク


データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。

Xでシェアはてブ
データソース: NVD (NIST), OSV (Google), GitHub Advisory Database, JVN iPedia (IPA/JPCERT/CC)
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。