Skip to content

Commit 6e889e0

Browse files
authored
Merge pull request #252 from 418sec/1-npm-expr-eval
Security Fix for Prototype Pollution - huntr.dev
2 parents a556e27 + 3679a4d commit 6e889e0

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

src/evaluate.js

+3
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,9 @@ export default function evaluate(tokens, expr, values) {
4141
nstack.push(f(resolveExpression(n1, values), resolveExpression(n2, values), resolveExpression(n3, values)));
4242
}
4343
} else if (type === IVAR) {
44+
if (/^__proto__|prototype|constructor$/.test(item.value)) {
45+
throw new Error('prototype access detected');
46+
}
4447
if (item.value in expr.functions) {
4548
nstack.push(expr.functions[item.value]);
4649
} else if (item.value in expr.unaryOps && expr.parser.isOperatorEnabled(item.value)) {

0 commit comments

Comments
 (0)