Description
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 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.
Published: 2026-09-18
Score: 6.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Cross‑Site Scripting (Reflected)
Action: Immediate Patch
AI Analysis

Impact

Semantic MediaWiki allows users to embed data queries directly in wiki pages. In versions 7.0.0 through 7.1.0, the Special:Ask page accepts a cursor token for keyset pagination, but the token is treated as unsigned base‑64url encoded JSON that the attacker fully controls. If the token’s sort anchor does not line up with the request’s sort and order parameters, the code builds an error message that injects the attacker’s sort_prop or sort_order directly into a raw error string. That string bypasses MediaWiki’s message‑layer sanitisation, and the error widget emits the message as raw HTML. Consequently, an attacker can craft a cursor token containing script markup that is reflected in the browser when the victim visits a specially‑crafted link, giving the attacker the ability to run arbitrary JavaScript on the wiki’s origin without any authentication or special privileges.

Affected Systems

The flaw resides in the Semantic MediaWiki extension for MediaWiki, disclosed in the SemanticMediaWiki:SemanticMediaWiki product line. It affects all installations running Semantic MediaWiki versions 7.0.0 through 7.1.0. The vulnerability was patched in the 7.2.0 release, so any deployment using 7.2.0 or newer is not vulnerable.

Risk and Exploitability

The CVSS v3.1 score of 6.1 marks this as a medium‑severity flaw. No exploit evidence is reported (EPSS not available), and the vulnerability is not listed in the CISA KEV catalog, though its impact remains clear: any user can trigger the reflected XSS via a crafted link, so the risk rises if the wiki is accessible to untrusted parties. The attack requires only a crafted URL; no user interaction beyond clicking the link and no elevated privileges are needed. Because the vulnerability is reflected in the error output, it is easy to execute and can be used to harvest credentials, deface content, or perform other client‑side attacks.

Generated by OpenCVE AI on September 19, 2026 at 12:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade Semantic MediaWiki to version 7.2.0 or newer to apply the vendor‑supplied fix.
  • If an upgrade is not immediately possible, block the cursor parameter by configuring MediaWiki to reject or strip the cursor query string from Special:Ask requests.
  • Disable raw HTML output for error messages in the MediaWiki configuration or enforce a stricter sanitisation routine for error content to prevent reflected script execution.

Generated by OpenCVE AI on September 19, 2026 at 12:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-cx86-7xwp-w9wf Semantic MediaWiki affected by reflected XSS in `Special:Ask` via a forged cursor pagination token
History

Fri, 18 Sep 2026 21:30:00 +0000

Type Values Removed Values Added
Description 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 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.
Title Semantic MediaWiki affected by reflected XSS in `Special:Ask` via a forged cursor pagination token
Weaknesses CWE-79
References
Metrics cvssV3_1

{'score': 6.1, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N'}

ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-18T17:22:50.475Z

Reserved: 2026-08-20T20:52:01.926Z

Link: CVE-2026-77616

cve-icon Vulnrichment

Updated: 2026-09-18T17:22:45.546Z

cve-icon NVD

Status : Received

Published: 2026-09-18T17:17:01.560

Modified: 2026-09-18T18:17:15.193

Link: CVE-2026-77616

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-19T12:15:17Z

Weaknesses
  • CWE-79

    Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')