Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify vulnerable endpoint accepting expressions
-
DeliveryCraft '__proto__' filter payload
-
ExploitSubmit malicious expression to compile()
-
InstallTrigger prototype pollution escape
-
C2Execute arbitrary Node.js code
-
ExecuteEstablish persistence or pivot to internal systems
-
ImpactExfiltrate data or deploy ransomware
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Eval input sanitization
MITRE ATT&CK
1 technique across 1 tactic: Execution The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires applications using angular-expressions library to invoke expressions.compile() on attacker-controlled input. Specifically vulnerable when user-supplied strings are passed as the first argument to compile() for dynamic expression evaluation. Common attack surfaces include: template systems rendering user-defined layouts, API endpoints accepting filter/query expression syntax, CMS platforms with custom field logic, or dashboard builders with expression-based data transformations. The vulnerability does NOT require any specific configuration beyond default angular-expressions usage - standard installation with any version ≤1.5.1 processing untrusted input is exploitable. CVSS vector AV:N/AC:L/PR:N/UI:N confirms no authentication, special network position, or user interaction limits exploitation. Attack succeeds against default configurations when user input reaches expression compilation without strict allow-list validation. |
| Impact | CVSS 9.3 (Critical) with vector AV:N/AC:L/PR:N/UI:N indicates maximum exploitability - remote unauthenticated attackers can exploit without complex conditions or user interaction. Publicly available exploit code exists (GitHub Gist by alon710), significantly lowering the attacker skill threshold. Vendor advisory from peerigon confirms the issue with proof-of-concept showing '__proto__' filter abuse leading to arbitrary code execution. Real-world risk is HIGH for applications that: (1) use angular-expressions to evaluate user-controlled input, (2) deploy in server-side contexts (Node.js template engines, API validators), and (3) have not updated to 1.5.2+. The combination of network attack vector, no authentication requirement, and available exploit code creates immediate exposure. EPSS data not provided but exploit availability and sandbox escape nature suggest active scanning/exploitation is probable. Priority remediation recommended for any instance processing untrusted expressions, particularly in multi-tenant or internet-facing environments where expression inputs originate from external users. |
| Exploit ScenarioDerived | An attacker identifies a web application using angular-expressions to render user-customizable dashboard widgets where expression syntax controls data display. The attacker submits a crafted expression payload containing '__proto__' filter references (e.g., 'a | __proto__' or more complex undisclosed chains) through the widget configuration API. When the server compiles this expression via expressions.compile(), the malicious filter escapes the sandbox by manipulating JavaScript prototype chain, gaining access to Node.js runtime functions. The attacker executes arbitrary system commands (file system access, reverse shell establishment, lateral movement to internal services) with the privileges of the Node.js process, typically a web service account with database and internal network access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 11, 2026
Remote code execution in angular-expressions versions ≤1.5.1 allows unauthenticated network attackers to escape the expression sandbox via malicious filter payloads and execute arbitrary system commands with no user interaction required. CVSS 9.3 (Critical) with confirmed public exploit code available. Vendor-released patch in version 1.5.2 addresses the sandbox escape. Affects applications using angular-expressions as a standalone module for evaluating user-supplied Angular.JS expressions.
RemediationAI
Vendor-released patch: Upgrade angular-expressions to version 1.5.2 or later via npm (npm update angular-expressions or package.json dependency update to ^1.5.2). Official patch details available in GitHub Advisory GHSA-pw8r-6689-xvf4 (https://github.com/peerigon/angular-expressions/security/advisories/GHSA-pw8r-6689-xvf4) and exploit reference at https://gist.github.com/alon710/8d25a2ec6d3cfd7d6115a0f90a1bb719 demonstrates the vulnerability mechanics. If immediate patching is infeasible: (1) Implement strict input validation rejecting any expressions containing 'proto', 'constructor', or other prototype-manipulation keywords (note: sophisticated attackers may bypass keyword filters via encoding or obfuscation), (2) Isolate expression compilation in sandboxed containers (VM2 or isolated-vm npm modules) with restricted permissions (trade-off: performance overhead and potential compatibility issues with existing code), (3) Disable filter support entirely if application logic permits (may break functionality relying on Angular.JS filter syntax). These mitigations are stopgap measures only - upgrade to 1.5.2 remains the definitive fix.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in npm
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
angular-expressions is an npm package (maintained by peerigon) that extracts Angular.JS expression parsing and evaluation as a standalone module, commonly used in template engines and dynamic content rendering outside the Angular framework. The vulnerability stems from CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code), specifically a sandbox escape through prototype pollution when processing filter expressions. The public exploit leverages '__proto__' filter references to break out of the intended execution context. When applications compile untrusted expressions using expressions.compile(), attackers can manipulate JavaScript object prototypes to gain unrestricted code execution beyond the sandbox boundaries designed to isolate expression evaluation from the underlying Node.js runtime.
Know when Angular Expressions 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
Primary rating from Vendor (GitHub_M) · only source for this CVE.
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
4DescriptionCVE.org
Angular Expressions provides expressions for the Angular.JS web framework as a standalone module. Prior to 1.5.2, an attacker can write a malicious expression using filters that escapes the sandbox to execute arbitrary code on the system. This vulnerability is fixed in 1.5.2.
Executive ViewAI
angular-expressions library versions 1.5.1 and earlier contain a critical remote code execution vulnerability allowing unauthenticated attackers to bypass security sandbox protections and execute arbitrary commands on systems running affected versions. Organizations using this library to evaluate user-supplied expressions face immediate risk of full system compromise without authentication barriers or user interaction requirements.
Apply vendor patch to version 1.5.2 or later. If immediate patching is impossible: disable or remove angular-expressions where feasible; implement strict network segmentation to limit attacker access; disable evaluation of untrusted user-supplied expressions; monitor for exploitation attempts targeting expression parsing functions.
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
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.
More in Angular Expressions
View allangular-expressions is "angular's nicest part extracted as a standalone module for the browser and node". Rated high sev
Angular Expressions before version 1.0.1 has a remote code execution vulnerability if you call expressions.compile(userC
EUVD-2026-29078
GHSA-pw8r-6689-xvf4
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB