Kurz gesagt
- CVE-2020-5219 ist eine Schwachstelle (HOCH (CVSS 8.8)) in angular-expressions (peerigon), angular-expressions.
- Wahrscheinlichkeit einer Ausnutzung in den nächsten 30 Tagen (EPSS): 2.4%, höher als bei 84.0% aller Schwachstellen.
- Abhilfe: auf 1.0.1 oder neuer aktualisieren.
Description
Impact
The vulnerability, reported by GoSecure Inc, allows Remote Code Execution, if you call expressions.compile(userControlledInput) where userControlledInput is text that comes from user input.
- If running angular-expressions in the browser, an attacker could run any browser script when the application code calls expressions.compile(userControlledInput).
- If running angular-expressions on the server, an attacker could run any Javascript expression, thus gaining Remote Code Execution.
Patches
Users should upgrade to version 1.0.1 of angular-expressions
Workarounds
A temporary workaround might be either to :
- disable user-controlled input that will be fed into angular-expressions in your application
OR
- allow only following characters in the userControlledInput :
if (/^[|a-zA-Z.0-9 :"'+-?]+$/.test(userControlledInput)) {
var result = expressions.compile(userControlledInput);
}
else {
result = undefined;
}
References
Removal of angular-expression sandbox
For more information
If you have any questions or comments about this advisory:
Credits
The issue was reported by Maxime Nadeau from GoSecure, Inc.
NVD description
Angular Expressions before version 1.0.1 has a remote code execution vulnerability if you call expressions.compile(userControlledInput) where userControlledInput is text that comes from user input. If running angular-expressions in the browser, an attacker could run any browser script when the application code calls expressions.compile(userControlledInput). If running angular-expressions on the server, an attacker could run any Javascript expression, thus gaining Remote Code Execution.
Running one of these products? Scan your site to see whether it exposes a vulnerable version.
Scan my site free