215 lines
9.3 KiB
JSON
215 lines
9.3 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2026-101895",
|
|
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "GitHub_M",
|
|
"dateReserved": "2026-09-28T15:55:37.906Z",
|
|
"datePublished": "2026-10-14T15:00:14.385Z",
|
|
"dateUpdated": "2026-10-14T17:38:10.017Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"title": "Angular SSR: Denial of Service (DoS) via Infinite Loop on Malformed DOCTYPE",
|
|
"problemTypes": [
|
|
{
|
|
"descriptions": [
|
|
{
|
|
"cweId": "CWE-400",
|
|
"lang": "en",
|
|
"description": "CWE-400: Uncontrolled Resource Consumption",
|
|
"type": "CWE"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"descriptions": [
|
|
{
|
|
"cweId": "CWE-835",
|
|
"lang": "en",
|
|
"description": "CWE-835: Loop with Unreachable Exit Condition ('Infinite Loop')",
|
|
"type": "CWE"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"cvssV4_0": {
|
|
"attackVector": "NETWORK",
|
|
"attackComplexity": "LOW",
|
|
"attackRequirements": "NONE",
|
|
"privilegesRequired": "NONE",
|
|
"userInteraction": "NONE",
|
|
"vulnConfidentialityImpact": "NONE",
|
|
"vulnIntegrityImpact": "NONE",
|
|
"vulnAvailabilityImpact": "HIGH",
|
|
"subConfidentialityImpact": "NONE",
|
|
"subIntegrityImpact": "NONE",
|
|
"subAvailabilityImpact": "NONE",
|
|
"baseScore": 8.7,
|
|
"baseSeverity": "HIGH",
|
|
"vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N",
|
|
"version": "4.0"
|
|
}
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"name": "https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7",
|
|
"tags": [
|
|
"x_refsource_CONFIRM"
|
|
],
|
|
"url": "https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/angular/commit/3db26e2544964d07a520836ad01f02f36ec88e25",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/angular/commit/3db26e2544964d07a520836ad01f02f36ec88e25"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/angular/commit/fc2e8fbc0bda2f5c11585e8a0cbd88c074f5e567",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/angular/commit/fc2e8fbc0bda2f5c11585e8a0cbd88c074f5e567"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/domino/commit/4d97473116d000e3fd4d6f75ec98cbd67576fa6f",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/domino/commit/4d97473116d000e3fd4d6f75ec98cbd67576fa6f"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/angular/releases/tag/v20.3.31",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/angular/releases/tag/v20.3.31"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/angular/releases/tag/v21.2.23",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/angular/releases/tag/v21.2.23"
|
|
},
|
|
{
|
|
"name": "https://github.com/angular/angular/releases/tag/v22.1.6",
|
|
"tags": [
|
|
"x_refsource_MISC"
|
|
],
|
|
"url": "https://github.com/angular/angular/releases/tag/v22.1.6"
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"vendor": "angular",
|
|
"product": "angular",
|
|
"versions": [
|
|
{
|
|
"version": "<= 19.2.25",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 20.0.0, < 20.3.31",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 21.0.0, < 21.2.23",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 22.0.0, < 22.1.6",
|
|
"status": "affected"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"vendor": "@angular/",
|
|
"product": "platform-server",
|
|
"versions": [
|
|
{
|
|
"version": "<= 19.2.25",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 20.0.0, < 20.3.31",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 21.0.0, < 21.2.23",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": ">= 22.0.0, < 22.1.6",
|
|
"status": "affected"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"providerMetadata": {
|
|
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
|
|
"shortName": "GitHub_M",
|
|
"dateUpdated": "2026-10-14T15:00:14.385Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.31, 21.2.23, and 22.1.6, the @angular/platform-server DOM emulation parser can enter an infinite synchronous loop when Angular server-side rendering processes attacker-controlled HTML containing an incomplete DOCTYPE that ends with whitespace at end of input. In Domino lib/HTMLParser.js, after_doctype_name_state emits doctype and EOF tokens without advancing nextchar or leaving the fixed-lookahead state, so the scanner repeatedly handles the same EOF marker. A remote unauthenticated attacker can use this condition through server-side HTML parsing paths such as innerHTML binding to consume a Node.js SSR worker at full CPU, starve the event loop, and stop concurrent and subsequent requests. This issue is fixed in versions 20.3.31, 21.2.23, and 22.1.6."
|
|
}
|
|
],
|
|
"source": {
|
|
"advisory": "GHSA-f67j-2jqw-jpq7",
|
|
"discovery": "UNKNOWN"
|
|
}
|
|
},
|
|
"adp": [
|
|
{
|
|
"references": [
|
|
{
|
|
"url": "https://github.com/angular/angular/security/advisories/GHSA-f67j-2jqw-jpq7",
|
|
"tags": [
|
|
"exploit"
|
|
]
|
|
}
|
|
],
|
|
"metrics": [
|
|
{
|
|
"other": {
|
|
"type": "ssvc",
|
|
"content": {
|
|
"timestamp": "2026-10-14T17:37:35.859234Z",
|
|
"id": "CVE-2026-101895",
|
|
"options": [
|
|
{
|
|
"Exploitation": "poc"
|
|
},
|
|
{
|
|
"Automatable": "yes"
|
|
},
|
|
{
|
|
"Technical Impact": "partial"
|
|
}
|
|
],
|
|
"role": "CISA Coordinator",
|
|
"version": "2.0.3"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"title": "CISA ADP Vulnrichment",
|
|
"providerMetadata": {
|
|
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
|
"shortName": "CISA-ADP",
|
|
"dateUpdated": "2026-10-14T17:38:10.017Z"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |