CVE-2024-54152
NoneCVSS
—
EPSS
2.2%
Published
Dec 10, 2024
CISA due date
—
Cloudanix analysis
A flaw in a JavaScript expression library lets attackers run any code they want on the server if the application processes untrusted input through it.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- RCE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Sandbox escape in Angular Expressions allows a malicious expression to break out and execute arbitrary code on the host system, including with complex payloads achieving full arbitrary code execution.
Why it matters to the business
Attackers can gain full control of affected systems processing untrusted expressions, leading to data theft, service disruption, or further compromise; the package is widely depended on in web applications using AngularJS.
How an attack unfolds
An attacker supplies a crafted expression to an Angular Expressions evaluation point; the expression manipulates __proto__ or other properties to escape the sandbox and run arbitrary JavaScript or system commands, potentially achieving full remote code execution.
How to fix it
Upgrade peerigon/angular-expressions to commit e422a8c9abd22c7c450131f89283515f68893daa (version 1.4.3 or later). As workarounds, globally disable __proto__ access or ensure the evaluate function is always called with exactly one argument.
How to confirm the fix worked
Verify the installed version of angular-expressions is 1.4.3 or newer by checking package.json, package-lock.json, or running npm list angular-expressions; test that previously working sandbox-escape expressions are now blocked.
Typical attack path
- Identify an application endpoint or feature that evaluates user-controlled or attacker-influenced expressions with Angular Expressions
- Craft a malicious expression payload that accesses or modifies prototype chains to break sandbox restrictions
- Trigger evaluation of the payload to execute arbitrary code
- Escalate to full system access or persistence using the resulting code execution capability
How to detect it
Review application logs and web request logs for unusual or complex expressions containing __proto__, constructor, or prototype manipulation patterns; inspect process execution or file system changes following expression evaluation points.
What your security team should do
- Immediately upgrade all instances of angular-expressions to the fixed commit or version 1.4.3
- Audit applications for any use of evaluate() with untrusted input and restrict expression sources
- Implement the __proto__ workaround or single-argument usage where upgrades are delayed
- Monitor dependency scanners for any remaining vulnerable versions in the ecosystem
The record
Angular Expressions provides expressions for the Angular.JS web framework as a standalone module. Prior to version 1.4.3, an attacker can write a malicious expression that escapes the sandbox to execute arbitrary code on the system. With a more complex (undisclosed) payload, one can get full access to Arbitrary code execution on the system. The problem has been patched in version 1.4.3 of Angular Expressions. Two possible workarounds are available. One may either disable access to `__proto__` globally or make sure that one uses the function with just one argument.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| npm | angular-expressions | 0 | 1.4.3 |
| Ubuntu:16.04:LTS | angular.js | 0 | No fix |
| Ubuntu:18.04:LTS | angular.js | 0 | No fix |
| Ubuntu:20.04:LTS | angular.js | 0 | No fix |
| Ubuntu:22.04:LTS | angular.js | 0 | No fix |
| Ubuntu:24.04:LTS | angular.js | 0 | No fix |
| Ubuntu:24.10 | angular.js | 0 | No fix |
| Ubuntu:25.04 | angular.js | 0 | No fix |
| Ubuntu:25.10 | angular.js | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | angular.js | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | angular.js | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | angular.js | 0 | No fix |
Related vulnerabilities
- GHSA-pw8r-6689-xvf4 Angular Expressions - Remote Code Execution using filters Also affects angular-expressions
- CVE-2026-44643 Angular Expressions provides expressions for the Angular.JS web framework as a standalone… Also affects angular-expressions
- CVE-2024-8372 AngularJS allows attackers to bypass common image source restrictions Also affects angular.js
- CVE-2024-8373 AngularJS allows attackers to bypass common image source restrictions Also affects angular.js
- CVE-2022-25869 All versions of package angular are vulnerable to Cross-site Scripting (XSS) due to… Also affects angular.js
- CVE-2026-114125 Storybook is a frontend workshop for building user interface components and pages in… CWE-94
- CVE-2026-113776 virtualenv is a tool for creating isolated virtual python environments. CWE-94
- CVE-2026-112100 A vulnerability was determined in DeepPavlov up to 1.7.0. CWE-94