CVE-2026-27970 (GCVE-0-2026-27970)
Vulnerability from cvelistv5 – Published: 2026-02-26 02:03 – Updated: 2026-02-26 14:47
VLAI?
Title
Angular i18n vulnerable to Cross-Site Scripting (XSS)
Summary
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Versions prior to 21.2.0, 21.1.16, 20.3.17, and 19.2.19 have a cross-Site scripting vulnerability in the Angular internationalization (i18n) pipeline. In ICU messages (International Components for Unicode), HTML from translated content was not properly sanitized and could execute arbitrary JavaScript. Angular i18n typically involves three steps, extracting all messages from an application in the source language, sending the messages to be translated, and then merging their translations back into the final source code. Translations are frequently handled by contracts with specific partner companies, and involve sending the source messages to a separate contractor before receiving final translations for display to the end user. If the returned translations have malicious content, it could be rendered into the application and execute arbitrary JavaScript. When successfully exploited, this vulnerability allows for execution of attacker controlled JavaScript in the application origin. Depending on the nature of the application being exploited this could lead to credential exfiltration and/or page vandalism. Several preconditions apply to the attack. The attacker must compromise the translation file (xliff, xtb, etc.). Unlike most XSS vulnerabilities, this issue is not exploitable by arbitrary users. An attacker must first compromise an application's translation file before they can escalate privileges into the Angular application client. The victim application must use Angular i18n, use one or more ICU messages, render an ICU message, and not defend against XSS via a safe content security policy. Versions 21.2.0, 21.1.6, 20.3.17, and 19.2.19 patch the issue. Until the patch is applied, developers should consider reviewing and verifying translated content received from untrusted third parties before incorporating it in an Angular application, enabling strict CSP controls to block unauthorized JavaScript from executing on the page, and enabling Trusted Types to enforce proper HTML sanitization.
Severity ?
CWE
- CWE-79 - Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
Assigner
References
| URL | Tags | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|||||||||||||||||
Impacted products
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-27970",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "total"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-02-26T14:47:13.378204Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-02-26T14:47:38.387Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "angular",
"vendor": "angular",
"versions": [
{
"status": "affected",
"version": "\u003e= 21.2.0-next.0, \u003c 21.2.0"
},
{
"status": "affected",
"version": "\u003e= 21.0.0-next.0, \u003c 21.1.6"
},
{
"status": "affected",
"version": "\u003e= 20.0.0-next.0, \u003c 20.3.17"
},
{
"status": "affected",
"version": "\u003e= 19.0.0-next.0, \u003c 19.2.19"
},
{
"status": "affected",
"version": "\u003c= 18.2.14"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Versions prior to 21.2.0, 21.1.16, 20.3.17, and 19.2.19 have a cross-Site scripting vulnerability in the Angular internationalization (i18n) pipeline. In ICU messages (International Components for Unicode), HTML from translated content was not properly sanitized and could execute arbitrary JavaScript. Angular i18n typically involves three steps, extracting all messages from an application in the source language, sending the messages to be translated, and then merging their translations back into the final source code. Translations are frequently handled by contracts with specific partner companies, and involve sending the source messages to a separate contractor before receiving final translations for display to the end user. If the returned translations have malicious content, it could be rendered into the application and execute arbitrary JavaScript. When successfully exploited, this vulnerability allows for execution of attacker controlled JavaScript in the application origin. Depending on the nature of the application being exploited this could lead to credential exfiltration and/or page vandalism. Several preconditions apply to the attack. The attacker must compromise the translation file (xliff, xtb, etc.). Unlike most XSS vulnerabilities, this issue is not exploitable by arbitrary users. An attacker must first compromise an application\u0027s translation file before they can escalate privileges into the Angular application client. The victim application must use Angular i18n, use one or more ICU messages, render an ICU message, and not defend against XSS via a safe content security policy. Versions 21.2.0, 21.1.6, 20.3.17, and 19.2.19 patch the issue. Until the patch is applied, developers should consider reviewing and verifying translated content received from untrusted third parties before incorporating it in an Angular application, enabling strict CSP controls to block unauthorized JavaScript from executing on the page, and enabling Trusted Types to enforce proper HTML sanitization."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "NETWORK",
"baseScore": 7.6,
"baseSeverity": "HIGH",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "HIGH",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-79",
"description": "CWE-79: Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-02-26T02:03:43.811Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/angular/angular/security/advisories/GHSA-prjf-86w9-mfqv",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/angular/angular/security/advisories/GHSA-prjf-86w9-mfqv"
},
{
"name": "https://github.com/angular/angular/pull/67183",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/angular/angular/pull/67183"
},
{
"name": "https://github.com/angular/angular/commit/306f367899dfc2e04238fecd3455547b5d54075d",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/angular/angular/commit/306f367899dfc2e04238fecd3455547b5d54075d"
},
{
"name": "https://github.com/angular/angular/commit/7d58b798c626bb0e4e5f89ca8affdce4f352b232",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/angular/angular/commit/7d58b798c626bb0e4e5f89ca8affdce4f352b232"
},
{
"name": "https://github.com/angular/angular/commit/b85830953281ff3a1a77bbfe69019d352d509c93",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/angular/angular/commit/b85830953281ff3a1a77bbfe69019d352d509c93"
}
],
"source": {
"advisory": "GHSA-prjf-86w9-mfqv",
"discovery": "UNKNOWN"
},
"title": "Angular i18n vulnerable to Cross-Site Scripting (XSS)"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-27970",
"datePublished": "2026-02-26T02:03:43.811Z",
"dateReserved": "2026-02-25T03:24:57.793Z",
"dateUpdated": "2026-02-26T14:47:38.387Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2026-27970\",\"sourceIdentifier\":\"security-advisories@github.com\",\"published\":\"2026-02-26T02:16:24.353\",\"lastModified\":\"2026-02-27T17:11:53.417\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Versions prior to 21.2.0, 21.1.16, 20.3.17, and 19.2.19 have a cross-Site scripting vulnerability in the Angular internationalization (i18n) pipeline. In ICU messages (International Components for Unicode), HTML from translated content was not properly sanitized and could execute arbitrary JavaScript. Angular i18n typically involves three steps, extracting all messages from an application in the source language, sending the messages to be translated, and then merging their translations back into the final source code. Translations are frequently handled by contracts with specific partner companies, and involve sending the source messages to a separate contractor before receiving final translations for display to the end user. If the returned translations have malicious content, it could be rendered into the application and execute arbitrary JavaScript. When successfully exploited, this vulnerability allows for execution of attacker controlled JavaScript in the application origin. Depending on the nature of the application being exploited this could lead to credential exfiltration and/or page vandalism. Several preconditions apply to the attack. The attacker must compromise the translation file (xliff, xtb, etc.). Unlike most XSS vulnerabilities, this issue is not exploitable by arbitrary users. An attacker must first compromise an application\u0027s translation file before they can escalate privileges into the Angular application client. The victim application must use Angular i18n, use one or more ICU messages, render an ICU message, and not defend against XSS via a safe content security policy. Versions 21.2.0, 21.1.6, 20.3.17, and 19.2.19 patch the issue. Until the patch is applied, developers should consider reviewing and verifying translated content received from untrusted third parties before incorporating it in an Angular application, enabling strict CSP controls to block unauthorized JavaScript from executing on the page, and enabling Trusted Types to enforce proper HTML sanitization.\"},{\"lang\":\"es\",\"value\":\"Angular es una plataforma de desarrollo para construir aplicaciones web m\u00f3viles y de escritorio usando TypeScript/JavaScript y otros lenguajes. Versiones anteriores a 21.2.0, 21.1.16, 20.3.17 y 19.2.19 tienen una vulnerabilidad de cross-site scripting en la tuber\u00eda de internacionalizaci\u00f3n (i18n) de Angular. En los mensajes ICU (International Components for Unicode), el HTML del contenido traducido no se sanitizaba correctamente y pod\u00eda ejecutar JavaScript arbitrario. La i18n de Angular t\u00edpicamente involucra tres pasos: extraer todos los mensajes de una aplicaci\u00f3n en el lenguaje fuente, enviar los mensajes para ser traducidos y luego fusionar sus traducciones de vuelta al c\u00f3digo fuente final. Las traducciones son frecuentemente manejadas por contratos con compa\u00f1\u00edas asociadas espec\u00edficas, e involucran el env\u00edo de los mensajes fuente a un contratista separado antes de recibir las traducciones finales para su visualizaci\u00f3n al usuario final. Si las traducciones devueltas tienen contenido malicioso, este podr\u00eda ser renderizado en la aplicaci\u00f3n y ejecutar JavaScript arbitrario. Cuando se explota con \u00e9xito, esta vulnerabilidad permite la ejecuci\u00f3n de JavaScript controlado por el atacante en el origen de la aplicaci\u00f3n. Dependiendo de la naturaleza de la aplicaci\u00f3n explotada, esto podr\u00eda llevar a la exfiltraci\u00f3n de credenciales y/o vandalismo de p\u00e1gina. Varias precondiciones se aplican al ataque. El atacante debe comprometer el archivo de traducci\u00f3n (xliff, xtb, etc.). A diferencia de la mayor\u00eda de las vulnerabilidades XSS, este problema no es explotable por usuarios arbitrarios. Un atacante debe primero comprometer el archivo de traducci\u00f3n de una aplicaci\u00f3n antes de que pueda escalar privilegios en el cliente de la aplicaci\u00f3n Angular. La aplicaci\u00f3n v\u00edctima debe usar Angular i18n, usar uno o m\u00e1s mensajes ICU, renderizar un mensaje ICU y no defenderse contra XSS a trav\u00e9s de una pol\u00edtica de seguridad de contenido segura. Las versiones 21.2.0, 21.1.6, 20.3.17 y 19.2.19 parchean el problema. Hasta que se aplique el parche, los desarrolladores deber\u00edan considerar revisar y verificar el contenido traducido recibido de terceros no confiables antes de incorporarlo en una aplicaci\u00f3n Angular, habilitar controles CSP estrictos para bloquear la ejecuci\u00f3n de JavaScript no autorizado en la p\u00e1gina y habilitar Trusted Types para forzar una sanitizaci\u00f3n HTML adecuada.\"}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"vectorString\":\"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X\",\"baseScore\":7.6,\"baseSeverity\":\"HIGH\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"PRESENT\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"PASSIVE\",\"vulnConfidentialityImpact\":\"HIGH\",\"vulnIntegrityImpact\":\"HIGH\",\"vulnAvailabilityImpact\":\"NONE\",\"subConfidentialityImpact\":\"NONE\",\"subIntegrityImpact\":\"NONE\",\"subAvailabilityImpact\":\"NONE\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}],\"cvssMetricV31\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N\",\"baseScore\":6.1,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"NETWORK\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"NONE\",\"userInteraction\":\"REQUIRED\",\"scope\":\"CHANGED\",\"confidentialityImpact\":\"LOW\",\"integrityImpact\":\"LOW\",\"availabilityImpact\":\"NONE\"},\"exploitabilityScore\":2.8,\"impactScore\":2.7}]},\"weaknesses\":[{\"source\":\"security-advisories@github.com\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-79\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*\",\"versionEndExcluding\":\"19.2.19\",\"matchCriteriaId\":\"F31C6FF7-F094-4AA9-B370-584B3E38677A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*\",\"versionStartIncluding\":\"20.0.0\",\"versionEndExcluding\":\"20.3.17\",\"matchCriteriaId\":\"1041B5A8-1BDA-46DD-9D1A-AD34856FC36F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*\",\"versionStartIncluding\":\"21.0.0\",\"versionEndExcluding\":\"21.1.6\",\"matchCriteriaId\":\"66E854B9-DE6B-4A38-8CED-098738AF7AF1\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:21.2.0:next0:*:*:*:node.js:*:*\",\"matchCriteriaId\":\"3E704C1A-A984-4809-B67D-50982182527A\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:21.2.0:next1:*:*:*:node.js:*:*\",\"matchCriteriaId\":\"2175852C-07A5-4A07-B632-3BDE8312D3CC\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:21.2.0:next2:*:*:*:node.js:*:*\",\"matchCriteriaId\":\"E9E0E76F-101F-44E4-AEC0-948593438B44\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:21.2.0:next3:*:*:*:node.js:*:*\",\"matchCriteriaId\":\"2521B32B-A211-4570-98FB-FAEE33551018\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:a:angular:angular:21.2.0:rc0:*:*:*:node.js:*:*\",\"matchCriteriaId\":\"07CCF64D-3102-4253-8A52-58CC3EA04DEE\"}]}]}],\"references\":[{\"url\":\"https://github.com/angular/angular/commit/306f367899dfc2e04238fecd3455547b5d54075d\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/angular/angular/commit/7d58b798c626bb0e4e5f89ca8affdce4f352b232\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/angular/angular/commit/b85830953281ff3a1a77bbfe69019d352d509c93\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Patch\"]},{\"url\":\"https://github.com/angular/angular/pull/67183\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Issue Tracking\",\"Patch\"]},{\"url\":\"https://github.com/angular/angular/security/advisories/GHSA-prjf-86w9-mfqv\",\"source\":\"security-advisories@github.com\",\"tags\":[\"Mitigation\",\"Patch\",\"Vendor Advisory\"]}]}}",
"vulnrichment": {
"containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2026-27970\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"total\"}], \"version\": \"2.0.3\", \"timestamp\": \"2026-02-26T14:47:13.378204Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2026-02-26T14:47:32.718Z\"}}], \"cna\": {\"title\": \"Angular i18n vulnerable to Cross-Site Scripting (XSS)\", \"source\": {\"advisory\": \"GHSA-prjf-86w9-mfqv\", \"discovery\": \"UNKNOWN\"}, \"metrics\": [{\"cvssV4_0\": {\"version\": \"4.0\", \"baseScore\": 7.6, \"attackVector\": \"NETWORK\", \"baseSeverity\": \"HIGH\", \"vectorString\": \"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N\", \"userInteraction\": \"PASSIVE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"NONE\", \"subIntegrityImpact\": \"NONE\", \"vulnIntegrityImpact\": \"HIGH\", \"subAvailabilityImpact\": \"NONE\", \"vulnAvailabilityImpact\": \"NONE\", \"subConfidentialityImpact\": \"NONE\", \"vulnConfidentialityImpact\": \"HIGH\"}}], \"affected\": [{\"vendor\": \"angular\", \"product\": \"angular\", \"versions\": [{\"status\": \"affected\", \"version\": \"\u003e= 21.2.0-next.0, \u003c 21.2.0\"}, {\"status\": \"affected\", \"version\": \"\u003e= 21.0.0-next.0, \u003c 21.1.6\"}, {\"status\": \"affected\", \"version\": \"\u003e= 20.0.0-next.0, \u003c 20.3.17\"}, {\"status\": \"affected\", \"version\": \"\u003e= 19.0.0-next.0, \u003c 19.2.19\"}, {\"status\": \"affected\", \"version\": \"\u003c= 18.2.14\"}]}], \"references\": [{\"url\": \"https://github.com/angular/angular/security/advisories/GHSA-prjf-86w9-mfqv\", \"name\": \"https://github.com/angular/angular/security/advisories/GHSA-prjf-86w9-mfqv\", \"tags\": [\"x_refsource_CONFIRM\"]}, {\"url\": \"https://github.com/angular/angular/pull/67183\", \"name\": \"https://github.com/angular/angular/pull/67183\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/angular/angular/commit/306f367899dfc2e04238fecd3455547b5d54075d\", \"name\": \"https://github.com/angular/angular/commit/306f367899dfc2e04238fecd3455547b5d54075d\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/angular/angular/commit/7d58b798c626bb0e4e5f89ca8affdce4f352b232\", \"name\": \"https://github.com/angular/angular/commit/7d58b798c626bb0e4e5f89ca8affdce4f352b232\", \"tags\": [\"x_refsource_MISC\"]}, {\"url\": \"https://github.com/angular/angular/commit/b85830953281ff3a1a77bbfe69019d352d509c93\", \"name\": \"https://github.com/angular/angular/commit/b85830953281ff3a1a77bbfe69019d352d509c93\", \"tags\": [\"x_refsource_MISC\"]}], \"descriptions\": [{\"lang\": \"en\", \"value\": \"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Versions prior to 21.2.0, 21.1.16, 20.3.17, and 19.2.19 have a cross-Site scripting vulnerability in the Angular internationalization (i18n) pipeline. In ICU messages (International Components for Unicode), HTML from translated content was not properly sanitized and could execute arbitrary JavaScript. Angular i18n typically involves three steps, extracting all messages from an application in the source language, sending the messages to be translated, and then merging their translations back into the final source code. Translations are frequently handled by contracts with specific partner companies, and involve sending the source messages to a separate contractor before receiving final translations for display to the end user. If the returned translations have malicious content, it could be rendered into the application and execute arbitrary JavaScript. When successfully exploited, this vulnerability allows for execution of attacker controlled JavaScript in the application origin. Depending on the nature of the application being exploited this could lead to credential exfiltration and/or page vandalism. Several preconditions apply to the attack. The attacker must compromise the translation file (xliff, xtb, etc.). Unlike most XSS vulnerabilities, this issue is not exploitable by arbitrary users. An attacker must first compromise an application\u0027s translation file before they can escalate privileges into the Angular application client. The victim application must use Angular i18n, use one or more ICU messages, render an ICU message, and not defend against XSS via a safe content security policy. Versions 21.2.0, 21.1.6, 20.3.17, and 19.2.19 patch the issue. Until the patch is applied, developers should consider reviewing and verifying translated content received from untrusted third parties before incorporating it in an Angular application, enabling strict CSP controls to block unauthorized JavaScript from executing on the page, and enabling Trusted Types to enforce proper HTML sanitization.\"}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-79\", \"description\": \"CWE-79: Improper Neutralization of Input During Web Page Generation (\u0027Cross-site Scripting\u0027)\"}]}], \"providerMetadata\": {\"orgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"shortName\": \"GitHub_M\", \"dateUpdated\": \"2026-02-26T02:03:43.811Z\"}}}",
"cveMetadata": "{\"cveId\": \"CVE-2026-27970\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-02-26T14:47:38.387Z\", \"dateReserved\": \"2026-02-25T03:24:57.793Z\", \"assignerOrgId\": \"a0819718-46f1-4df5-94e2-005712e83aaa\", \"datePublished\": \"2026-02-26T02:03:43.811Z\", \"assignerShortName\": \"GitHub_M\"}",
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…