Skip to main content

Angular DevTools CVE-2026-101897

| EUVDEUVD-2026-101143 MEDIUM
Origin Validation Error (CWE-346)
2026-10-14 GitHub_M
5.1
CVSS 4.0 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain victim's randomized tabId
  2. Exploit
    Send crafted runtime message to DevTools service worker
  3. Execution
    Extension attaches chrome.debugger to target tab
  4. Impact
    Trigger CDP breakpoint and freeze tab JavaScript

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Origin validation
Exploitation Conditions

The victim must have the Angular DevTools browser extension (versions 1.20.0 through 1.21.0) installed and active in Chrome. The attacker must control an untrusted web page or third-party content script AND must have obtained a valid randomized victim tabId, which the extension uses as the only gate before the background service worker accepts a chrome.runtime.sendMessage and attaches chrome.debugger to the target tab. Limiting factors that reduce realistic risk: the randomized tabId requirement raises attack complexity (AC:H), user interaction is needed (UI:P), the extension is a developer-only tool rather than a production component, and the achievable effect is limited to pausing/freezing a single tab (availability) - not code execution, data theft, or cross-origin access.

Impact

This is a genuinely low-priority issue despite a medium CVSS 4.0 score of 5.1. The vendor-provided CVSS 4.0 vector (AV:N/AC:H/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:N/SI:L/SA:H) shows the real picture: although the attack vector is network-reachable and unauthenticated (PR:N), attack complexity is High (AC:H) because the attacker must first obtain a valid randomized victim tabId, and user interaction is required (UI:P). Critically, all vulnerable-system impacts are None and the only meaningful consequences are a Low subsequent-system integrity (SI:L) and High subsequent-system availability (SA:H) effect - i.e. a denial-of-service/annoyance against a single browser tab, not compromise. The vendor advisory explicitly states there is NO remote code execution, NO privilege escalation, and NO cross-origin access to memory or credentials, which directly contradicts the input Tags 'RCE' and 'Privilege Escalation' (see data_quality_flags). No EPSS score, CISA KEV listing, or POC was supplied, so there is no public exploit identified at time of analysis and no evidence of active exploitation. The combination of high attack complexity, availability-only impact, and a developer-tool attack surface makes this a low real-world risk that does not warrant emergency patching.

Exploit ScenarioDerived

A developer running Angular DevTools (1.20.0-1.21.0) visits a malicious or compromised web page while another tab is open. The page, having obtained the victim's randomized tabId, sends a crafted chrome.runtime.sendMessage to the extension's background service worker, which attaches chrome.debugger to the target tab and triggers a Chrome DevTools Protocol breakpoint - freezing the tab's JavaScript and showing the debugging banner. No public exploit code was provided in the intelligence, so this is a plausible but unproven scenario; the required valid tabId and user interaction (UI:P) make opportunistic exploitation difficult.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.4% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 14, 2026

Angular DevTools versions 1.20.0 through 1.21.0 accept chrome.runtime.sendMessage traffic in their background service worker without adequately validating the message sender, so an untrusted web page or third-party content script that has learned a victim tab's randomized tabId can instruct the extension to attach chrome.debugger to that tab and trigger Chrome DevTools Protocol breakpoints, pausing JavaScript execution and blocking interaction with the page. The achievable impact is confined to a tab-level denial of service: displaying the debugging banner and freezing a single tab, with no remote code execution, privilege escalation, or cross-origin access to memory or credentials, and no public exploit has been identified at time of analysis. Per the assessed CVSS vector the issue is unauthenticated (PR:N), but exploitation is gated by the high-complexity randomized-tabId precondition and victim interaction; version 1.21.1 resolves it.

RemediationAI

Vendor-released patch: upgrade Angular DevTools to version 1.21.1, which introduces sender-origin validation that rejects messages from content scripts and mismatched extension IDs before chrome.debugger can be invoked; consult the advisory at https://github.com/angular/angular/security/advisories/GHSA-r653-wxfp-pp9c and the fix in PR https://github.com/angular/angular/pull/70623 for details. Because the extension is a developer-only tool and updates are delivered through the Chrome Web Store, affected users should confirm the installed version has moved past 1.21.0 or force an extension update. Where immediate upgrading is not possible, the practical compensating control is to disable or remove the Angular DevTools extension when it is not actively being used for debugging and to restrict its installation to dedicated developer browser profiles that do not browse untrusted sites - the trade-off being loss of DevTools functionality and disruption to normal Angular debugging workflows, and there is no server-side or configuration-based knob that narrows the trust boundary while keeping the extension enabled. No other product-level mitigation (firewall rule, port block, or endpoint restriction) applies, since the exposure is entirely within the browser extension's message handler.

Affected VersionsENISA

devtools 1.20.0, < 1.21.1
angular < 22.2.0-rc.0

Affected Packages

