GitHub Advisoryadvisory · npm, Maven, RubyGems, NuGet

GHSA-j7qv-pgf6-hvh4 XSS in `*Text` options of the Datepicker widget in jquery-ui

MEDIUM Published 2021-10-26 Modified 2021-10-27 Official page ↗
Aliases
CVE-2021-41183
Ecosystem
npm, Maven, RubyGems, NuGet
Packages
jquery-ui, org.webjars.npm:jquery-ui, jquery-ui-rails, jQuery.UI.Combined
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N
Weaknesses
CWE-79
Reviewed
2021-10-25

Affected packages

• npm jquery-ui: < 1.13.0 → fixed in 1.13.0 • Maven org.webjars.npm:jquery-ui: < 1.13.0 → fixed in 1.13.0 • RubyGems jquery-ui-rails: < 7.0.0 → fixed in 7.0.0 • NuGet jQuery.UI.Combined: < 1.13.0 → fixed in 1.13.0

Description

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: "doEvilThing( 'closeText XSS' )", currentText: "doEvilThing( 'currentText XSS' )", prevText: "doEvilThing( 'prevText XSS' )", nextText: "doEvilThing( 'nextText XSS' )", buttonText: "doEvilThing( 'buttonText XSS' )", appendText: "doEvilThing( 'appendText XSS' )", } ); ``` 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. If you don't find an answer, open a new issue.

Related

Alias · CVE (1)

  • CVE-2021-41183 jQuery-UI is the official jQuery user interface library. vulnerability

Weakness · CWE (1)

  • CWE-79 Improper Neutralization of Input During Web Page Generation weakness

References