# CVE-2016-10707: jQuery infinite recursion in attribute getter for mixed-case names

Source: https://junglewise.ai/threats/cve-2016-10707-jquery-infinite-recursion-in-attribute-getter-for-mixed-case  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2018-01-22. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

CVE-2016-10707 · Severity: low · CVSS 3 · Published 2018-01-22

jQuery is a widely-used JavaScript library for DOM manipulation and event handling. Versions 3.0.0-rc.1 contain a bug in attribute handling that causes the application to enter an infinite loop and crash when accessing boolean HTML attributes with mixed-case names, leading to denial of service for any web page using affected jQuery versions.

Technologies: [jQuery](https://junglewise.ai/threats/technologies/jquery), [org.webjars.npm:jquery (Maven)](https://junglewise.ai/threats/technologies/org-webjars-npm-jquery), [jquery-rails (RubyGems)](https://junglewise.ai/threats/technologies/jquery-rails). Vendors: [jQuery](https://junglewise.ai/threats/vendors/jquery), [Maven](https://junglewise.ai/threats/vendors/maven), [RubyGems](https://junglewise.ai/threats/vendors/rubygems).

## Quick answers

**Is CVE-2016-10707 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2016-10707 being exploited in the wild.

**How severe is CVE-2016-10707?** Low severity, with a CVSS score of 3, published 22 January 2018.

**Which products and versions are affected?** jQuery 3.0.0-rc.1; org.webjars.npm:jquery (Maven) ECOSYSTEM:introduced=3.0.0-rc1,fixed=3.0.0; jquery-rails (RubyGems) ECOSYSTEM:introduced=3.0.0-rc.1,fixed=3.0.0.

**Is there a fix for CVE-2016-10707?** Yes. org.webjars.npm:jquery (Maven): upgrade to 3.0.0 or later; jquery-rails (RubyGems): upgrade to 3.0.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2016-10707 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2016-10707?** Check whether you run jQuery, org.webjars.npm:jquery (Maven) or jquery-rails (RubyGems) 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

- org.webjars.npm:jquery (Maven): upgrade to 3.0.0 or later

  ```sh
  # set org.webjars.npm:jquery to 3.0.0 in your pom.xml or build.gradle
  ```

- jquery-rails (RubyGems): upgrade to 3.0.0 or later

  ```sh
  bundle update jquery-rails
  ```


## Technical details

The vulnerability is an infinite recursion flaw (CWE-674) in jQuery's attribute getter logic. When attempting to access a boolean attribute using a name containing uppercase characters (e.g., `attr('requiRed')`), the lowercasing logic fails and triggers unbounded recursion that exhausts the call stack. The attack vector is network-based; any script on a web page can trigger the condition simply by calling `.attr()` with a mixed-case attribute name on any element. No authentication is required. An attacker can exploit this to cause a denial of service by crashing the browser or application. The issue was fixed in jQuery 3.0.0.

## Affected products

- jQuery jQuery 3.0.0-rc.1

## Identifiers

- CVE-2016-10707
- GHSA-mhpp-875w-9cpv

## Timeline

- 2016-05-29: disclosed
- 2016-05-29: patched: Fixed in jQuery 3.0.0
- 2018-01-22: advisory

## References

- [https://github.com/jquery/jquery/issues/3133](https://github.com/jquery/jquery/issues/3133)

## Related threats

- [jQuery Cross Site Scripting in htmlPrefilter](https://junglewise.ai/threats/jquery-cross-site-scripting-in-htmlprefilter-9649f1a0)
- [jQuery Cross-Site Scripting in location.hash element selection](https://junglewise.ai/threats/cve-2011-4969-jquery-cross-site-scripting-in-location-hash-element-selection)
- [jQuery Cross-Site Scripting in main jQuery function](https://junglewise.ai/threats/cve-2012-6708-jquery-cross-site-scripting-in-main-jquery-function)
- [jQuery cross-site scripting in load method](https://junglewise.ai/threats/cve-2020-7656-jquery-cross-site-scripting-in-load-method)
- [jQuery DOM manipulation XSS via option elements](https://junglewise.ai/threats/cve-2020-11023-jquery-cross-site-scripting-xss-vulnerability)
