- cvss
- —
- not scored
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- —
- no score, EPSS covers CVEs only
- public exploits
- 0
- none known
Summary
All version of `jquery-mobile` are vulnerable to Cross-Site Scripting. The package checks for content in `location.hash` and if a URL is found it does an XmlHttpRequest (XHR) to the URL and renders the response with `innerHTML`. It fails to validate the `Content-Type` of the response, allowing attackers to include malicious payloads as part of query parameters that are reflected back to the user. A response such as `{"q":"<iframe/src='javascript:alert(1)'></iframe>","results":[]}` would be parsed as HTML and the JavaScript payload executed.
## Recommendation
No fix is currently available. Consider using an alternative package until a fix is made available.
Patch / fix
- github.com/jquery/jquery-mobile@b0d9cc7 commit
- github.com/jquery/jquery-mobile#8649 pull request
- github.com/jquery/jquery-mobile#8650 pull request
Is GHSA-fj93-7wm4-8x2g in your dependencies? Fencer shows which of your repositories are affected as soon as an advisory lands, and opens the fix as a pull request.
Check with FencerAffected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| npm | jquery-mobile | all versions |
no fix listed |
Classification
- Weakness
-
- CWE-79 Improper Neutralization of Input During Web Page Generation
References
-
github.com
/jquery/jquery-mobile/pull/8649
web
-
github.com
/jquery/jquery-mobile/pull/8650
web
-
github.com
/jquery/jquery-mobile/commit/b0d9cc758a48f13321750d7409fb7655dcdf2b50
web
-
github.com
/jquery/jquery-mobile/issues/8640
web
-
gist.github.com
/jupenur/e5d0c6f9b58aa81860bf74e010cf1685
web
-
github.com
/jquery/jquery-mobile
web
-
snyk.io
/vuln/SNYK-JS-JQUERYMOBILE-174599
web
-
npmjs.com
/advisories/883
web
Sources
- GitHub Advisory GHSA-fj93-7wm4-8x2g
Fencer Intel keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.