CVE-2026-88060
Angular: SSR XSS via Unescaped Content Across DocumentFragment Boundaries in Fallback Raw-Content Elements
Что произошло
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.30, 21.2.22, and 22.1.4, Angular server-side rendering (SSR) in @angular/platform-server serializes untrusted input inside template content nested in fallback raw-content elements such as noscript, iframe, noembed, and noframes. The Domino serializer's fallbackRawContentTags traversal stopped at the DocumentFragment used by template.content, so matching closing tags in xmp, style, script, comments, or text nodes were not escaped. Standard interpolation with comments or text nodes is reachable without relaxed schemas; literal xmp or style requires CUSTOM_ELEMENTS_SCHEMA or NO_ERRORS_SCHEMA, while Renderer2 imperative DOM construction is unconditionally affected. When HTML5 RAWTEXT browser parsing encounters the unescaped closing tag, it exits the fallback container and interprets trailing markup as active DOM elements, enabling arbitrary JavaScript execution. This issue is fixed in versions 20.3.30, 21.2.22, and 22.1.4.
Что это значит
Входные данные могут попасть в страницу как активное содержимое. При выполнении условий атаки это затрагивает пользователей приложения.
Что делать
1. Проверьте, затронуты ли вы
Соберите инвентаризацию и сравните с таблицей затронутых версий. Эти команды только показывают установленные компоненты и сами по себе не доказывают наличие CVE.
dpkg-query -W -f='${Package} ${Version}\n'rpm -qa --qf '%{NAME}\t%{VERSION}-%{RELEASE}\n'Get-HotFix | Select-Object HotFixID, InstalledOn
2. Установите исправление
Сверьте точный продукт и версию с бюллетенем вендора. Установите указанное в нём исправление после резервного копирования и проверки совместимости. Подтверждённая целевая версия в источниках отсутствует.
3. Временные меры
До проверки бюллетеня ограничьте доступ к затронутому компоненту доверенными узлами. Оцените сегментацию и отключение ненужных интерфейсов с владельцем сервиса; универсального правила WAF для этой CVE не подтверждено.
4. Проверьте следы эксплуатации
Проверьте аномальные входы, новые учётные записи, ошибки и необычные дочерние процессы в затронутом сервисе. Публичные проверенные правила обнаружения не включены в запись; отсутствие сигналов не доказывает отсутствие компрометации.
5. После исправления
- Проверьте фактическую версию и результат установки по бюллетеню.
- При необходимости перезапустите сервисы в согласованное окно.
- Повторите проверку сканером и функциональные проверки.
- Зафиксируйте результат, дату, владельца и оставшийся риск.
Продукты и затронутые версии
angular / angular
{
"status": "affected",
"version": "<= 19.2.25"
}{
"status": "affected",
"version": ">= 20.0.0, < 20.3.30"
}{
"status": "affected",
"version": ">= 21.0.0, < 21.2.22"
}{
"status": "affected",
"version": ">= 22.0.0, < 22.1.4"
}@angular/platform-server npm
{
"status": "affected",
"version": "*",
"versionEndExcluding": "22.1.4",
"versionStartIncluding": "22.0.0"
}@angular/platform-server npm
{
"status": "affected",
"version": "*",
"versionEndExcluding": "21.2.22",
"versionStartIncluding": "21.0.0"
}@angular/platform-server npm
{
"status": "affected",
"version": "*",
"versionEndExcluding": "20.3.30",
"versionStartIncluding": "20.0.0"
}@angular/platform-server npm
{
"status": "affected",
"version": "*",
"versionEndIncluding": "19.2.25"
}CVSS: оценки и векторы
CVSS 4.0 · cve8.6
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Источники и ссылки
Происхождение полей
{
"cwes": [
"cve"
],
"epss": {
"source": "epss",
"received_at": "2026-11-05T21:16:43.146012+00:00"
},
"title": {
"source": "cve",
"received_at": "2026-10-28T21:40:11.471063+00:00"
},
"scores": [
"cve"
],
"status": {
"source": "cve",
"received_at": "2026-10-28T21:40:11.471063+00:00"
},
"affected": [
"cve",
"osv"
],
"published": {
"source": "cve",
"received_at": "2026-10-28T21:40:11.471063+00:00"
},
"solutions": [],
"percentile": {
"source": "epss",
"received_at": "2026-11-05T21:16:43.146012+00:00"
},
"references": [
"cve",
"osv"
],
"description": {
"source": "cve",
"received_at": "2026-10-28T21:40:11.471063+00:00"
},
"workarounds": [],
"configurations": []
}Хронология записи
- Данные обновлены06.11.2026, 00:16
- Данные обновлены05.11.2026, 00:20
- Данные обновлены04.11.2026, 00:15
- Данные обновлены03.11.2026, 00:15
- Данные обновлены02.11.2026, 15:16
- Данные обновлены02.11.2026, 00:12
- Данные обновлены31.10.2026, 12:00
- Данные обновлены29.10.2026, 12:44
- Появилась ссылка на PoC29.10.2026, 00:40
Личная заметка и статус
Другие CVE того же продукта
| УЯЗВИМОСТЬ / ПРОДУКТ | ПРИОРИТЕТ | CVSS | EPSS | СИГНАЛЫ | ОПУБЛИКОВАНА | Карточка |
|---|---|---|---|---|---|---|
| CVE-2026-111754 Angular: Open Redirect via Protocol-Relative URLs in Server-Side Rendering (SSR) angular / angular · @angular/platform-server | Средний | 5.1 | 0,98 % | 03.11.2026 | ||
| CVE-2026-101895 Angular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPE angular / angular · @angular/ / platform-server | Критический | 8.7 | 0,87 % | PoC | 14.10.2026 | |
| CVE-2026-88058 Angular: SSR XSS via Unescaped Processing Instruction () Nodes in Fallback Raw-Content Elements angular / angular · @angular/platform-server | Критический | 8.6 | 0,28 % | PoC | 10.09.2026 | |
| CVE-2026-88056 Angular: SSRF and Cross-Origin Credential Disclosure via URL Resolution Discrepancy in SSR angular / angular · @angular/platform-server | Критический | 8.6 | 0,54 % | PoC | 10.09.2026 | |
| CVE-2026-50556 Angular: Missing `` Raw-Text Serialization Escaping leads to Cross-Site Scripting (XSS) in Angular SSR angular / angular · Red Hat / Red Hat Enterprise Linux 8 | Высокий | 8.6 | 0,41 % | 22.06.2026 |