Media

Angular: Sanitization bypass via directive host bindings on concrete host elements in @angular/core and @angular/compiler

  • Publicada: 10.09.2026
  • Actualizado: 11.10.2026 10:22

Angular automatically sanitizes untrusted values bound to security-sensitive DOM sinks (such as href, src, action, xlink:href, and data) to protect against Cross-Site Scripting (XSS).

Prior to the fix, the Angular compiler determined the SecurityContext for directive host bindings (host: {'[attr.href]': 'value'} or @HostBinding('attr.href')) based solely on the declaring directive or component selector at compile time, rather than the concrete host element that the directive was applied to.

When a directive with a security-sensitive host binding was applied to a different concrete host element—such as through:

  • hostDirectives composition,
  • Class inheritance of host bindings,
  • Dynamic component instantiation (createComponent with custom hostElement or dynamic directives),
  • Elements with SVG/MathML namespaces (e.g. <svg:a>, <math>), or
  • Elements using tag-neutral selectors (e.g. :not(...)),

the compiler either failed to associate a sanitizer with the host binding or attached an incorrect security context. As a result, untrusted inputs (e.g. javascript:... URLs) bound via the host binding would be written to the DOM attribute without passing through Angular's built-in sanitizer.

Impact

An attacker capable of controlling the value bound to an affected directive host binding could execute arbitrary JavaScript in the user's browser context (Cross-Site Scripting).

Patches

This issue has been resolved in versions:

  • 22.1.0
  • 21.2.20
  • 20.3.28

Workarounds

Ensure that any user-controlled values assigned to properties bound via directive host bindings are explicitly sanitized using DomSanitizer.sanitize(SecurityContext.URL, ...) before assignment, or restrict the input to validated safe URL schemes (e.g. http://, https://).

Software afectado

Haz clic en una tecnología para ver todas sus vulnerabilidades.

PlataformaPaqueteVersiones vulnerablesCorregida en
Paquete de npm @angular/compiler >= 22.0.0, < 22.1.0, >= 21.0.0, < 21.2.20, >= 20.0.0, < 20.3.28, <= 19.2.25 22.1.0, 21.2.20, 20.3.28
Paquete de npm @angular/core >= 22.0.0, < 22.1.0, >= 21.0.0, < 21.2.20, >= 20.0.0, < 20.3.28, <= 19.2.25 22.1.0, 21.2.20, 20.3.28

Referencias

Puntuación CVSS -
Vector CVSS
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:N
Debilidad (CWE)
CWE-79
Plataforma
npm
Paquete
@angular/compiler, @angular/core
Publicada
10.09.2026
Actualizado
11.10.2026 10:22

Fuentes y licencias

OSV / GitHub Advisory Database - GHSA-hh8m-fm6v-7cvg - CC BY 4.0

Historial de vulnerabilidades: @angular/compiler

Todas las vulnerabilidades publicadas de este paquete (Paquete de npm), de la más reciente a la más antigua. Muestra si es un fallo aislado o un paquete que hay que vigilar.

Entradas en total
7
Primera → última
12.2025 09.2026
Sin corrección
0
Explotada en ataques
0

Distribución por gravedad

  • Alta 4
  • Media 3

Divulgaciones por año

  1. 2025: 1
  2. 2026: 6
  1. Angular: Sanitization bypass via directive host bindings on concrete host elements in @angular/core and @angular/compiler esta entrada
    Media CVE-2026-88057 >= 22.0.0, < 22.1.0, >= 21.0.0, < 21.2.20, >= 20.0.0, < 20.3.28, <= 19.2.25 22.1.0, 21.2.20, 20.3.28
  2. Alta CVE-2026-69151 >= 22.0.0-next.0, < 22.0.1, >= 21.0.0-next.0, < 21.2.19, >= 20.0.0-next.0, < 20.3.27, <= 19.2.25 22.0.1, 21.2.19, 20.3.27
  3. Media · 6.1 CVE-2026-54265 >= 22.0.0-next.0, < 22.0.1, >= 21.0.0-next.0, < 21.2.17, >= 20.0.0-next.0, < 20.3.25, <= 19.2.25 22.0.1, 21.2.17, 20.3.25
  4. Media · 6.1 CVE-2026-50557 >= 21.0.0-next.0, < 21.2.15, >= 22.0.0-next.0, < 22.0.0-rc.2, >= 20.0.0-next.0, < 20.3.22, >= 19.0.0-next.0, < 19.2.22, <= 18.2.14 21.2.15, 22.0.0-rc.2, 20.3.22, 19.2.22
  5. Alta · 9.0 CVE-2026-32635 >= 22.0.0-next.0, < 22.0.0-next.3, >= 21.0.0-next.0, < 21.2.4, >= 20.0.0-next.0.0.0, < 20.3.18, >= 19.0.0-next.0, < 19.2.20, >= 17.0.0-next.0, <= 18.2.14 22.0.0-next.3, 21.2.4, 20.3.18, 19.2.20
  6. Alta CVE-2026-22610 >= 21.1.0-next.0, < 21.1.0-rc.0, >= 21.0.0-next.0, < 21.0.7, >= 20.0.0-next.0, < 20.3.16, >= 19.0.0-next.0, < 19.2.18, <= 18.2.14 21.1.0-rc.0, 21.0.7, 20.3.16, 19.2.18
  7. Alta CVE-2025-66412 >= 21.0.0-next.0, < 21.0.2, >= 20.0.0-next.0, < 20.3.15, >= 19.0.0-next.0, < 19.2.17, <= 18.2.14 21.0.2, 20.3.15, 19.2.17

Identifica las vulnerabilidades de tu aplicación

Con la integración de DockRay y el inventario de software activado, DockRay compara las versiones notificadas de los componentes con las vulnerabilidades conocidas y avisa de las coincidencias confirmadas. La cobertura depende de la tecnología compatible y de los avisos disponibles.

Conectar tu aplicación
Newsletter DockRay

La seguridad de tus aplicaciones en tu correo

Vulnerabilidades importantes, recomendaciones concretas y consejos prácticos para tus aplicaciones. Elige tus tecnologías y sigue lo que importa para tu proyecto.

  • Un resumen diario de nuevas vulnerabilidades, también las críticas.
  • Avisos sobre actualizaciones importantes.
  • Consejos prácticos sobre seguridad y monitorización de aplicaciones.

Déjalo vacío para recibir avisos de todas las tecnologías.

Suscripción gratuita. Date de baja con un clic en cualquier correo.