CVE-2026-33397

MEDIUM CVSS 4.0: 6,9 EPSS 0.05%
Обновлено 30 марта 2026
Параметр Значение
CVSS 6,9 (MEDIUM)
Уязвимые версии до 22.0.0
Тип уязвимости CWE-601 (Открытое перенаправление)
Публичный эксплойт Нет

Angular SSR — это серверный инструмент рендеринга для приложений Angular. Версии ветки 22.x до 22.0.0-next.2, ветки 21.x до 21.2.3 и ветки 20.x до 20.3.21 имеют уязвимость Open Redirect в `@angular/ssr` из-за неполного исправления CVE-2026-27738. Хотя исходное исправление успешно заблокировало несколько начальных косых черт (например, `///`), внутренняя логика проверки не учитывает обход одной обратной косой черты (`\`).

Когда приложение Angular SSR развертывается за прокси-сервером, который передает заголовок `X-Forwarded-Prefix`, злоумышленник предоставляет значение, начинающееся с одной обратной косой черты, внутренняя проверка не смогла пометить одиночную обратную косую черту как недействительную, приложение добавляет ведущую косую черту, в результате чего заголовок `Location` содержит URL-адрес, а современные браузеры интерпретируют последовательность `/\` как `//`, рассматривая ее как URL-адрес, относящийся к протоколу, и перенаправляют пользователя на Домен, контролируемый злоумышленником. Кроме того, в ответе отсутствует заголовок Vary: X-Forwarded-Prefix, что позволяет вредоносному перенаправлению храниться в промежуточных кэшах (отравление веб-кеша). Версии 22.0.0-next.2, 21.2.3 и 20.3.21 содержат исправление.

До тех пор, пока патч не будет применен, разработчикам следует очистить заголовок X-Forwarded-Prefix в файле server.ts перед тем, как движок Angular обработает запрос.

Показать оригинальное описание (EN)

The Angular SSR is a server-rise rendering tool for Angular applications. Versions on the 22.x branch prior to 22.0.0-next.2, the 21.x branch prior to 21.2.3, and the 20.x branch prior to 20.3.21 have an Open Redirect vulnerability in `@angular/ssr` due to an incomplete fix for CVE-2026-27738. While the original fix successfully blocked multiple leading slashes (e.g., `///`), the internal validation logic fails to account for a single backslash (`\`) bypass. When an Angular SSR application is deployed behind a proxy that passes the `X-Forwarded-Prefix` header, an attacker provides a value starting with a single backslash, the internal validation failed to flag the single backslash as invalid, the application prepends a leading forward slash, resulting in a `Location` header containing the URL, and modern browsers interpret the `/\` sequence as `//`, treating it as a protocol-relative URL and redirecting the user to the attacker-controlled domain. Furthermore, the response lacks the `Vary: X-Forwarded-Prefix` header, allowing the malicious redirect to be stored in intermediate caches (Web Cache Poisoning). Versions 22.0.0-next.2, 21.2.3, and 20.3.21 contain a patch. Until the patch is applied, developers should sanitize the `X-Forwarded-Prefix` header in their `server.ts` before the Angular engine processes the request.

Характеристики атаки

Способ атаки
По сети
Атака возможна удалённо
Сложность
Низкая
Легко эксплуатировать
Условия для атаки
Не требуются
Нет дополнительных условий
Нужны права
Не требуются
Права не нужны
Участие пользователя
Не требуется
Не нужно действие пользователя

Последствия

Конфиденциальность
Нет
Нет утечки данных
Целостность
Нет
Нет модификации данных
Доступность
Нет
Нет нарушения работы

Строка CVSS v4.0