euvd angular fix: 22.2.0-rc.0
euvd devtools fix: 1.21.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The root cause is a CWE-346 origin-validation error in the Angular DevTools Chrome extension. Chrome extension background service workers receive cross-context messages through chrome.runtime.sendMessage and must validate the sender object - checking sender.id against the extension's own ID, confirming sender.url/sender.origin belong to the extension (chrome-extension://<id>/), and rejecting senders where sender.tab is populated, which indicates a content script or web page rather than the extension's own DevTools panel. The vulnerable handler trusted the attacker-supplied tabId as its sole gate, so any sender who could guess or otherwise obtain the randomized victim tabId could drive the privileged chrome.debugger API, attaching to the target tab and installing Chrome DevTools Protocol breakpoints that halt page execution. The upstream fix (PR #70623, commits 7c053599c79a6ddd785a9bae33ff9fc7b355ea0d, cf492e8a372e2bbddb84987df12c33a52c23c72f, and e02c4d89bcf5da9af499e0dfbba8c29206976ab3) adds explicit sender-validation logic plus unit-test scaffolding - a fake chrome.debugger implementation and breakpoint_manager.spec.ts cases - that verifies messages from content-script senders (sender.tab defined) and mismatched extension IDs are rejected and no debugger target is attached. CPE coverage spans both the generic Angular and devtools entries (cpe:2.3:a:angular:angular and cpe:2.3:a:angular:devtools); the affected surface is specifically the bundled DevTools browser extension rather than the Angular framework runtime.

Know when Angular gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (GitHub_M) PRIMARY 5.1 MEDIUM
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:N/SI:L/SA:H
vuln.today AI 6.9 MEDIUM

AC:H because a valid randomized victim tabId is required; PR:N as any untrusted page can send the message; S:C and A:H because the extension freezes a separate target tab, with only minor integrity (I:L) and no confidentiality impact.

3.1 AV:N/AC:H/PR:N/UI:R/S:C/C:N/I:L/A:H
4.0 AV:N/AC:H/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:N/SI:L/SA:H

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
High
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
Low
Subsequent system: Availability
High

Lifecycle Timeline

2
Patch available
Oct 14, 2026 - 16:03 EUVD
CVE Published
Oct 14, 2026 - 15:03 cve.org
MEDIUM 5.1

DescriptionCVE.org

Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. From 1.20.0 until 1.21.1, the Angular DevTools background service worker accepts chrome.runtime.sendMessage runtime messages from untrusted web pages or third-party content scripts without adequately verifying the message source. An untrusted sender that obtains a valid randomized victim tabId can direct the extension to use chrome.debugger to attach to another browser tab and trigger Chrome DevTools Protocol breakpoints. This can display the debugging banner, pause JavaScript execution, and prevent interaction with the target tab, but it does not provide remote code execution, privilege escalation, or cross-origin access to memory or credentials. This issue is fixed in version 1.21.1.

Threat Intelligence Overview

EPSS Score
0.4%
Top 70% exploitable
Prevalence
Medium
developer-only browser extension for Angular, not production-deployed
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.4%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2026-88060 HIGH POC
8.6 Sep 10

Cross-site scripting via Angular's server-side rendering package (@angular/platform-server) allows arbitrary JavaScript

CVE-2026-88058 HIGH POC
8.6 Sep 10

Cross-site scripting in Angular's server-side rendering engine (`@angular/platform-server`) allows arbitrary JavaScript

CVE-2026-88056 HIGH POC
8.6 Sep 10

Server-Side Rendering in Angular's @angular/platform-server leaks server-side credentials to attacker-controlled origins

CVE-2025-66412 HIGH
8.5 Dec 01

Stored XSS in the Angular Template Compiler (npm package @angular/compiler) allows an authenticated attacker who can per

CVE-2026-22610 HIGH
8.5 Jan 10

Cross-site scripting in Angular's Template Compiler allows attackers to inject arbitrary JavaScript through unsanitized

CVE-2026-101895 HIGH
8.7 Sep 28

An unauthenticated remote attacker can lock up an Angular server-side rendering process by submitting HTML that contains

CVE-2025-62427 HIGH
8.7 Oct 16

Server-side request forgery in Angular's @angular/ssr package (all versions from 19.0.0-next.0 before 19.2.18, 20.0.0-ne

CVE-2026-50178 HIGH
8.7 Jun 22

Command injection via untrusted Markdown rendering in the Angular Language Service VS Code extension (versions prior to

CVE-2026-49241 HIGH
8.7 Jun 22

Arbitrary code execution in the Angular Language Service VS Code extension prior to 21.2.4 allows attackers to silently

CVE-2026-41423 HIGH
8.7 May 08

Server-Side Request Forgery in Angular's @angular/platform-server (SSR) lets remote unauthenticated attackers hijack the

CVE-2026-101896 HIGH
8.2 Sep 30

Denial of service in the npm package @angular/router when Server-Side Rendering (SSR) is enabled on Node.js allows an un

CVE-2026-27970 HIGH
7.6 Feb 26

Cross-site scripting in Angular's internationalization (i18n) pipeline allows attacker-controlled JavaScript to execute

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy