-
Notifications
You must be signed in to change notification settings - Fork 961
Description
Coverity static analysis is complaining that enable(namespaces)
uses an unescaped user input as the basis for a regular expression.
It follows the path from the user-defined window.localStorage.debug
value through the load()
function in browser.js into the enable(namespaces)
function in common.js.
I understand that this debug input is used to control what is logged or not -- but it leaves the library (and any dependent ones) open to receiving crafted input that could cause a denial of service attack on the user's browser (ReDoS attack). I don't believe this is an issue for a server-side DoS attack -- as the input on the server comes from an environment variable rather than the less-protected browser context.
One solution might be to look at something like https://github.com/davisjam/safe-regex to defend against some types of problematic regexes -- there are other suggestions in that repo's readme as well.