CVE-2026-44643 Overview
CVE-2026-44643 is a sandbox escape vulnerability in angular-expressions, a standalone module that provides expression evaluation for the Angular.JS web framework. The flaw allows an attacker to craft a malicious expression that uses filters to escape the sandbox and execute arbitrary code on the host system. The issue is classified as [CWE-95] Improper Neutralization of Directives in Dynamically Evaluated Code (Eval Injection). All versions of peerigon/angular-expressions prior to 1.5.2 are affected. The maintainers addressed the vulnerability in version 1.5.2.
Critical Impact
Unauthenticated attackers can execute arbitrary code on any system that evaluates attacker-controlled expressions through angular-expressions versions earlier than 1.5.2.
Affected Products
- peerigon/angular-expressions versions prior to 1.5.2
- Node.js applications that evaluate untrusted input via angular-expressions
- Server-side rendering and templating pipelines that embed angular-expressions
Discovery Timeline
- 2026-05-11 - CVE-2026-44643 published to NVD
- 2026-05-13 - Last updated in NVD database
Technical Details for CVE-2026-44643
Vulnerability Analysis
The angular-expressions library evaluates expression strings inside a sandbox intended to restrict access to sensitive JavaScript globals and properties. The library exposes a filter mechanism that lets expressions pipe values through named functions using the | syntax. The sandbox does not fully constrain how filters resolve references and invoke functions during expression evaluation. An attacker who controls an expression string can chain filter calls to obtain a reference to the JavaScript Function constructor or another execution primitive outside the sandbox boundary. Once that reference is reached, the attacker can construct and invoke arbitrary code in the Node.js process. Because the library runs server-side in many deployments, successful exploitation results in arbitrary code execution with the privileges of the host application.
Root Cause
The root cause is incomplete sandbox enforcement during expression compilation and filter resolution. The library treats filter call sites as trusted execution points, which lets a crafted expression bypass property and constructor access checks designed to keep evaluation isolated from the underlying runtime.
Attack Vector
Exploitation requires the application to evaluate an attacker-controlled expression string through angular-expressions. Typical sinks include server-rendered templates, dynamic report generators, document templating libraries that embed angular-expressions, and any feature that accepts user-supplied expression syntax. No authentication or user interaction is required when the expression input is reachable over the network.
No verified public proof-of-concept code is referenced in the advisory. Refer to the GitHub Security Advisory GHSA-pw8r-6689-xvf4 for maintainer-provided technical details.
Detection Methods for CVE-2026-44643
Indicators of Compromise
- Unexpected child processes spawned by Node.js services that import angular-expressions.
- Outbound network connections initiated by template-rendering or report-generation workers.
- Application log entries containing expression strings with chained | filter syntax and references to constructor, Function, or __proto__.
Detection Strategies
- Inventory dependencies across Node.js services and flag any version of peerigon/angular-expressions below 1.5.2 using software composition analysis.
- Inspect HTTP request bodies and query parameters for expression payloads that combine filter pipes with constructor or prototype lookups.
- Correlate expression-evaluation activity with process-execution telemetry to surface anomalous child_process or shell invocations from template workers.
Monitoring Recommendations
- Enable runtime process-lineage monitoring on hosts running Node.js applications that consume user-supplied templates.
- Alert on Node.js processes invoking interpreters such as sh, bash, cmd.exe, or powershell.exe.
- Ingest application and reverse-proxy logs into a centralized analytics pipeline and retain expression payloads for retrospective hunting.
How to Mitigate CVE-2026-44643
Immediate Actions Required
- Upgrade peerigon/angular-expressions to version 1.5.2 or later in every affected service and rebuild dependent artifacts.
- Audit application code paths that pass untrusted input into expressions.compile() or equivalent evaluation entry points.
- Rotate any secrets or credentials accessible to processes that may have evaluated untrusted expressions before patching.
Patch Information
The vulnerability is fixed in angular-expressions version 1.5.2. Update the dependency in package.json and refresh the lockfile to ensure transitive consumers also resolve to the patched release. Maintainer guidance is published in the GitHub Security Advisory GHSA-pw8r-6689-xvf4.
Workarounds
- Reject or strictly allowlist expression strings before they reach the evaluator, denying input that contains |, constructor, or property-access chains.
- Isolate template rendering inside a dedicated worker process with reduced filesystem and network privileges to limit blast radius.
- Disable user-facing features that accept arbitrary expression syntax until the patched version is deployed.
# Configuration example
npm install angular-expressions@1.5.2
npm ls angular-expressions
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

