GHSA-j7qv-pgf6-hvh4MediumCVSS 6.5

XSS in `*Text` options of the Datepicker widget in jquery-ui

Published
October 26, 2021
Last Modified
September 26, 2023

🔗 CVE IDs covered (1)

📋 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:

$( "#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. If you don't find an answer, open a new issue.

🎯 Affected products4

  • npm/jquery-ui:< 1.13.0
  • maven/org.webjars.npm:jquery-ui:< 1.13.0
  • nuget/jQuery.UI.Combined:< 1.13.0
  • rubygems/jquery-ui-rails:< 7.0.0

🔗 References (25)