Junglewise Threat Intelligence

CVE-2019-5428: jQuery prototype pollution in extend() method

CVE-2019-5428 · Severity: info · CVSS 6.1 · Published 2019-04-23

Technologies: jQuery, org.webjars.npm:jquery (Maven), jquery-rails (RubyGems). Vendors: jQuery, Maven, RubyGems.

Executive brief

jQuery is a widely-used JavaScript library for web development. Versions prior to 3.4.0 contain a prototype pollution vulnerability in the extend() method that allows attackers to modify core JavaScript object properties, potentially affecting all objects created by an application. This could lead to unexpected behavior, security bypasses, or application malfunction across websites using vulnerable versions.

Technical details

The vulnerability is a prototype pollution flaw in jQuery's extend() method (particularly the deep/recursive extend variant with true parameter). An attacker can supply malicious input to the extend() function that modifies Object.prototype, poisoning the prototype chain and affecting all objects in the application. The attack requires the ability to pass untrusted data to an extend() call but does not require authentication or special privileges. Exploitation can result in property injection into all JavaScript objects, enabling logic bypass, denial of service, or information disclosure. The fix was released in jQuery 3.4.0 (patch merged March 2019) and requires upgrading to that version or later.

Affected products

  • jQuery jQuery prior to 3.4.0
  • jQuery jquery-rails prior to 3.4.0

Timeline

  • 2019-04-23: disclosed
  • 2019-04-10: patched: jQuery 3.4.0 released with fix

References

Related threats