Protect against RegEx attacks in santising script input #139
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #117
The Nashorn Sandbox utilises Regular Expressions to inject 'poison pill' statements that can be used to interrupt scripts early that take too long time to execute. (This is not the only way one can protect against too long running scripts, another is using seperate threads).
Poison pills are defined here:
delight-nashorn-sandbox/src/main/java/delight/nashornsandbox/internal/JsSanitizer.java
Line 70 in 35c5ea2
As suggested by MrLi2018, this PR adds a protection to the evaluation of regular expression.
A unit test is also included in the PR that asserts the regular expression attack cannot be exploited.