Skip to main content

SemanticMediaWiki EUVDEUVD-2026-110712

| CVE-2026-116884 MEDIUM
Cross-site Scripting (XSS) (CWE-79)
2026-10-27 VulnCheck GHSA-h32m-8349-hq44
5.3
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain editor/page-edit account
  2. Exploit
    Save page with {{#info:}} plus malicious .smw-highlighter span
  3. Execution
    Victim (admin) hovers element, data-* attr hits innerHTML
  4. Impact
    Execute JS to steal admin session/CSRF tokens

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Output encoding, context-aware escaping
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Requires an account with page-edit (editor) privileges to store the payload - the malicious .smw-highlighter span is wikitext-authorable and survives the MediaWiki Sanitizer because data-content/data-title/data-top/data-bottom/data-theme are non-reserved data-* attributes. The ext.smw.tooltip ResourceLoader module must be loaded on the rendered page (the PoC uses a {{#info:message=...}} tag to force this). A victim must then hover the planted element (UI:P) for the onShow handler to assign the attribute value to innerHTML. The condition is present in DEFAULT configuration because allowHTML:true is hardcoded at ext.smw.tooltip.tippy.js:51 and the tooltip binds globally via tippy.delegate('#bodyContent',{target:'.smw-highlighter'}). LIMITING FACTORS: editor-level write access is needed to plant the payload, and victim hover interaction is required to trigger it - there is no unauthenticated or zero-interaction path.

Impact

This is a medium-severity stored XSS (CWE-79) with a moderate, conditional real-world risk rather than an urgent emergency. The input CVSS 4.0 base score is 5.3, with VC:L/VI:L and a subsequent-system scope impact (SC:L/SI:L) reflecting that code runs in the victim's authenticated session. There is NO CISA KEV listing and NO EPSS score in the provided data, so there is no signal of active or widespread exploitation; the vuln.today decision label is 'this_month' (not act_now/emergency), consistent with a patch-this-cycle priority. CONFLICT TO VERIFY: the supplied CVSS 4.0 vector states PR:N (unauthenticated), but the description and GHSA root-cause analysis are explicit that an *editor* (a user with page-edit rights) must plant the malicious .smw-highlighter span - this is an authenticated-write prerequisite, so PR:N understates the real barrier; treat the practical privilege requirement as editor-level, not anonymous. UI:P is accurate: a victim must hover the element for the payload to fire. The upside for an attacker is that the victim can be an administrator, turning a low-privilege editor foothold into admin-session/CSRF-token theft (a privilege-escalation-by-XSS pattern). Net: a genuine issue worth patching within the vendor's suggested cycle, but gated behind requiring an editor account plus victim interaction, which keeps it well below a drop-everything priority.

Exploit ScenarioDerived

An attacker who holds (or phishes/registers) an editor account saves a wiki page containing a {{#info:}} tag to force-load the tooltip module plus a crafted <span class="smw-highlighter" data-content="<img src=x onerror=...>">; when an administrator later views and hovers that element, the entity-decoded attribute is written to innerHTML via tippy's allowHTML:true sink and JavaScript executes in the admin's authenticated session, enabling CSRF-token theft and authenticated write-API abuse. A public PoC reference exists in the GHSA advisory (the exact wikitext payload), but it is not verified as working exploit code. Exploitation is not remote-unauthenticated: it requires editor privileges to store the payload and victim hover (UI:P) to trigger it.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 28, 2026

Stored cross-site scripting in the SemanticMediaWiki extension for MediaWiki (5.0.0 through 7.3.0) lets any user with page-edit rights plant a .smw-highlighter span whose data-content, data-title, data-top, data-bottom or data-theme attributes are concatenated unescaped into tippy tooltip content rendered with allowHTML:true, so arbitrary JavaScript runs in the session of any viewer - administrators included - who hovers the element. There is no unauthenticated or zero-interaction path: an editor account is needed to store the payload and the victim must hover the planted element for the onShow handler to write the decoded attribute into innerHTML, which is why the assessed vector is PR:L/UI:R/S:C (the vendor's CVSS 4.0 score of 5.3 does not credit the editor prerequisite). The issue is not in CISA KEV and no active exploitation is confirmed, but the upstream GitHub advisory publishes a proof-of-concept wikitext payload (not verified as working exploit code) and a fixed release, 7.3.1, is available.

RemediationAI

Vendor-released patch: upgrade SemanticMediaWiki to 7.3.1 (Composer constraint mediawiki/semantic-media-wiki >= 5.0.0, < 7.3.1 resolves to 7.3.1), following the GitHub advisory at https://github.com/SemanticMediaWiki/SemanticMediaWiki/security/advisories/GHSA-4wj6-wmjp-pmhh. If the upgrade cannot be applied immediately, the upstream suggested fix can be backported to res/smw/util/ext.smw.tooltip.tippy.js: set allowHTML: false for the tooltip, or escape the five attribute values (data-title, data-top, data-bottom, data-content, data-theme) before content assembly via mw.html.escape/textContent or pass the assembled string through DOMPurify - the trade-off is that legitimate HTML formatting already used inside existing tooltip content will render as literal text until content is adjusted. Because the payload can only be stored by a user with page-edit rights, temporarily narrowing who may edit pages that render the ext.smw.tooltip module reduces the population able to plant a .smw-highlighter element, but it does not remove the sink and does not protect administrators who later hover already-stored content. Note that SMW and default MediaWiki ship no Content-Security-Policy that would block inline event handlers, so CSP is not an out-of-the-box mitigation for this DOM injection.

Affected VersionsENISA

SemanticMediaWiki 5.0.0 <7.3.1

Affected Packages

euvd semanticmediawiki fix: 7.3.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

SemanticMediaWiki is a MediaWiki extension that adds semantic annotations to wikitext; its tooltip feature lives in the ResourceLoader module file res/smw/util/ext.smw.tooltip.tippy.js, which wraps the tippy.js library. The tooltip builder opts into raw HTML with allowHTML: true (line 51), and in the bundled tippy source that flag selects the sink function V(t,e){t.innerHTML=e} instead of textContent - tippy's own default is allowHTML:false, so this is a deliberate opt-in to an innerHTML sink. Five attacker-controllable attribute values read via getAttribute() are interpolated raw into that HTML string (data-title, data-top, data-bottom, data-content, plus data-theme, which is injected into the class attribute), and no mw.html.escape, textContent, escapeHTML or DOMPurify call exists anywhere in the file. The vulnerability class is CWE-79 (improper neutralization of input during web page generation - stored/DOM-executed XSS). The storage step survives MediaWiki's on-save Sanitizer because span/class are allowlisted and the data-* names match /^data-[^:]*$/ while not matching the reserved /^data-(ooui|mw|parsoid)$/i pattern, so the value is persisted entity-encoded and getAttribute() returns the decoded string at hover time. Because binding is global via tippy.delegate('#bodyContent', {target:'.smw-highlighter'}), the handler attaches to any planted element in page content provided the ext.smw.tooltip module is loaded (the PoC forces this with an {{#info:message=...}} tag). This is distinct from the earlier GHSA-hg8h-557g-q8pp (CVE-2025-61682) issue, which was in res/smw/ext.smw.js, used data-subtab and a JSON.parse-plus-innerHTML sink, and was fixed in 7.0.0; the tooltip file was never touched by that patch. The upstream report notes the tippy code has existed since @since 3.1, but only 7.0.0, 7.2.0, 7.2.1 and 7.3.0 were verified against local tags, so versions below 5.0.0 are not confirmed by the CPE/affected-version data.

Know when Semanticmediawiki gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (VulnCheck) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N
vuln.today AI 5.4 MEDIUM

PR:L because an editor account is required to store the payload; UI:R for the required hover; S:C and C:L/I:L as code runs in the victim's (admin) authenticated browser session.

3.1 AV:N/AC:L/PR:L/UI:R/S:C/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:P/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
Low
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
Low
Subsequent system: Availability
None

Lifecycle Timeline

1
Patch available
Oct 27, 2026 - 11:01 EUVD

DescriptionCVE.org

SemanticMediaWiki from 5.0.0 before 7.3.1 contains a stored cross-site scripting vulnerability in ext.smw.tooltip.tippy.js that renders data-* attributes via innerHTML with allowHTML enabled. Editors can plant a .smw-highlighter span with a malicious data-content, data-title, data-top, data-bottom, or data-theme attribute to execute JavaScript when viewers, including administrators, hover it.

Threat Intelligence Overview

EPSS Score
0.2%
Top 95% exploitable
Prevalence
Low
MediaWiki extension; niche semantic-wiki installs, no broad enterprise footprint
Social Media
1
Sightings
Data Quality
5 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Scripting occurs when an application accepts untrusted data and sends it to a web browser without proper validation or encoding.

CVE-2025-61682 HIGH POC
8.6 Sep 18

Stored cross-site scripting in Semantic MediaWiki 3.1.0 through 6.x lets users with the MediaWiki 'edit' right inject ar

CVE-2026-116878 HIGH
8.7 Oct 27

Semantic MediaWiki before 7.3.1 exposes Special:PropertyLabelSimilarity without an administrator restriction, and a call

CVE-2026-116877 HIGH
8.7 Oct 27

Semantic MediaWiki 2.5.0 through 7.3.0 lets an editor with ordinary page-edit permission exhaust server CPU, memory and

CVE-2026-116872 HIGH
8.7 Oct 27

Quadratic CPU consumption in Semantic MediaWiki's term parser gives unauthenticated visitors a way to tie up PHP search

CVE-2026-116871 HIGH
8.7 Oct 27

Unauthenticated CPU and memory exhaustion in Semantic MediaWiki 3.0.0 up to (but not including) 7.3.1 allows remote atta

CVE-2026-116880 HIGH
7.1 Oct 27

Cross-site request forgery in Semantic MediaWiki's Special:SMWAdmin page allows an attacker to drive destructive mainten

CVE-2026-116876 HIGH
7.1 Oct 27

Semantic MediaWiki 2.5.0 through 7.3.1-alpha applies annotation-driven page protection without any authorization check,

CVE-2026-116890 MEDIUM
6.9 Oct 27

Missing authorization in the Semantic MediaWiki smwtask API module allows unauthenticated remote visitors to invoke main

CVE-2026-116879 MEDIUM
6.9 Oct 27

Semantic MediaWiki 7.3.0 through 7.3.1-alpha fails to authorize the target page in its smwtask update task, letting a ca

CVE-2026-116873 MEDIUM
6.9 Oct 27

Missing authorization in Semantic MediaWiki 7.3.0 lets unauthenticated remote callers run queued maintenance jobs of arb

CVE-2026-77616 MEDIUM
6.1 Sep 18

Reflected cross-site scripting in Semantic MediaWiki 7.0.0 through 7.1.0 lets an unauthenticated attacker execute arbitr

CVE-2026-77610 MEDIUM
6.1 Sep 18

Reflected cross-site scripting in Semantic MediaWiki 7.1.0 and earlier lets an unauthenticated remote attacker inject ar

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy