JS: add query js/tainted-schedule-method #3717
Closed
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.
This Pull Request introduces a CodeQL query that looks for user-controlled delays in schedule methods in Javascript which can lead to memory leaks. The reason for this is a recent customer engagement I had. A team encountered exactly this issue which caused a bit of downtime in the end.
It's using the dataFlow library and explicitly looks for setTimeout and setInterval calls.
In the
TaintedScheduleMethod.qhelp
I describe that capping the user-controlled delay is a way to prevent this from happening, but I haven't implemented a check in the query that checks whether the user provided value is capped. This is something I can use your help with.