You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This project seems to have bundled code from the xmlbuilder library, and it contains a Regular expression Denial of Service (ReDoS)* vulnerability.
This was fixed in the upstream xmlbuilder v9.0.7, you can see the upstream commit here: oozcitak/xmlbuilder-js@bbf929a
The vulnerablity originates from the following Regular Expression (/^A-Za-z*$/), in this function:
A string composed of the indicated prefix, the "pump" concatenated 30 times, and then the suffix, takes about 10 seconds to evaluate, and will double for each additional concatenation of the pump string.
The blow-up is exponential-time, so just truncating the input may not help.
The 10-second string is under 100 characters long.
ReDoS, also known as Catastrophic Backtracking, catastrophic backtracking is when the regex engine takes more than linear time to scan a string.
There are lots of resources about it on the web. I have included some starting points below.
Catastrophic backtracking is particularly problematic if two conditions are met:
The module is used by server processes, and
The regex can be reached by user input.
The text was updated successfully, but these errors were encountered:
This project seems to have bundled code from the xmlbuilder library, and it contains a Regular expression Denial of Service (ReDoS)* vulnerability.
This was fixed in the upstream xmlbuilder v9.0.7, you can see the upstream commit here:
oozcitak/xmlbuilder-js@bbf929a
The vulnerablity originates from the following Regular Expression (/^A-Za-z*$/), in this function:
Here is an attack string (JSON-formatted):
{"pumpPairs":[{"pump":"-A","prefix":"AA"}],"suffix":"\u0000"}
A string composed of the indicated prefix, the "pump" concatenated 30 times, and then the suffix, takes about 10 seconds to evaluate, and will double for each additional concatenation of the pump string.
The blow-up is exponential-time, so just truncating the input may not help.
The 10-second string is under 100 characters long.
There are lots of resources about it on the web. I have included some starting points below.
Catastrophic backtracking is particularly problematic if two conditions are met:
The text was updated successfully, but these errors were encountered: