Remote command execution In angular-expressions

Description

Angular Expressions - Remote Code Execution using filters

Impact

An attacker can write a malicious expression that escapes the sandbox to execute arbitrary code on the system.

Example of vulnerable code:

const expressions = require("angular-expressions");
const result = expressions.compile("a | __proto__")({}, {});

This should throw the error : Filter 'proto' is not defined, however, this shows :

Uncaught SyntaxError: Unexpected identifier 'Object'

With a more complex (undisclosed) payload, one can get full access to Arbitrary code execution on the system.

Vulnerable versions :

angular-expressions <= 1.5.1

Patches

The problem has been patched in version 1.5.2 of angular-expressions.

Credits

Credits go to San Gil from www.securityoffice.io who has found the issue and reported it to us.

Mitigation

Update Impact

Minimal update. May introduce new vulnerabilities or breaking changes.

Ecosystem
Package
Affected version
Patched versions