概要
Go言語向けPostgreSQLドライバ・ツールキット「pgx」のバージョン5.9.2未満に、SQLインジェクション脆弱性があります(CWE-89)。
以下の条件が重なった場合に脆弱性が成立します:
- デフォルトではない「シンプルプロトコル」を使用している
- SQLクエリにドル引用符リテラル(例:
$$...$$)が含まれている - そのリテラル内のテキストが、リテラルの外ではプレースホルダとして解釈される文字列を含む
- そのプレースホルダの値が攻撃者によって制御可能
この条件下では、攻撃者がドル引用符リテラルの内容を通じて任意のSQL文を注入できる可能性があります。
CVSSベクトル
| 項目 | 値 |
|---|---|
| スコア | 9.8 (CRITICAL) |
| 攻撃経路 (AV) | ネットワーク (N) |
| 攻撃の複雑さ (AC) | 低 (L) |
| 必要な権限 (PR) | 不要 (N) |
| ユーザー関与 (UI) | 不要 (N) |
| CWE | CWE-89(SQLインジェクション) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| pgx | jackc | < 5.9.2 |
修正バージョンと回避策
pgx v5.9.2 で修正されています。
推奨アクション:
go.modやgo.sumでgithub.com/jackc/pgx/v5のバージョンを確認する- 5.9.2未満の場合は
go get github.com/jackc/pgx/v5@v5.9.2でアップデートする - シンプルプロトコルを使用しているかどうかを確認する(
PreferSimpleProtocol: trueの設定) - 即時アップデートが困難な場合は、シンプルプロトコルの使用を一時的に停止し、拡張プロトコルに移行することを検討する
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
