JVNDB-2026-027823
|
ProxySQLにおける複数の脆弱性
|
ProxySQLはMySQLおよびそのフォーク、さらにPostgreSQLのためのプロキシです。バージョン2.0.0から3.0.8において、ProxySQLのMySQLフロントエンドは、`PROXY UNKNOWN \r\n`というPP1フレームを正しい形式のPROXYプロトコルヘッダーとして受け入れます。HAProxyのPROXYプロトコルv1仕様では、プロトコルトークンが`UNKNOWN`の場合、プロキシはクライアントの正体を特定できないと宣言しているため、受信側は後続のアドレスフィールドを全て無視しなければなりません。しかし、ProxySQLはそれらのアドレスフィールドを`sscanf`でパースし、詐称された送信元アドレスをセッションの`addr.addr`フィールドに書き込みます。そこから、この情報は直接クエリルールのマッチャーに流れ込み、`client_addr`述語がルーティングやACLの判断を行います。`mysql-proxy_protocol_networks = '*'`(デフォルト)の場合、任意のTCPピアがPP1フレームを送信し、任意の送信元IPを主張できます。これにより、`client_addr`値に紐づけられた`mysql_query_rules`の任意の行が偽造可能となり、攻撃者は一致させたいアドレスをPP1ラインに書き込み、ProxySQLはそのクエリをあたかもそのアドレスから来たかのようにルーティングします。実際にはこれはルーティングとACLのバイパスになります。実環境では`client_addr`は読み書きの分割(内部アプリはプライマリ、パブリックトラフィックはリードレプリカへ)、アプリごとのスキーマピニング、およびクエリフィルタールール(DDLは管理者CIDRのみ許可、危険なパターンのパブリッククエリをブロック)に利用されています。フロントエンドポートに到達可能な攻撃者は、これらのルートのいずれにも偽装して侵入できます。バージョン3.0.9でこの問題は修正されました。
|
CVSS v3 による深刻度 基本値: 10.0 (緊急) [その他]
- 攻撃元区分: ネットワーク
- 攻撃条件の複雑さ: 低
- 攻撃に必要な特権レベル: 不要
- 利用者の関与: 不要
- 影響の想定範囲: 変更あり
- 機密性への影響(C): 高
- 完全性への影響(I): 高
- 可用性への影響(A): なし
|
|
ProxySQL
- ProxySQL 2.0.0 以上 3.0.9 未満
|
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。
|
・当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアは停止しません。
|
ベンダ情報を参照して適切な対策を実施してください。
|
GitHub
|
- 信頼性の低い送信元の使用(CWE-348) [その他]
- 不正な認証(CWE-863) [その他]
|
- CVE-2026-48772
|
- National Vulnerability Database (NVD) : CVE-2026-48772
- 関連文書 : Release ProxySQL 3.0.9 sysown/proxysql GitHub
|
|