Page MenuHomePhabricator

CVE-2025-62662: Stored XSS through system messages in AdvancedSearch
Closed, ResolvedPublicSecurity

Description

Multiple system messages are inserted as HTML by the AdvancedSearch extension, allowing for stored XSS.

Reproduction steps

  1. Enable AdvancedSearch
  2. Make sure $wgUseXssLanguage is set to 'true`
  3. Go to /w/index.php?search=test&uselang=x-xss

A number of alerts should pop up for the following messages:

  • advancedsearch-field-deepcategory
  • advancedsearch-field-fileh
  • advancedsearch-field-filetype
  • advancedsearch-field-filew
  • advancedsearch-field-hastemplate
  • advancedsearch-field-inlanguage
  • advancedsearch-field-intitle
  • advancedsearch-field-not
  • advancedsearch-field-or
  • advancedsearch-field-phrase
  • advancedsearch-field-plain
  • advancedsearch-field-sort
  • advancedsearch-field-subpageof

Cause

The messages are retrieved via mw.msg, which does not escape the contents, and stored in the head variable.
head is then inserted as HTML via a HTMLSnippet.

https://gerrit.wikimedia.org/g/mediawiki/extensions/AdvancedSearch/+/f61483a44c6420c4debddc447ff797574cc19a56/modules/ext.advancedSearch.defaultFields.js#95

Additional information

Event Timeline

sbassett changed the task status from Open to In Progress.Aug 18 2025, 4:37 PM
sbassett reassigned this task from SomeRandomDeveloper to Mstyles.
sbassett triaged this task as Low priority.
sbassett moved this task from Incoming to In Progress on the Security-Team board.
sbassett added a project: SecTeam-Processed.
sbassett subscribed.

The above patch was deployed during today's (2025-08-25) security window.

Change #1189200 had a related patch set uploaded (by Reedy; author: SomeRandomDeveloper):

[mediawiki/extensions/AdvancedSearch@master] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189200

Change #1189200 merged by jenkins-bot:

[mediawiki/extensions/AdvancedSearch@master] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189200

Change #1189227 had a related patch set uploaded (by Reedy; author: SomeRandomDeveloper):

[mediawiki/extensions/AdvancedSearch@REL1_44] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189227

Change #1189228 had a related patch set uploaded (by Reedy; author: SomeRandomDeveloper):

[mediawiki/extensions/AdvancedSearch@REL1_43] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189228

Change #1189229 had a related patch set uploaded (by Reedy; author: SomeRandomDeveloper):

[mediawiki/extensions/AdvancedSearch@REL1_39] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189229

Change #1189229 abandoned by Reedy:

[mediawiki/extensions/AdvancedSearch@REL1_39] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189229

Change #1189227 merged by jenkins-bot:

[mediawiki/extensions/AdvancedSearch@REL1_44] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189227

Change #1189228 merged by jenkins-bot:

[mediawiki/extensions/AdvancedSearch@REL1_43] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189228

Change #1189229 restored by Paladox:

[mediawiki/extensions/AdvancedSearch@REL1_39] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189229

Change #1189229 restored by Paladox:

[mediawiki/extensions/AdvancedSearch@REL1_39] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189229

@Reedy I've asked paladox to restore it and published an edit as the vulnerability is present on REL1_39 too, there just were too many merge conflicts

Change #1189229 merged by jenkins-bot:

[mediawiki/extensions/AdvancedSearch@REL1_39] SECURITY: Escape system messages before inserting them into HTML

https://gerrit.wikimedia.org/r/1189229

Mstyles renamed this task from Stored XSS through system messages in AdvancedSearch to CVE-2025-62662: Stored XSS through system messages in AdvancedSearch.Oct 18 2025, 5:01 AM
Mstyles changed the visibility from "Custom Policy" to "Public (No Login Required)".
Mstyles changed the edit policy from "Custom Policy" to "All Users".
A_smart_kitten removed a project: Patch-For-Review.

(reassigning to patch author for posterity)