Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Vypuski ispravleniy bezopasnosti nuxt
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Выпуски исправлений безопасности Nuxt

Источник: Nuxt•25 сентября 2026 г. в 04:00

Выпуски исправлений безопасности Nuxt

Вышли Nuxt 4.5.1 и 3.21.10, исправляющие несколько проблем безопасности, а также критическое исправление в @nuxt/devtools 3.3.1. Мы рекомендуем обновиться как можно скорее.

Мы выпустили Nuxt 4.5.1 и Nuxt 3.21.10 — патчи безопасности для веток 4.x и 3.x. Мы рекомендуем обновиться прямо сейчас:

Обновление файла блокировки (lockfile) также подтягивает @nuxt/devtools@3.3.1, что исправляет отдельную критическую проблему, затрагивающую только режим разработки, поэтому убедитесь, что он тоже обновился.

Если по какой-то причине вы не можете обновиться до исправленных версий (например, ваша версия жестко зафиксирована), Socket предоставил

которые можно применить для разных веток в качестве временной меры. Обновление по-прежнему остается рекомендуемым способом устранения проблемы.

Если вы уже обновились из-за предыдущего уведомления о правилах маршрутизации (

), вам все равно нужен этот выпуск. Одна из проблем ниже является регрессией, внесенной именно этим исправлением, поэтому версии 4.4.7+ или 3.21.7+ не гарантируют безопасность.

🔍 Что исправлено

В связанных ниже бюллетенях содержатся все подробности. Ниже приводится краткая информация с примечаниями о том, затронута ли ваша система:

Удаленное выполнение кода на стороне сервера через пропсы серверных островов (Высокая)

Вы затронуты только в том случае, если вы включили vue.runtimeCompiler (который отключен по умолчанию) и используете серверные компоненты или острова, пропсы которых могут попадать в механизм разрешения динамических компонентов Vue: <component :is>, resolveDynamicComponent, h() или полиморфный проп as / asChild, например тот, который @nuxt/ui предоставляет через reka-ui. В такой конфигурации злоумышленник может внедрить ключ шаблона в пропсы острова и заставить компилятор времени выполнения Vue выполнить произвольный код в серверном процессе (Nitro). Поскольку vue.runtimeCompiler по умолчанию отключен, большинство приложений не затронуты, но при выполнении предварительных условий последствия выражаются в полном удаленном выполнении кода на стороне сервера.

Эта уязвимость тесно связана с предыдущей, но не требует vue.runtimeCompiler, поэтому она затрагивает больше конфигураций. Если серверный остров перенаправляет недекларированный проп в полиморфный корень as (тот же паттерн @nuxt/ui / reka-ui, включая неявное использование механизма проброса атрибутов Vue), злоумышленник может передать обычную строку, такую как { "as": "iframe" }, или имя зарегистрированного глобально компонента для создания произвольного HTML-элемента или компонента. Это не позволяет выполнять код. Объявление пропсов, принимаемых вашим островом, или установка для него значения inheritAttrs: false также предотвращают это.

Обход авторизации правил маршрутизации (Высокая)

Вы затронуты, если полагаетесь на routeRules с appMiddleware в качестве механизма авторизации, и любой ключ правила содержит символ верхнего регистра, будь то имя из файла страницы вроде pages/Admin.vue или явно написанное правило routeRules: { '/Admin': ... }. Регистронезависимая маршрутизация (по умолчанию) отображала страницу, в то время как правило и его промежуточное ПО (middleware) молча пропускались. Это та самая регрессия, о которой упоминалось выше.

Теперь правила маршрутизации сопоставляются без учета регистра, как это по умолчанию делает vue-router. Если вы намеренно использовали сопоставление правил маршрутизации с учетом регистра, установите router.options.sensitive: true.

Отказ в обслуживании серверного компонента (Высокая)

GHSA-hxcr-hm88-mpq6 и GHSA-9pgf-384g-p7mv

Вы затронуты, если ваше приложение использует серверные компоненты или острова (эндпоинт /__nuxt_island). Неаутентифицированный запрос может привести к сбою сервера из-за развертывания цикла v-for по пропсу или исчерпать ресурсы ЦП на синтаксический анализ и хеширование запроса чрезмерного размера до того, как он будет отклонен.

Раскрытие полезной нагрузки между пользователями на кешированных страницах (Высокая)

GHSA-wm8w-6qjm-cv43, только для 4.x (>= 4.4.0; ветка 3.x не затронута)

Вы затронуты, если используете правила маршрутизации cache, swr или isr на аутентифицированных страницах, которые отображают специфичные для пользователя данные. Кешированный файл _payload.json мог быть выдан другому пользователю или неаутентифицированному посетителю, даже если HTML-код изменялся корректно.

После обновления очистите любой CDN-кеш или кеш на периферии (edge cache), который уже может содержать утечку _payload.json. Некорректный ответ уже может быть закеширован выше по цепочке, и одно лишь обновление не удалит его.

Раскрытие путей сервера разработки (Низкая)

Вы затронуты только в том случае, если вы запуск сервера разработки привязан к сетевому интерфейсу (nuxi dev --host) в ненадежной сети. Эндпоинт рабочей области Chrome DevTools раскрывал абсолютный путь проекта и UUID рабочей области клиенту локальной сети.

Удаленное выполнение кода в Nuxt DevTools (Критическая, только для разработки)

GHSA-279x-mwfv-vcqv, исправлено в @nuxt/devtools@3.3.1

Вы затронуты, если запускаете nuxt dev с включенными DevTools. Неаутентифицированный RPC-метод, выставленный через сокет Vite HMR, мог запустить произвольную команду на вашей машине, доступную из другого процесса на вашем хосте, узла локальной сети при использовании флага --host или вредоносного сайта, который вы посещаете во время работы сервера разработки. Это никогда не затрагивает продакшн, но, пожалуйста, убедитесь, что ваш файл блокировки подтянул новую версию.

💚 Спасибо

Огромное спасибо исследователям, которые ответственно сообщили об этих проблемах: Pig-Tail, sec-reex, DavidCarliez, manop55555, dinhvaren, quantumshiro, Saku0512 и TazmiDev.

Эти отчеты поступили через процесс частного уведомления GitHub, причем один из них дошел до нас через программу вознаграждения за ошибки Vercel OSS на HackerOne. Что касается удаленного выполнения кода на стороне сервера, мы также сотрудничали с командами Vercel, Netlify и Cloudflare для заблаговременного уведомления, чтобы они могли принять защитные меры до этого раскрытия.

Если вы считаете, что обнаружили уязвимость в Nuxt, пожалуйста, сообщите о ней конфиденциально через вкладку Security в соответствующем репозитории или отправьте письмо на security@nuxtjs.org, если это невозможно. Мы очень ценим ответственное раскрытие информации.

← Все статьи

О чём эта статья