Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify AngularJS app with unanchored SCE regex allowlist
-
DeliveryCraft URL with trusted-looking substring
-
ExploitDeliver link or inject into rendered data
-
InstallVictim loads affected page
-
C2Partial regex match bypasses SCE policy
-
ExecuteMalicious resource URL executes JavaScript
-
ImpactHijack victim browser session
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input filtering completeness
|
| Exploitation Conditions | Exploitation requires that the target AngularJS application (>= 1.2.0-rc.3) define its SCE resource-URL allowlist (resourceUrlWhitelist) using regular-expression matchers that are not fully anchored, AND that attacker-influenced data reach a resource-URL sink such as ng-include, a route/template URL, <script> src, or <iframe> document source. The CVSS UI:R requirement means the victim must load or interact with the affected page, so it is not a zero-click remote attack. Limiting factors: apps that use only exact-string allowlist entries, that never pass untrusted input into resource-URL contexts, or that enforce a strict CSP are substantially less exposed; no authentication is required of the attacker (PR:N), but the specific vulnerable regex configuration is the gating prerequisite. |
| Impact | The signals are mixed-but-meaningful. The CVSS 3.1 vector (AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:L, 7.6 High) describes a network-reachable, low-complexity, unauthenticated bypass that nonetheless requires user interaction (UI:R) - the victim must load an affected page where attacker-influenced data flows into a resource-URL sink, which is a real limiting factor and means this is not a wormable, fully automatable flaw. No EPSS score, no CISA KEV entry, and no SSVC decision data were supplied, so exploitation probability cannot be quantified from the input; treat the absence of KEV as 'no public exploit identified as actively exploited' rather than proof of safety. A working CodePen proof-of-concept from the reporting vendor (HeroDevs) demonstrates the bypass, raising practical risk above a purely theoretical issue. The dominant real-world risk driver is not raw CVSS but the End-of-Life status: because AngularJS will never be patched upstream, any remaining deployment carries permanent exposure. Net: a genuine, moderate-to-high priority for organizations still running AngularJS, gated mainly by whether an app passes untrusted data into SCE-protected resource-URL contexts. |
| Exploit ScenarioDerived | An attacker identifies an AngularJS app whose SCE resource-URL allowlist uses an unanchored regular expression, then crafts a URL containing a trusted-looking substring that satisfies the partial match while the effective target loads attacker script. When a victim visits a page (or follows a link) that renders the attacker-influenced URL into a script src, iframe, or template context, the script executes in the victim's session - exfiltrating session data or acting as the user. A CodePen proof-of-concept demonstrating the SCE bypass is publicly available. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jun 24, 2026
Arbitrary JavaScript execution in AngularJS (all versions from 1.2.0-rc.3 onward) arises from a flaw in Strict Contextual Escaping (SCE) where resource-URL allowlist regular expressions are matched against URLs as partial rather than whole-string matches, letting attacker-controlled values slip past trusted-URL policies. A successful bypass runs script in the victim's browser session (script src, iframe documents, route templates), enabling client-side compromise; the framework is End-of-Life with no upstream fix, and a CodePen demonstration of the bypass is publicly available. No CISA KEV listing and no evidence of active exploitation were provided.
RemediationAI
No vendor-released patch has been identified at time of analysis - AngularJS is End-of-Life and will receive no upstream fix - so the strategic remediation is migration off AngularJS to a supported framework, or adoption of a commercial extended-support/backported build such as HeroDevs Never-Ending Support (see https://www.herodevs.com/vulnerability-directory/cve-2026-11998). As compensating controls until then: audit every use of $sce.trustAsResourceUrl and resourceUrlWhitelist/resourceUrlBlacklist and replace permissive regex entries with exact-string or fully anchored ('^...$') patterns that cannot partial-match, since the bug is incomplete anchoring (this is the most direct mitigation but requires reviewing all allowlist definitions). Additionally, deploy a strict Content-Security-Policy that constrains script-src/frame-src/default-src to known origins to limit the impact of a bypass (trade-off: may break inline or third-party resources and requires testing), and avoid feeding untrusted/user-controlled input into resource-URL sinks (ng-include, route template URLs, iframe src). Cite the HeroDevs advisory above when tracking this internally.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
AngularJS' SCE subsystem ($sce) is the framework's defense for security-sensitive contexts, gating values used as resource URLs - including <script> src, ng-include/route templates, and <iframe> document sources - through a trusted-URL allowlist (resourceUrlWhitelist) that developers commonly express with regular expressions. The vulnerability, classed as CWE-791 (incomplete filtering of special elements), stems from the matcher comparing a candidate URL against these regex patterns without anchoring to the full string, so a regex intended to match an entire trusted origin instead matches only a substring. An attacker can therefore craft a URL whose trusted-looking fragment satisfies the pattern while the operative portion points to attacker-controlled script, defeating the very allowlist meant to enforce trust. The flaw is in AngularJS core (the 1.x line, ubiquitous in legacy single-page apps), affecting every release at or above 1.2.0-rc.3.
Know when the next one hits your stack
- 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
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:L
Network-reachable, low-complexity, unauthenticated bypass but the victim must load an affected page (UI:R); arbitrary in-session script yields high confidentiality with limited integrity/availability impact.
Primary rating from Vendor (36c7be3b-2937-45df-85ea-ca7133ea542c).
CVSS VectorVendor: 36c7be3b-2937-45df-85ea-ca7133ea542c
DescriptionCVE.org
A flaw in AngularJS' Strict Contextual Escaping (SCE) logic allows bypassing certain SCE policies for resource URLs and can lead to arbitrary JavaScript execution within the context of the victim's browser session.
SCE's purpose is to ensure that only trusted or safe values are used in certain security-sensitive contexts, such as resource URLs, including URLs that define executable JavaScript scripts, '<iframe>' documents, route templates, etc. A flaw in the logic that tries to match entire URLs against regular expression matchers can result in partial matches for certain types of regular expressions, effectively bypassing the policies and allowing the use of unsafe values as resource URLs.
This issue affects AngularJS versions greater than or equal to 1.2.0-rc.3.
Note: The AngularJS project was already End-of-Life when this CVE was published and will not receive any updates to address this issue. For more information see the End-of-Life announcement https://docs.angularjs.org/misc/version-support-status .
Executive ViewAI
AngularJS (versions 1.2.0-rc.3 and later) contains a Strict Contextual Escaping bypass vulnerability enabling arbitrary JavaScript execution in user browsers, with publicly available exploit code demonstrating the flaw. Since AngularJS is end-of-life without vendor patches, organizations using this framework face persistent client-side compromise that cannot be remediated through patching; affected applications require either migration to modern frameworks or strict compensating controls.
No vendor-released patch identified at time of analysis. Interim mitigations: (1) Implement strict Content Security Policy prohibiting inline script execution and restricting script sources to explicit allowlist; (2) Audit and remove or restrict AngularJS directives vulnerable to SCE bypass (ng-include, ng-bind-html, ng-show with user input); (3) Deploy Web Application Firewall rules to detect and block known SCE bypass attempt patterns; (4) Enforce mandatory code review for all URL handling and template injection code paths; (5) Isolate affected applications from sensitive data and critical business systems; (6) Execute framework migration to actively-maintained platform with defined timeline and executive oversight.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-39080
GHSA-7x27-g8rg-x87w
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB