{"schemaVersion":3,"id":"CVE-2025-53486","aliases":[],"status":"published","duplicateOf":null,"title":null,"description":"The WikiCategoryTagCloud extension is vulnerable to reflected XSS via the linkstyle attribute, which is improperly concatenated into inline HTML without escaping. An attacker can inject JavaScript event handlers such as onmouseenter using carefully crafted input via the {{#tag:tagcloud}} parser function, resulting in arbitrary JavaScript execution when a victim hovers over a link in the category cloud.\n\n\n\n\nThe vulnerability exists because the linkstyle parameter is only passed through Sanitizer::checkCss() (which does not escape HTML) and is then directly inserted into a style attribute using string concatenation instead of Html::element or Html::openElement.\n\n\n\n\nThis issue affects Mediawiki - WikiCategoryTagCloud extension: from 1.39.X before 1.39.13, from 1.42.X before 1.42.7, from 1.43.X before 1.43.2.","dates":{"published":"2025-07-07T15:07:44.875Z","modified":"2025-07-07T19:15:02.740Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":5.4,"severity":"medium","version":"3.1","versionLabel":"v3.1","source":"CVE.org","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","computed":false,"selection":"backend-summary"},"metrics":[{"version":"3.1","versionLabel":"v3.1","source":"CVE.org","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":5.4,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.0029,"percentile":0.20355,"severity":"low","asOf":"2026-10-21T00:00:00.000Z","change":{"pp":0.03999999999999997,"baselineDate":"2026-09-21T00:00:00.000Z","baselineScore":0.0025},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.0029,"percentile":0.20355}],"last30":[{"date":"2026-09-21T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.0025,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.0027,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.0029,"percentile":null},{"date":"2026-10-21T00:00:00.000Z","score":0.0029,"percentile":0.20355}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-79","name":"Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","description":"The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/79.html"}],"affected":[{"vendor":"wikimedia foundation","product":"mediawiki - wikicategorytagcloud extension","name":"Mediawiki - WikiCategoryTagCloud extension","label":"mediawiki - wikicategorytagcloud extension","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 1.39.x, < 1.39.13","noFixRecorded":false,"fixedIn":null},{"text":"≥ 1.42.x, < 1.42.7","noFixRecorded":false,"fixedIn":null},{"text":"≥ 1.43.x, < 1.43.2","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 1.39.x, < 1.39.13 | ≥ 1.42.x, < 1.42.7 | ≥ 1.43.x, < 1.43.2","eol":null,"hubHref":"/vendor/wikimedia_foundation/mediawiki_-_wikicategorytagcloud_extension"}],"affectedCount":1,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://phabricator.wikimedia.org/T394590","label":"phabricator.wikimedia.org/T394590","hostname":"phabricator.wikimedia.org","tags":[]},{"url":"https://gerrit.wikimedia.org/r/q/Idd68cf2372aedd916687d30b1bd09ebb48fcfd17","label":"gerrit.wikimedia.org/r/q/Idd68cf2372aedd916687d30b1bd09ebb48fcfd17","hostname":"gerrit.wikimedia.org","tags":[]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2025-07-07T15:07:44.875Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2025-07-07T19:15:02.740Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":22,"level":"low","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T19:51:14.732Z","stale":false,"partial":false}}