Уязвимость Next.js CVE-2025-48068: как защитить dev-сервер от атак
Уязвимость CVE-2025-48068 в Next.js позволяет атаковать локальный сервер разработки через Cross-Site WebSocket Hijacking и Cross-Origin Script Inclusion. Проблема затрагивает версии с 13.0.0 по 14.2.29 и с 15.0.0 по 15.2.1, а исправления вышли в версиях 14.2.30 и 15.2.2. Разработчикам настоятельно р
Уязвимость CVE-2025-48068 в Next.js позволяет атаковать локальный сервер разработки через Cross-Site WebSocket Hijacking и Cross-Origin Script Inclusion. Проблема затрагивает версии с 13.0.0 по 14.2.29 и с 15.0.0 по 15.2.1, а исправления вышли в версиях 14.2.30 и 15.2.2. Разработчикам настоятельно рекомендуется обновиться и включить проверку происхождения запросов, чтобы защитить исходный код от утечки.
Детали уязвимости CVE-2025-48068
Уязвимость CVE-2025-48068 состоит из двух взаимосвязанных проблем. Первая — Cross-Site WebSocket Hijacking (CSWSH): злоумышленник может инициировать WebSocket-соединение с локальным dev-сервером, если разработчик использует App Router. Это позволяет атаковать приложение и потенциально получить доступ к внутренним данным. Вторая проблема — Cross-Origin Script Inclusion: атакующий может внедрить тег , ссылающийся на предсказуемые пути скриптов разработки (например, /app/page.js), которые затем выполняются в контексте злонамеренного сайта. Это позволяет извлечь исходный код компонентов приложения.
Корень проблемы — недостаточная проверка происхождения запросов к ресурсам локального сервера разработки, включая WebSocket-сервер и конечные точки статических скриптов. Это похоже на более раннюю уязвимость CVE-2018-14732, но CVE-2025-48068 ограничена именно средой разработки.
Как атака может быть проведена на практике?
Атака возможна, когда разработчик запускает next dev и одновременно просматривает вредоносный сайт. Злоумышленник может, например, разместить на своем сайте JavaScript-код, который устанавливает WebSocket-соединение с localhost:3000 (или другим портом dev-сервера). Если сервер не проверяет происхождение запроса, соединение будет принято. Аналогично, внедрение тега с URL скрипта разработки приведет к его выполнению в контексте атакующего сайта, что позволит прочитать исходный код.
Предыстория и контекст
Уязвимость CVE-2025-48068 не первая в Next.js, связанная с недостаточной проверкой происхождения. Ранее CVE-2018-14732 затрагивала аналогичную проблему, но была менее ограничена. Разработчики Next.js постепенно усиливают безопасность dev-сервера, однако текущая реализация оставляет проверку происхождения опциональной. Это связано с необходимостью сохранить совместимость с существующими проектами и инструментами разработки. В будущем, в одном из мажорных релизов, проверка станет обязательной.
Какие версии Next.js уязвимы и как обновиться?
Уязвимость затрагивает все версии Next.js с 13.0.0 по 14.2.29 и с 15.0.0 по 15.2.1. Исправление внесено в версии 14.2.30 и 15.2.2. В этих версиях добавлена опция конфигурации для включения проверки происхождения запросов. Разработчикам необходимо самостоятельно активировать эту опцию после обновления, следуя документации Next.js. Пользователи Vercel могут не беспокоиться: уязвимость затрагивает только локальный сервер разработки, на продакшн-среде Vercel она не проявляется.
Кого затронет и как защититься
Уязвимость в первую очередь касается разработчиков, использующих Next.js с App Router. Если разработчик запускает next dev и одновременно просматривает сайты, которые могут быть вредоносными, существует риск утечки исходного кода. Для разработчиков из России и СНГ это также актуально: многие используют Next.js для создания веб-приложений. Рекомендуется избегать посещения подозрительных сайтов во время работы dev-сервера и применять локальные файрволы или прокси для блокировки неавторизованного доступа.
Что делать, если вы используете уязвимую версию?
Первым шагом должно быть обновление до версии 14.2.30 или 15.2.2. После обновления необходимо включить проверку происхождения запросов в конфигурации Next.js. Это можно сделать, добавив соответствующий параметр в файл next.config.js. Подробная инструкция доступна в официальной документации. Дополнительно стоит временно отключить dev-сервер при посещении незнакомых сайтов или использовать виртуальную машину для изоляции.
Что будет дальше
Разработчики Next.js планируют сделать проверку происхождения запросов обязательной в одном из будущих мажорных релизов. Пока же пользователям рекомендуется обновиться до исправленных версий и включить соответствующую опцию. В долгосрочной перспективе подобные уязвимости будут возникать реже благодаря усилению безопасности dev-сервера.
Итог
CVE-2025-48068 — уязвимость низкой степени опасности, но она напоминает о важности проверки происхождения запросов даже в среде разработки. Разработчикам Next.js следует обновиться до версий 14.2.30 или 15.2.2 и включить проверку происхождения. Это поможет защитить исходный код от потенциальных атак при локальной разработке.