CVE-2014-8882: validator.js regular expression denial of service

CVE-2014-8882 · Severity: low · CVSS 3.1 · Published 2020-08-31

The validator.js library is a widely-used JavaScript utility for input validation. A regular expression parsing flaw in the isURL validation method can be exploited to cause excessive CPU consumption, disrupting any application or service that depends on this library for validating user-submitted URLs.

Technologies: validator (npm). Vendors: npm.

Quick answers

Is CVE-2014-8882 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2014-8882 being exploited in the wild.
How severe is CVE-2014-8882?
Low severity, with a CVSS score of 3.1, published 31 August 2020.
Which products and versions are affected?
validator (npm) SEMVER:introduced=0,fixed=3.22.1.
Is there a fix for CVE-2014-8882?
Yes. validator (npm): upgrade to 3.22.1 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2014-8882 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2014-8882?
Check whether you run validator (npm) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • validator (npm): upgrade to 3.22.1 or later
    npm install validator@3.22.1

Technical details

A regular expression denial of service (ReDoS) vulnerability exists in the isURL method of validator.js versions prior to 3.22.1. The vulnerable regex pattern fails to efficiently handle specially crafted URL strings, causing catastrophic backtracking and excessive CPU consumption. An unauthenticated attacker can trigger this via any code path that calls isURL on untrusted input (typically form submissions or API requests). The vulnerability was fixed in version 3.22.1 by optimizing the regex pattern to prevent backtracking.

Affected products

  • chriso validator.js before 3.22.1

Identifiers

  • CVE-2014-8882
  • GHSA-f5w6-r7rg-mcgq

Timeline

  • 2020-08-31: disclosed
  • 2020: patched: Fixed in version 3.22.1

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.