Astro — это веб-фреймворк для веб-сайтов, ориентированных на контент. В версиях с 8.1.0 по 11.0.1, когда настроен TrailingSlash: 'always', обработчик статических файлов автономного сервера @astrojs/node добавляет завершающую косую черту к путям запроса и выполняет перенаправление 301. Пути, начинающиеся с /\ (косая черта-обратная косая черта), не распознавались как внутренние пути, поэтому обработчик отображал необработанный путь обратно в заголовок Location.
Поскольку браузеры обрабатывают \ как / согласно спецификации URL-адреса WHATWG, результирующее перенаправление может быть разрешено на внешний хост. Предварительные условия для использования: TrailingSlash: должно быть установлено значение «всегда» (отлично от значения по умолчанию; значение по умолчанию — «игнорировать»), путь запроса не должен иметь расширения файла в последнем сегменте, а злоумышленник должен доставить созданную ссылку пользователю. Эта проблема исправлена в версии 11.0.2.
Показать оригинальное описание (EN)
Astro is a web framework for content-driven websites. In versions 8.1.0 through 11.0.1, when trailingSlash: 'always' is configured, the @astrojs/node standalone server's static file handler appends a trailing slash to request paths and issues a 301 redirect. Paths beginning with /\ (slash-backslash) were not recognized as internal paths, so the handler would echo the raw path back in the Location header. Because browsers treat \ as / per the WHATWG URL specification, the resulting redirect could resolve to an external host. Preconditions for exploitation: trailingSlash: 'always' must be set (non-default; the default is 'ignore'), the request path must not have a file extension in its final segment, and an attacker must deliver the crafted link to a user. This issue has been fixed in version 11.0.2.
Характеристики атаки
Последствия
Строка CVSS v4.0