ProFTPD SQL Injection Flaw Opens Door To Remote Code Execution Attack
2026/04/30 gbhackers — ProFTPD が公開した新たな脆弱性が注目を集めている。この脆弱性により、単純な SQL インジェクションのバグから、認証バイパスや権限昇格が発生し、一部環境ではリモート・コード実行 (RCE) へと至る可能性がある。ProFTPD の mod_sql モジュールの脆弱性 CVE-2026-42167 は、MITRE により CVSS v3 スコア 8.1 (High) と評価されている。

SQL ベースのログ記録や認証を使用するインターネット公開 FTP サーバにおいて、このリスクは特に深刻なものとなる。リモートからの攻撃が可能であり、必ずしも事前の有効なログインを必要とせずに悪用される恐れがある。
この脆弱性の核心は、mod_sql が SQL クエリへ追加する前に、すでにエスケープ済みと見なされるデータの処理方法に起因すると、発見者である ZeroPath Research は指摘している。同社の分析によると、攻撃者が制御可能なユーザー名など値が “%U” のようなロギング式へ渡される際に、悪意の SQL を安全だと誤認する可能性がある。
その結果として、特別に細工されたユーザー名やリクエスト・フィールドが、意図されたクエリ構造を逸脱させ、攻撃者による任意のデータベースコマンドの注入を許容することになる。なお、この脆弱性の影響の範囲は、管理者による ProFTPD の設定に大きく依存する。
USER のような認証前コマンドに対して mod_sql ロギングが有効であり、ログ・フォーマットに攻撃者が制御するデータが含まれる場合に、リモート攻撃者によるログイン前の脆弱性 CVE-2026-42167 の悪用が可能になる。
攻撃の前提として、有効なアカウントまたは匿名 FTP アクセスが必要な場合もあるが、その際においても、注入された SQL によるバックドア・ユーザーの作成/権限変更/バックエンド・データベースからの機密データ読み取りが可能になる。
最悪のシナリオは、強力な権限を持つ PostgreSQL に、ProFTPD が接続されている場合である。このような構成においては、SQL インジェクションを起点とするデータベース機能の悪用により、OS コマンド実行へと連鎖させることが可能となる。
そのため、この脆弱性は単なるデータ漏洩に留まらず、RCE リスクとして分類される。ただし、直接的なコード実行が不可能な環境であっても、認証バイパス/認証情報窃取/権限悪用を通じて、対象サーバに対する広範な侵害経路となり得る。
ZeroPath によると、このバグが影響を及ぼす範囲は、ProFTPD バージョン 1.3.9 までの古いビルドとなる。2026年4月27日に緊急リリースされた修正版の 1.3.9a、および、次期メジャー版のリリース候補である 1.3.10rc1 以降であれば、この脆弱性は解消されている。
公式の CVE レコードには、1.3.10rc1 以下の全ビルドが脆弱と記されているため、旧バージョンが安全であると過信することは禁物だ。ベンダーが提供する修正済みパッケージ 1.3.9a 以降へと、速やかにアップデートすべきである。
管理者にとって必要なことは、直ちにアップグレードを実施し、mod_sql の有効状態を確認することだ。それに加えて、SQLNamedQuery および SQLLog ディレクティブにおいて、SQL 文のフィールドが攻撃者に制御されていないことを確認する必要がある。
迅速なパッチ適用が不可能な場合の、最も安全な暫定対策は、mod_sql ベースのログ記録を無効化することだ。さらに、認証試行やデータベース活動における異常な挙動を監視し、修正が適用されるまでの間は、公開 ProFTPD サーバを高優先度リスクとして扱うべきである。
訳者後書:ProFTPD の脆弱性 CVE-2026-42167 は、 mod_sql モジュールにおけるデータの取り扱い方に起因するものです。本来であれば、外部からの入力は厳重にチェックされるべきですが、このケースでは攻撃者が操作できるユーザー名などの情報が、すでに安全なものとして誤って処理されてしまいました。 その結果、 SQL クエリの構造が壊され、第三者がデータベースを自由に操作できてしまう状態が生じています。特に PostgreSQL を利用している環境では、 OS のコマンド実行にまで被害が広がる恐れがあるため、非常に注意が必要です。ご利用のチームは、ご注意ください。よろしければ、ProFTPD での検索結果も、ご参照ください。

You must be logged in to post a comment.