ProFTPD SQL インジェクション脆弱性がリモートコード実行攻撃への道を開く

新たに開示されたProFTPDの脆弱性が緊急の注目を集めています。これは攻撃者が単純なSQLインジェクションのバグから認証回避、権限昇格へ、そして環境によってはリモートコード実行へと進むことを可能にするためです。

CVE-2026-42167として追跡されているこの問題は、ZeroPath ResearchによってProFTPDのmod_sql拡張機能で発見されました。MITREはこれにCVSS v3スコア8.1を割り当て、高重大度の範囲に分類しました。

このリスクは、SQLベースのログまたは認証を使用しているインターネット向けFTPサーバーにとって特に深刻です。攻撃をリモートでトリガーでき、有効なログインが事前に必要でない場合があるためです。

Image

このバグの核心は、SQLクエリに追加する前に既にエスケープされているように見えるデータをmod_sqlがどのように処理するかにあります。

公開分析によると、ユーザー名などの攻撃者が制御できる値は%Uのようなログ式に渡すことができ、脆弱なロジックは実際には悪意あるSQLであっても、加工された入力を安全として扱う可能性があります。

つまり、特別に形成されたユーザー名または他のリクエストフィールドは、意図されたクエリ構造から抜け出し、攻撃者が選択したデータベースコマンドを注入できるということです。

その影響は、管理者がProFTPDをどのように設定したかに大きく依存します。

mod_sqlログが認証前コマンド(USERなど)に対して有効化されており、それらのログ形式に攻撃者制御のデータが含まれている場合、リモート攻撃者はまったくログインする前に脆弱性を悪用できる可能性があります。

他のセットアップでは、攻撃者が最初に有効なアカウントまたはアノニマスFTPアクセスが必要な場合があります。しかし、そうであっても、注入されたSQLはバックドアユーザーを作成したり、権限を変更したり、バックエンドデータベースから機密データを読み取ったりするために使用できます。

最悪のシナリオは、ProFTPDが強力な権限を持つPostgreSQLに接続されている場合に表れます。

その設定では、SQLインジェクションは、SQLから実行を許可するデータベース機能を悪用することで、オペレーティングシステムコマンド実行に連鎖させることができます。これが脆弱性が単純なデータ漏洩のバグではなくRCEリスクとして説明されている理由です。

直接的なコード実行が不可能な場所でさえ、研究者は同じ脆弱性を認証をバイパスしたり、認証情報を盗んだり、権限を悪用したりするために使用でき、影響を受けるサーバーの広い侵害パスになると述べています。

ZeroPathは、このバグはProFTPDバージョン1.3.9までに影響を及ぼし、ベンダーは2026年4月27日にリリースされたProFTPD 1.3.9aで対処したと述べています。これは月初めの調整された検証作業とCVE割り当ての後のことです。

公式のCVEレコードは、脆弱なProFTPDリリースを1.3.10rc1前のビルドとして説明しており、ディフェンダーは古いブランチがデフォルトで安全であると仮定するのではなく、パッチが適用されたベンダーパッケージに依存すべきであることを示しています。

管理者は直ちにアップグレードし、mod_sqlが有効かどうかを確認し、SQLステートメント内の攻撃者制御フィールドの使用についてSQLNamedQueryおよびSQLLogディレクティブをチェックする必要があります。

パッチをすぐに適用できない場合、最も安全な一時的な手段は、mod_sqlベースのログを無効化し、認証試行とデータベースアクティビティを異常な動作について監視し、修正が適用されるまで、露出しているProFTPDサーバーを高優先度として扱うことです。

翻訳元: https://gbhackers.com/proftpd-sql-injection-flaw/

ソース: gbhackers.com