jQuery before 1.9.0 is vulnerable to Cross-site Scripting (XSS) attacks. The jQuery(strInput) function does not differentiate selectors from HTML in a reliable fashion. In vulnerable versions, jQuery determined whether the input was HTML by looking for the '<' character anywhere in the string, giving attackers more flexibility when attempting to construct a malicious payload. In fixed versions, jQuery only deems the input to be HTML if it explicitly starts with the '<' character, limiting exploitability only to attackers who can control the beginning of a string, which is far less common.
| Package (Ecosystem) | Introduced | Fixed | Limit |
|---|---|---|---|
| jquery(npm) | 0 | 1.9.0 | N/A |
| org.webjars.npm:jquery(Maven) | 0 | 1.9.0 | N/A |
| jQuery(NuGet) | 0 | 1.9.0 | N/A |
| jquery-rails(RubyGems) | 0 | 2.2.0 | N/A |
CVSS Metrics