JS: add model for chrome-remote-interface as a ClientRequest #2828
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.
chrome-remote-interface
is a somewhat often used library for remote controlling browsers.In CVE-2017-18355 the library was used to request a user controlled URL, and the contents of the URL was returned to the user. This allowed an arbitrary file read (by starting the URL with
file://
).To support the CVE we only need to add a sink.
There are two options for which query the sink belongs to:
js/path-injection
orjs/request-forgery
.I've chosen to model the sink as a
ClientRequest
, as the sink sends a network request to an arbitrary URL, and the query is thereforejs/request-forgery
.Here are some example projects that use the sink: https://lgtm.com/query/5288831567363067439/