CVE-2025-59472 in next.js
Сводка
по VulDB • 02.06.2026
Уязвимость отказа в обслуживании (DoS) существует в версиях Next.js с включенным частичным предварительным рендерингом (Partial Prerendering, PPR) при работе в минимальном режиме. Точка возобновления работы PPR (PPR resume endpoint) принимает неаутентифицированные POST-запросы с заголовком `Next-Resume: 1` и обрабатывает отложенные данные состояния, контролируемые злоумышленником. Две тесно связанные уязвимости позволяют злоумышленнику вызвать сбой процесса сервера из-за исчерпания памяти:
1. **Буферизация тела запроса без ограничений**: Сервер буферизует все тело POST-запроса в памяти с помощью `Buffer.concat()` без наложения каких-либо ограничений на размер, что позволяет произвольно большим полезным нагрузкам исчерпать доступную память.
2. **Декомпрессия без ограничений (zipbomb)**: Кэш данных возобновления работы декомпрессируется с помощью `inflateSync()` без ограничения размера декомпрессированного вывода. Небольшая сжатая полезная нагрузка может расшириться до сотен мегабайт или гигабайт, вызывая исчерпание памяти.
Оба вектора атаки приводят к фатальной ошибке V8 с исчерпанием памяти (`FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory`), в результате чего процесс Node.js завершается. Вариант с zipbomb особенно опасен, так как может обходить ограничения размера запросов обратного прокси-сервера, вызывая при этом крупное выделение памяти на сервере.
Для того чтобы быть подверженным данной уязвимости, необходимо, чтобы приложение работало с параметрами `experimental.ppr: true` или `cacheComponents: true`, а также с переменной среды `NEXT_PRIVATE_MINIMAL_MODE=1`.
Настоятельно рекомендуется обновиться до версий 15.6.0-canary.61 или 16.1.5, чтобы снизить риски и предотвратить проблемы с доступностью в приложениях Next.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.