В Next.js нашли критическую уязвимость, позволяющую полностью обойти механизм проверки авторизации и защиты в middleware.
Проблема кроется в заголовке
x-middleware-subrequest, который используется для предотвращения рекурсивных запросов. Фреймворк отслеживает глубину рекурсии с помощью этого заголовка, и если она достигает порога 5 вызовов, middleware пропускается. Злоумышленник может просто добавить к своему запросу этот заголовок, искусственно указав максимальную глубину рекурсии, из-за чего редирект просто не выполнится, а запрос напрямую попадёт к защищённым маршрутам.Уязвимость затрагивает Next.js приложения с версиями от 11.1.4, использующие запуск с опцией «output: 'standalone'». Разработчики выпустили патчи для популярных версий — рекомендуется обновиться немедленно.
Для тех, кто не может быстро обновиться, единственный выход — блокировать запросы с заголовком
x-middleware-subrequest на уровне WAF.НеКасперский
