{"id":"CVE-2026-77616","title":"Semantic MediaWiki is a free, open-source extension to MediaWiki that lets users store and query data within the wiki's pages","summary":"Semantic MediaWiki is a free, open-source extension to MediaWiki that lets users store and query data within the wiki's pages. In versions 7.0.0 through 7.1.0, `Special:Ask` accepts a `cursor` query parameter for keyset pagination (added…","severity":"medium","cvss":6.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","cwe":["CWE-79"],"vendor":"mediawiki","product":"mediawiki/semantic-media-wiki","affected":["mediawiki/semantic-media-wiki >= 7.0.0, <= 7.1.0"],"patched":["mediawiki/semantic-media-wiki 7.2.0"],"published":"2026-09-18","updated":"2026-09-18","sourceUpdated":"2026-09-18T18:17:15.193","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-77616","references":[{"url":"https://github.com/SemanticMediaWiki/SemanticMediaWiki/releases/tag/7.2.0","label":"security-advisories@github.com"},{"url":"https://github.com/SemanticMediaWiki/SemanticMediaWiki/security/advisories/GHSA-cx86-7xwp-w9wf","label":"security-advisories@github.com"},{"url":"https://github.com/advisories/GHSA-cx86-7xwp-w9wf"}],"tags":["nvd","ghsa","composer","cve.org"],"aliases":["GHSA-cx86-7xwp-w9wf"],"ecosystem":"composer","ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-09-18T17:22:25.899599Z"},"ingestedAt":"2026-09-18T17:46:41.524Z","epss":0.00202,"epssPercentile":0.10462,"slug":"CVE-2026-77616","body":"## Overview\n\nSemantic MediaWiki is a free, open-source extension to MediaWiki that lets users store and query data within the wiki's pages. In versions 7.0.0 through 7.1.0, `Special:Ask` accepts a `cursor` query parameter for keyset pagination (added in 7.0.0). The token is decoded by `CursorEncoder`, which is an **unsigned** base64url-encoded JSON blob, so its contents are fully attacker-controlled. When the cursor's sort anchor does not match the request's `sort=` / `order=`, `QueryCreator::applyCursorIfRequested()` builds an error message by interpolating the attacker-controlled `sort_prop` / `sort_order` values into a raw string via `Query::addErrors()`. Unlike SMW's message-key errors, this raw string bypasses the message layer's sanitization (`ProcessingErrorMsgHandler::normalizeAndDecodeMessages()` passes a non-key, non-encoded string through unchanged). `ErrorWidget::queryError()` then assembles the errors and passes them to `Html::errorBox()`, whose first argument is emitted as raw HTML. The result is a reflected cross-site scripting vulnerability: a crafted `cursor` token containing markup in `sort_prop` (or `sort_order`) executes script in the victim's browser on the wiki origin. No authentication or special permission is required. The payload is delivered via a crafted link. Version 7.2.0 contains a fix.\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Package advisory (CVE-2026-77616)\n\nAffected packages:\n\n- `mediawiki/semantic-media-wiki >= 7.0.0, <= 7.1.0`\n\nPatched in:\n\n- `mediawiki/semantic-media-wiki 7.2.0`\n\nSource: https://github.com/advisories/GHSA-cx86-7xwp-w9wf","depth":"sunlit","depthScore":34,"depthScoreParts":{"impact":33.6,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}