Termux Docker の脆弱性 CVE-2025-59951:SSH 認証情報の漏洩 No Patch/Yes PoC

Termux Docker Image Leaking SSH Credentials (CVE-2025-59951)

2025/10/02 gbhackers — Termux の公式 Docker イメージに保持される SSH 認証情報が漏洩するという、深刻な脆弱性 CVE-2025-59951 が発見された。この脆弱性を悪用するネットワーク上の任意のユーザーは、ログインを必要とせずに、ホストアドレス/ユーザー名/パスワードといった機密情報を取得する可能性がある。

脆弱性の仕組み

Termux が提供するのは、Nginx リバース・プロキシの背後で Node.js バックエンドを実行する Docker イメージである。

セキュリティ研究者たちによると、このバックエンド・コードは、リクエストがローカル・マシンから送信されたことを判断するために req.ip に依存しているという。

しかし、Nginx と Termux が同一環境で動作するため、req.ip は常にプロキシの IP アドレス (127.0.0.1) を返す。その結果として、アプリケーションによる誤認が生じ、すべてのリクエストが localhost からのものと判断されてしまう。

CVE IDCVE-2025-59951
PackageTermux (Node.js)
Affected Versionsrelease-0.1.1-tag – release-1.6.0-tag
Patched VersionsNone
SeverityCritical

つまり、誰であっても、認証を必要とせずに “/ssh/db/host/internal” エンドポイントを呼び出し、そこに保存された SSH ホストの詳細情報 (上流サーバへの接続に必要なホストアドレス/ユーザー名/パスワードなど) を取得できる。

endpoint can be accessed directly without login or authentication
Endpoint can be accessed directly without login or authentication

一般的な導入環境では、Termux サービスは仮想マシン内で稼働するため、攻撃者はネットワーク・スキャンにより、公開されたインスタンスを発見できる。したがって、脆弱なエンドポイントに単純な HTTP GET リクエストを送信するだけで、サービスに保存された SSH ホスト・リストが返されることになる。

host machine can directly access this interface without logging in
host machine can directly access this interface without logging in

この脆弱性が影響を及ぼす範囲は、Termux Docker の release-0.1.1-tag~release-1.6.0-tag 以下であり、この記事の執筆時点では修正版は存在しない。

公式イメージを使用するシステムと、公式 Dockerfile から構築されたカスタム・イメージを使用するシステムは、デフォルト・コンフィグの Nginx リバース・プロキシを使用している場合において脆弱である。以下の PoC が示すように、対象となる URL にアクセスすることで、この欠陥は再現される。

http://<IP>:<PORT>/ssh/db/host/internal

標準的な HTTP リクエストに対し、このバックエンドは完全な SSH コンフィグ・データを返す。ネットワーク・スキャナーや資産マッピング・プラットフォームを悪用する攻撃者は、脆弱なホストを容易に特定できる。アクセスに成功した攻撃者は、ネットワーク内での横方向への移動や、さらなる攻撃で悪用する認証情報の収集などを可能にする。

緩和策と推奨事項

現時点では、修正版は提供されていない。したがって、Termux Docker イメージを使用するユーザーに推奨されるのは、以下の緩和策の速やかな実施である。

  • コード修正:バックエンドの検証ロジックを変更し、req.ip 依存やデフォルトのプロキシ転送 IP ではなく、X-Real-IP ヘッダーを用いてクライアントの実際の IP を検出する。
  • ネットワーク制御:ファイアウォール・ルールにより、管理エンドポイントへのアクセスを制限する。
  • 配置環境:Termux サービスを、認証済みゲートウェイまたは VPN の背後に配置する。
  • 監視:“/ssh/db/host/internal” エンドポイントへの不審なリクエストをログで監視する。
  • 認証情報の更新:漏洩した可能性のある SSH 認証情報を速やかにローテーションする。

パッチ適用済みの Termux Docker イメージがリリースされるまでの間は、これらの対策により、脆弱性の露出と潜在的な被害を最小限に抑えられる。

Termux Docker イメージを利用するユーザーは、SSH 認証情報の安全性を確保するために、推奨される緩和策を直ちに適用し、公式パッチの提供を待つ必要がある。