GHSA-j7qv-pgf6-hvh4
XSS in `*Text` options of the Datepicker widget in jquery-ui
Packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| npm | jquery-ui | < 1.13.0 | 1.13.0 |
| Maven | org.webjars.npm:jquery-ui | < 1.13.0 | 1.13.0 |
| RubyGems | jquery-ui-rails | < 7.0.0 | 7.0.0 |
| NuGet | jQuery.UI.Combined | < 1.13.0 | 1.13.0 |
Details
As written in the advisory (Markdown source, shown as plain text).
### Impact
Accepting the value of various `*Text` options of the Datepicker widget from untrusted sources may execute untrusted code. For example, initializing the datepicker in the following way:
```js
$( "#datepicker" ).datepicker( {
showButtonPanel: true,
showOn: "both",
closeText: "<script>doEvilThing( 'closeText XSS' )</script>",
currentText: "<script>doEvilThing( 'currentText XSS' )</script>",
prevText: "<script>doEvilThing( 'prevText XSS' )</script>",
nextText: "<script>doEvilThing( 'nextText XSS' )</script>",
buttonText: "<script>doEvilThing( 'buttonText XSS' )</script>",
appendText: "<script>doEvilThing( 'appendText XSS' )</script>",
} );
```
will call `doEvilThing` with 6 different parameters coming from all `*Text` options.
### Patches
The issue is fixed in jQuery UI 1.13.0. The values passed to various `*Text` options are now always treated as pure text, not HTML.
### Workarounds
A workaround is to not accept the value of the `*Text` options from untrusted sources.
### For more information
If you have any questions or comments about this advisory, search for a relevant issue in [the jQuery UI repo](https://github.com/jquery/jquery-ui/issues). If you don't find an answer, open a new issue.
References
External links from the advisory. They lead to third-party sites.
- https://github.com/jquery/jquery-ui/security/advisories/GHSA-j7qv-pgf6-hvh4
- https://nvd.nist.gov/vuln/detail/CVE-2021-41183
- https://github.com/jquery/jquery-ui/pull/1953
- https://www.tenable.com/security/tns-2022-09
- https://www.oracle.com/security-alerts/cpujul2022.html
- https://www.oracle.com/security-alerts/cpuapr2022.html
- https://www.drupal.org/sa-core-2022-002
- https://www.drupal.org/sa-core-2022-001
- https://www.drupal.org/sa-contrib-2022-004
- https://security.netapp.com/advisory/ntap-20211118-0004
- https://lists.fedoraproject.org/archives/list/[email protected]/message/SNXA7XRKGINWSUIPIZ6ZBCTV6N3KSHES
- https://lists.fedoraproject.org/archives/list/[email protected]/message/SGSY236PYSFYIEBRGDERLA7OSY6D7XL4
- https://lists.fedoraproject.org/archives/list/[email protected]/message/O74SXYY7RGXREQDQUDQD4BPJ4QQTD2XQ
- https://lists.fedoraproject.org/archives/list/[email protected]/message/NXIUUBRVLA4E7G7MMIKCEN75YN7UFERW
- https://lists.fedoraproject.org/archives/list/[email protected]/message/HVKIOWSXL2RF2ULNAP7PHESYCFSZIJE3
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/SNXA7XRKGINWSUIPIZ6ZBCTV6N3KSHES
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/SGSY236PYSFYIEBRGDERLA7OSY6D7XL4
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/O74SXYY7RGXREQDQUDQD4BPJ4QQTD2XQ
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/NXIUUBRVLA4E7G7MMIKCEN75YN7UFERW
- https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/HVKIOWSXL2RF2ULNAP7PHESYCFSZIJE3
- https://lists.debian.org/debian-lts-announce/2023/08/msg00040.html
- https://lists.debian.org/debian-lts-announce/2022/01/msg00014.html
- https://github.com/jquery/jquery-ui
- https://bugs.jqueryui.com/ticket/15284
- https://blog.jqueryui.com/2021/10/jquery-ui-1-13-0-released