CVE-2026-44643: Angular Expressions Sandbox Escape
Critical CVSS (10.0) reachable over network.
TL;DR - CVE-2026-44643 is a CVSS 10.0 sandbox escape in
angular-expressionsbefore version 1.5.2. - Applications evaluating attacker-controlled Angular expressions may be exposed to arbitrary code execution. - Upgrade to 1.5.2 or later, audit bundled dependencies, and restrict untrusted expression input. - No verified public proof of concept or active exploitation has been identified, and the CVE is not currently listed in CISA KEV.
CVE-2026-44643 is an angular-expressions vulnerability that allows a malicious expression to escape the intended AngularJS sandbox and execute arbitrary code. Organizations using the package should upgrade to version 1.5.2 or later and review every path that evaluates user-controlled or indirectly controlled expressions.
What Is the AngularJS Sandbox Escape?
CVE-2026-44643 is a sandbox escape in angular-expressions. The component evaluates expressions intended for the AngularJS framework as a standalone module. The reported condition allows a malicious expression to use filters to bypass the intended expression sandbox.
A sandbox is a boundary intended to limit what evaluated expressions can access or execute. In this case, the boundary is insufficiently secure. If an attacker can cause a vulnerable evaluator to process a crafted expression, that expression may escape its restrictions and execute arbitrary code on the system evaluating it.
The impact differs from a normal expression error or client-side injection issue: successful exploitation can reach the host process and its available permissions. Depending on the deployment, that may expose application data, credentials, tokens, local files, internal services, or other systems reachable from the affected process.
The available primary advisory does not provide verified additional details about the exact filter, call path, gadget, or runtime primitive involved. Defenders should not infer a narrower exploit condition than the advisory supports.
Evaluation boundary
The relevant security boundary is the transition from application data to evaluated Angular expression. A risky pattern is any code path that accepts a value from a request, database, message, uploaded file, or administrative interface and passes that value to an expression evaluator.
A conceptual example of the dangerous data flow is:
// Illustrative data-flow pattern, not a confirmed vulnerable call signature.
const expression = request.body.expression;
const result = evaluateExpression(expression, context);
The key review question is not whether the input is labeled “template,” “filter,” or “configuration.” It is whether an attacker can influence the expression text or the evaluation context.
Review server-side code, browser-side code that evaluates expressions, background workers, and administrative functionality. If your environment uses other endpoint-detection controls, compare their coverage with EDR and XDR capabilities for process and post-exploitation monitoring.
Are You Affected?
CVE-2026-44643 affects the standalone angular-expressions package maintained by Peerigon. The package provides expression-evaluation functionality for AngularJS applications. According to the NVD record, all versions prior to 1.5.2 are affected, and the vulnerability is fixed in 1.5.2.
The issue matters when an application evaluates expressions that an attacker can supply or influence. This may occur through a template, API parameter, configuration value, form field, workflow definition, report filter, or another application-controlled input.
Merely having the package installed does not prove exploitability. Confirm whether each expression-evaluation path rejects untrusted input before classifying the application as non-exploitable.
| Field | Details |
|---|---|
| CVE | CVE-2026-44643 |
| Affected product | angular-expressions |
| Affected versions | All versions prior to 1.5.2 |
| Fixed version | 1.5.2 |
| CVSS base score | 10.0 |
| CVSS vector | Not included in the retrieved NVD record; obtain the authoritative vector from the NVD record before automated scoring |
| Attack vector | Not explicitly published in the retrieved record; assess applications that evaluate attacker-controlled expressions, including remotely reachable paths |
| Authentication required | Not explicitly published in the retrieved record; do not assume authentication protects an expression-evaluation endpoint |
| Patch available | Yes |
| CISA KEV status | Not currently listed |
| Public PoC | No verified public proof of concept identified |
| Confirmed active exploitation | No verified evidence identified |
Inventory should include direct, transitive, bundled, and vendored copies. A lockfile search can miss a copy embedded in a compiled JavaScript bundle or copied into an application repository. Review package manifests, lockfiles, build artifacts, container layers, and software bills of materials.
Analyst’s Take: Treat this first as an exposure-and-data-flow problem, not just a package update. The maximum CVSS score reflects the stated arbitrary code execution impact, but the available record does not establish a specific route, framework configuration, or authentication requirement. Patch the dependency, then verify where expression text can reach an evaluator.
The Fix, If You’re in a Hurry
Upgrade angular-expressions to 1.5.2 or later. The available advisory information identifies 1.5.2 as the fixed release; it does not provide a more granular version range than “prior to 1.5.2.”
For a direct npm dependency, update the package and regenerate the lockfile:
npm install angular-expressions@^1.5.2
npm audit
npm test
If your project uses a lockfile-only workflow, update it through the project’s normal dependency-management process rather than manually editing resolved package metadata. Then rebuild and redeploy the application, and verify that the deployed artifact contains the fixed version.
npm ci
npm ls angular-expressions
The expected result should show version 1.5.2 or a later release. Inspect the final image or deployment artifact as well; a build may contain an older transitive or vendored copy even after the top-level dependency is updated.
If an immediate upgrade is impossible, prevent untrusted parties from supplying expressions and identify every input that reaches the evaluator. Restrict expression evaluation to trusted, reviewed templates or a tightly controlled allowlist of expressions.
These are compensating controls, not a substitute for upgrading. They may also fail if an attacker can modify stored data, administrator-authored content, generated templates, or other indirect inputs.
Dependency inventory
For npm projects, begin with the package manager’s dependency tree:
npm ls angular-expressions --all
npm explain angular-expressions
For Yarn or pnpm projects, use the corresponding tree commands:
yarn why angular-expressions
pnpm why angular-expressions
Search source trees and generated artifacts as a secondary check:
grep -RIn --exclude-dir=.git --exclude-dir=node_modules \
-E 'angular-expressions|angularExpressions' .
These checks identify likely package locations, but they do not establish whether an application actually evaluates untrusted expressions. That requires code-path and data-flow review.
Temporary containment
At minimum, review and restrict routes, jobs, and services that accept expression-like fields. Examples include template fields, filter expressions, calculated values, policy rules, and report definitions.
Do not rely on escaping or character filtering alone. The reported weakness concerns bypass of the intended expression sandbox, so superficial input sanitization may not prevent exploitation.
Where operationally feasible:
- Isolate the process that evaluates expressions.
- Run it with the least privileges possible.
- Deny unnecessary outbound network access.
- Use a read-only filesystem where compatible.
- Separate sensitive credentials from the process environment.
- Monitor unexpected child-process creation and file access.
These controls reduce potential impact but do not eliminate arbitrary code execution risk.
For organizations reviewing related application security issues, the CVE remediation guide provides additional context on dependency inventory and prioritization workflows.
Severity, Explained
The NVD record assigns CVE-2026-44643 a CVSS base score of 10.0, the maximum CVSS base score. The available record did not include the CVSS vector string, so the individual metric selections cannot be reproduced reliably from the retrieved data.
Obtain the authoritative vector directly from the NVD CVE page before using it in automated prioritization or compliance reporting.
The severity follows from the stated impact. An attacker-controlled expression can escape the sandbox and execute arbitrary code on the host system. Code execution can expose application data, credentials, tokens, local files, internal services, and other systems reachable from the affected process.
The practical risk depends on deployment context. An internet-facing service that evaluates expressions from unauthenticated requests presents a substantially different exposure from an internal tool that processes only trusted, reviewed templates.
The absence of authentication requirements in the retrieved technical details means organizations should not assume that an authenticated boundary is required or sufficient.
A CVSS score is not a substitute for exposure analysis. Prioritize systems where angular-expressions is reachable through a remote application path, expression content is user-controlled or indirectly controlled, or the evaluating process has access to sensitive credentials and internal network resources.
Is CVE-2026-44643 Being Exploited?
No verified evidence of active exploitation in the wild was identified in the available research. CVE-2026-44643 is also not currently listed in the CISA Known Exploited Vulnerabilities catalog. Consequently, there is no CISA KEV date, due date, required action, or ransomware-campaign designation for this CVE.
No verified public proof-of-concept repository was identified in the available search results. That status is not proof that no exploit code exists privately or in unindexed channels. It means defenders should state the current evidence accurately: no verified public PoC and no verified active exploitation were identified in the reviewed sources.
The absence of KEV coverage or public exploit code should not delay remediation. Sandbox escapes with arbitrary code execution can become attractive targets after technical details are published or vulnerable applications are discovered through internet scanning.
Organizations should patch based on exposure and impact, not solely on current exploitation telemetry.
Detecting CVE-2026-44643 in Your Environment
Detection should combine dependency analysis, application telemetry, endpoint monitoring, and retrospective investigation.
Start by identifying applications that use angular-expressions before 1.5.2, including copies embedded in bundles or container images. Then determine whether those applications accept expression-like input from:
- HTTP requests
- APIs
- Stored records
- Message queues
- Administrative workflows
- Uploaded content
- Report or filter definitions
- Generated templates
Application logs may record rejected expressions, parsing failures, unexpected filter names, or requests to endpoints that accept templates and calculated fields. These indicators are not specific enough to confirm exploitation, and normal application behavior may produce similar events.
Use them to review request bodies, authenticated identities, source addresses, affected objects, and the process behavior that followed.
Log and query patterns
Search web and application logs for expression-bearing parameters and related endpoints. Adapt field names to the logging platform:
grep -Ehi \
'expression=|template=|filter=|calculation=|formula=|predicate=' \
/var/log/nginx/access.log /var/log/apache2/access.log
For structured logs in an Elasticsearch-like environment, a starting query could be:
event.dataset:(web OR application) AND
http.request.body.content:(*expression* OR *template* OR *filter* OR *formula*)
A more targeted review should correlate those requests with application errors and child-process creation:
process.parent.name:(node OR nodejs) AND
event.action:(process_started OR process_created)
The process query is not a CVE-specific signature. It is useful because unexpected shell, scripting, or system utility execution by an expression-evaluating Node.js process may indicate successful code execution or another compromise.
Investigate:
- Commands and arguments
- Parent-child relationships
- User identity
- Container identity
- Network connections
- File changes
- Access to credentials or tokens
- Requests immediately preceding process creation
On Linux hosts, review process and network telemetry for unexpected descendants of the application process:
ps -ef --forest
ss -plant
journalctl --since "24 hours ago" | grep -Ei \
'angular|expression|template|filter|child_process|spawn|exec'
Do not expect every exploitation attempt to contain a distinctive string. A crafted expression may be encoded, transformed by an application, or delivered through a stored object rather than directly in an HTTP request.
Endpoint telemetry and application-specific tracing are therefore more reliable than a single network signature. If an investigation identifies suspicious credentials or mailbox activity following potential compromise, review how attackers use mailbox rules to hide email fraud.
Incident Response Considerations
If you identify a vulnerable, remotely reachable application that evaluates attacker-controlled expressions, treat the system as potentially exposed even if exploitation has not been confirmed.
Recommended response steps include:
- Confirm the deployed
angular-expressionsversion. - Preserve relevant application, web, endpoint, and cloud logs.
- Identify all expression-evaluation endpoints and data sources.
- Review process creation, outbound connections, file changes, and credential access.
- Rotate credentials available to the affected process if compromise is plausible.
- Upgrade to 1.5.2 or later.
- Rebuild and redeploy from a trusted source.
- Validate that older copies are absent from bundles, images, and hosts.
- Document whether regulated data or customers may have been affected.
- Follow applicable breach-notification and reporting requirements.
Do not delete logs or rebuild over potentially compromised systems before collecting the evidence needed for investigation. For reporting decisions, consult your organization’s legal, privacy, and incident-response teams and review when to report a cyberattack to regulators or customers.
References and Further Reading
The primary vulnerability record is the NVD entry for CVE-2026-44643:
The project-specific advisory is published in the Peerigon angular-expressions repository:
Use the project advisory and package metadata to confirm the fixed release and any later maintainer guidance. The available research confirms that 1.5.2 is the fixed version identified for this issue; do not downgrade to an earlier release while attempting to resolve the vulnerability.
For exploitation status and prioritization context, consult the CISA catalog:
As of the research date, CVE-2026-44643 was not listed in CISA KEV. That is a status observation, not a safety guarantee. Continue monitoring the NVD record, the project advisory, package releases, threat intelligence, and internal detection results for changes.
This article may contain affiliate links. We earn a commission on qualifying purchases at no extra cost to you.