Чтобы обезопасить себя от возможной эксплуатации рассматриваемой уязвимости, следует выполнить следующие действия:
- Провести аудит и убедиться, что опубликованные наружу веб-приложения используют React/Next.js уязвимых версий.
- Перейти на безопасные версии RSC-пакетов: 19.0.1, 19.1.2, 19.2.1.
- Обновить Next.js до безопасных версий: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7 или 16.0.7.
- В случае если обновиться здесь и сейчас нет возможности, следует использовать решения класса Web Application Firewall (WAF) для блокировки попыток эксплуатации уязвимости злоумышленниками. Важно проводить тонкую настройку решения и использовать пользовательские правила, а не только правила «из коробки».
- Пользовательские правила можно составить по совокупности следующих критериев:
- тип запроса POST;
- значение заголовка Content-type — multipart/form-data;
- в теле запроса встречаются следующе конструкции: vm#, fs#, child_process, constructor, runInThisContext, runInNewContext, execSync, execFileSync, spawnSync, module#_load, module#createRequire, readFileSync, writeFileSync, appendFileSync.
Также важно помнить, что, несмотря на доказанную эффективность WAF для закрытия уязвимости, использование решений данного класса не является панацеей. Правила, которые производители WAF выпускают для оперативного закрытия, призваны отсечь широкий спектр возможных тактик злоумышленников, поэтому могут быть написаны «широкими мазками» и частично блокировать и легитимные запросы.
Самым правильным вариантом всегда будет обновление до версий ПО, в которых эта уязвимость уже устранена. Однако WAF защитит вас здесь и сейчас и даст дополнительное время на ожидание пропатченных версий и само обновление.