|
VRDA Feed
by
Vulnerability Response Decision Assistance Feed : 脆弱性脅威分析用情報の定型データ配信 |
[ about VRDA Feed | JPCERT/CC ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 分析対象脆弱性情報 (リビジョン番号 : 1) | [ Download XML ] | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JVNDB-2026-027062 ( CVE-2026-17351 | CVE-2026-17351 ) | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| pgAdmin ProjectのpgAdmin 4における複数の脆弱性 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| https://jvndb.jvn.jp/ja/contents/2026/JVNDB-2026-027062.html | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
原文pgAdmin 4 9.16でのCVE-2026-12045の修正では、AIアシスタントのexecute_sql_queryツールに渡される、LLMから提供されたクエリがsqlparseによってトランザクション制御文ではない単一の文として正確に解析される必要があり、それをBEGIN TRANSACTION READ ONLYラッパー内で実行していました。しかし、sqlparseの文字列リテラルの字句解析はPostgreSQL自身のパーサーと異なる可能性があります。標準準拠文字列(standard_conforming_strings)がon(PostgreSQL 9.1以降のデフォルト)の場合、クォート直前のバックスラッシュはPostgreSQLにとって単なる文字ですが、sqlparseはそれをクォートのエスケープとみなします。したがって、SELECT '\';COMMIT;CREATE TABLE pwn(x int);SELECT 1 --' のようなペイロードはsqlparseのバリデータには単一のSELECT文として解析されますが、PostgreSQLではこれが4つの文として実行されます。隠されたCOMMITによって読み取り専用トランザクションが終了し、後続のROLLBACKは無効となります。これにより、CVE-2026-12045で対策された書き込み/RCE回避が再現され、同じ間接的プロンプトインジェクションの手法(攻撃者がAIアシスタントが読み取れる任意のオブジェクトにペイロードを植え付け、LLMがそれをツール呼び出しとして出力する方法)で悪用可能となります。初期の修正案ではpsycopgのexecute(..., prepare=True)を使用し、sqlparseの分類にかかわらずPostgreSQLのParseステップ(拡張クエリプロトコル)により複数文を拒否しようとしました。しかし、この修正案は期待どおりに機能しませんでした。psycopg3のPrepareManagerは接続のprepare_thresholdがNone(pgAdminではすべてのサーバー接続でデフォルト)であればprepare引数を無視し、単純クエリプロトコルにフォールバックします。この単純クエリプロトコルは回避を可能にする複数文対応経路であるため、この修正案では現実のデフォルト構成では対策できませんでした。最終的な修正では、AIアシスタントツールが開く専用の使い捨て読み取り専用接続に対してconn.prepare_threshold = 0を直接設定し、サーバーレベルの設定に依存せず強制的に拡張クエリプロトコルを利用させます。PostgreSQL 18の実環境で検証した結果、prepare_threshold=None(デフォルト)の場合はペイロードが成功して実行されましたが、prepare_threshold=0を設定すると「準備済みステートメントに複数コマンドを挿入できません」として拒否されました。本問題はpgAdmin 4の9.13から9.17未満のバージョンに影響を及ぼします。翻訳 (表示) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
この情報について
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
分析情報提供元:
|
JVN iPedia
|
初版公開日:
|
2026-08-06 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
分析対象脆弱性情報の分類:
|
アドバイザリ・注意喚起
|
最終更新日:
|
2026-08-06 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
脆弱性の影響を受ける製品の識別子
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| cpe:/a:pgadmin:pgadmin_4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
脆弱性の分析内容
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
関連情報
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common Vulnerabilities and Exposures (CVE) CVE-2026-17351 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| National Vulnerability Database (NVD) CVE-2026-17351 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
参考情報
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| GitHub AI Assistant read-only transaction bypass via sqlparse/PostgreSQL lexer disagreement (CVE-2026-17351) Issue #10192 pgadmin-org/pgadmin4 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JVNDB CWE-89 SQLインジェクション | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| JVNDB CWE-115 入力の誤った解釈 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 関連文書 fix(llm): close lexer-differential bypass in AI Assistant read-only … pgadmin-org/pgadmin4@ef76102 GitHub | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 関連文書 fix(llm): reject multi-statement and non-read-only AI assistant queries pgadmin-org/pgadmin4@bf47924 GitHub | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Copyright © 2026 JPCERT/CC All Rights Reserved. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||