### [CVE-2017-16021](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-16021) ![](https://img.shields.io/static/v1?label=Product&message=uri-js%20node%20module&color=blue) ![](https://img.shields.io/static/v1?label=Version&message=%3C%3D2.1.1%20&color=brightgreen) ![](https://img.shields.io/static/v1?label=Vulnerability&message=Denial%20of%20Service%20(CWE-400)&color=brightgreen) ### Description uri-js is a module that tries to fully implement RFC 3986. One of these features is validating whether or not a supplied URL is valid or not. To do this, uri-js uses a regular expression, This regular expression is vulnerable to redos. This causes the program to hang and the CPU to idle at 100% usage while uri-js is trying to validate if the supplied URL is valid or not. To check if you're vulnerable, look for a call to `require("uri-js").parse()` where a user is able to send their own input. This affects uri-js 2.1.1 and earlier. ### POC #### Reference No PoCs from references. #### Github - https://github.com/ARPSyndicate/cvemon - https://github.com/Banyaon/And-ifclcs- - https://github.com/Banyaon/supreme-robot - https://github.com/Banyaon/vigilant-fiesta