Nuxt — фреймворк веб-разработки с открытым исходным кодом для Vue.js. От 3.0.0 до 4.6.4, Nuxt оборачивает ошибки, не связанные с HTTP, брошенные во время рендеринга сервера с помощью createError, и неправильно трактует результат как ошибку, преднамеренно обнаруженную приложением. Таким образом, в процессе производства полезная нагрузка страницы ошибок (__NUXT_DATA__) и ответ на ошибку JSON могут раскрывать исходное сообщение и данные, включая секреты строки запросов $fetch URL, тела ответов, хосты баз данных или аналогичные конфиденциальные детали, независимо от того, что отображает пользовательский error.vue.
Ошибки, намеренно создаваемые с помощью createError или showError, ошибки, возвращаемые useFetch или useAsyncData, и маршруты сервера/API не затрагиваются, потому что их поведение, видимое клиенту, является преднамеренным или следует по другому пути. Эта проблема исправлена в версии 4.6.4.
Показать оригинальное описание (EN)
Nuxt is an open-source web development framework for Vue.js. From 3.0.0 until 4.6.4, Nuxt wraps non-HTTP errors thrown during server rendering with createError and incorrectly treats the result as an error deliberately exposed by the application. In production, the error page payload (__NUXT_DATA__) and JSON error response can therefore disclose the original message and data, including an upstream $fetch URL, query-string secrets, response bodies, database hosts, or similar sensitive details, regardless of what a custom error.vue renders. Errors deliberately created with createError or showError, errors returned by useFetch or useAsyncData, and server/api routes are not affected because their client-visible behavior is intentional or follows a different path. This issue is fixed in version 4.6.4.
Характеристики атаки
Последствия
Строка CVSS v3.1