概要
ProxySQL(MySQL および PostgreSQL 向けプロキシ)のバージョン 2.0.18〜3.0.8 において、認証前の最初のパケット処理に脆弱性が確認されました。
リモートの未認証クライアントが、最初のパケット長として過大な値を宣言すると、ProxySQL はその攻撃者制御の長さをそのまま recv() 呼び出しに渡します。実際の受信先は固定サイズ(32 KB)の入力キューであり、長さ検証がないままデータを書き込むことでヒープメモリ破損が発生します。
認証の完了を待たずに攻撃が開始できるため、ProxySQL フロントエンドポートへの TCP 到達性さえあれば攻撃が可能です。
技術的詳細
本脆弱性は、MySQL および PostgreSQL クライアントが接続確立時に送信する「最初のパケット」の処理に起因します。通常の MySQL クライアントは仕様通りのサイズのパケットを送信しますが、攻撃者はこの初期パケットを悪意を持って細工し、実際のデータより大幅に大きい長さを宣言できます。
ProxySQL の入力キューは固定 32 KB のバッファで実装されており、宣言された長さに基づいて recv() を呼び出す際にバッファオーバーフローチェックが欠如しています。このヒープ破損により、リモートコード実行(RCE)に発展する可能性があります。
CVE-2026-48772(ACL バイパス)と同じリリースで修正されており、ProxySQL を使用するすべての MySQL/PostgreSQL プロキシ環境で早急な対応が必要です。
CVSSベクトル
| 指標 | 値 |
|---|---|
| 攻撃ベクトル(AV) | ネットワーク (N) |
| 攻撃複雑度(AC) | 低 (L) |
| 必要権限(PR) | 不要 (N) |
| ユーザー操作(UI) | 不要 (N) |
| スコープ(S) | 変更なし (U) |
| 機密性(C) | 高 (H) |
| 完全性(I) | 高 (H) |
| 可用性(A) | 高 (H) |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| ProxySQL | sysown | 2.0.18 〜 3.0.8 |
修正バージョンと回避策
修正バージョン: ProxySQL 3.0.9
回避策:
- ファイアウォールでフロントエンドポートへのアクセスを信頼済みホストのみに制限する
- ProxySQL フロントエンドをインターネットに直接公開しないようにする
関連リンク
データソース: NVD (NIST), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
