UBUNTU-CVE-2021-30159 (CVE-2021-30159)
Vulnerability from osv_ubuntu – Published: 2021-04-09 07:15 – Updated: 2026-05-27 10:01 – Source websiteAn issue was discovered in MediaWiki before 1.31.12 and 1.32.x through 1.35.x before 1.35.2. Users can bypass intended restrictions on deleting pages in certain "fast double move" situations. MovePage::isValidMoveTarget() uses FOR UPDATE, but it's only called if Title::getArticleID() returns non-zero with no special flags. Next, MovePage::moveToInternal() will delete the page if getArticleID(READ_LATEST) is non-zero. Therefore, if the page is missing in the replica DB, isValidMove() will return true, and then moveToInternal() will unconditionally delete the page if it can be found in the master.
{
"affected": [
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "mediawiki",
"binary_version": "1:1.31.7-1ubuntu0.1~esm1"
},
{
"binary_name": "mediawiki-classes",
"binary_version": "1:1.31.7-1ubuntu0.1~esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:20.04:LTS",
"name": "mediawiki",
"purl": "pkg:deb/ubuntu/mediawiki@1:1.31.7-1ubuntu0.1~esm1?arch=source\u0026distro=esm-apps/focal"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:1.31.2-1ubuntu1",
"1:1.31.5-1",
"1:1.31.5-1ubuntu1",
"1:1.31.5-2",
"1:1.31.5-3",
"1:1.31.5-3ubuntu1",
"1:1.31.6-1",
"1:1.31.7-1",
"1:1.31.7-1ubuntu0.1~esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "mediawiki",
"binary_version": "1:1.35.6-1ubuntu0.1~esm1"
},
{
"binary_name": "mediawiki-classes",
"binary_version": "1:1.35.6-1ubuntu0.1~esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:22.04:LTS",
"name": "mediawiki",
"purl": "pkg:deb/ubuntu/mediawiki@1:1.35.6-1ubuntu0.1~esm1?arch=source\u0026distro=esm-apps/jammy"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:1.35.3-1",
"1:1.35.4-1",
"1:1.35.5-1",
"1:1.35.5-1ubuntu1",
"1:1.35.5-1ubuntu2",
"1:1.35.5-1ubuntu3",
"1:1.35.6-1",
"1:1.35.6-1ubuntu0.1~esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "mediawiki",
"binary_version": "1:1.39.7-1ubuntu0.1~esm1"
},
{
"binary_name": "mediawiki-classes",
"binary_version": "1:1.39.7-1ubuntu0.1~esm1"
}
]
},
"package": {
"ecosystem": "Ubuntu:Pro:24.04:LTS",
"name": "mediawiki",
"purl": "pkg:deb/ubuntu/mediawiki@1:1.39.7-1ubuntu0.1~esm1?arch=source\u0026distro=esm-apps/noble"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:1.39.4-2",
"1:1.39.5-1",
"1:1.39.6-1",
"1:1.39.7-1",
"1:1.39.7-1ubuntu0.1~esm1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "mediawiki",
"binary_version": "1:1.43.3+dfsg-1"
},
{
"binary_name": "mediawiki-classes",
"binary_version": "1:1.43.3+dfsg-1"
}
]
},
"package": {
"ecosystem": "Ubuntu:25.10",
"name": "mediawiki",
"purl": "pkg:deb/ubuntu/mediawiki@1:1.43.3+dfsg-1?arch=source\u0026distro=questing"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:1.43.1+dfsg-1",
"1:1.43.1+dfsg-2",
"1:1.43.3+dfsg-1"
]
},
{
"ecosystem_specific": {
"binaries": [
{
"binary_name": "mediawiki",
"binary_version": "1:1.43.8+dfsg-2"
},
{
"binary_name": "mediawiki-classes",
"binary_version": "1:1.43.8+dfsg-2"
}
]
},
"package": {
"ecosystem": "Ubuntu:26.04:LTS",
"name": "mediawiki",
"purl": "pkg:deb/ubuntu/mediawiki@1:1.43.8+dfsg-2?arch=source\u0026distro=resolute"
},
"ranges": [
{
"events": [
{
"introduced": "0"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"1:1.43.3+dfsg-1",
"1:1.43.5+dfsg-1",
"1:1.43.6+dfsg-2",
"1:1.43.8+dfsg-1",
"1:1.43.8+dfsg-2"
]
}
],
"aliases": [],
"details": "An issue was discovered in MediaWiki before 1.31.12 and 1.32.x through 1.35.x before 1.35.2. Users can bypass intended restrictions on deleting pages in certain \"fast double move\" situations. MovePage::isValidMoveTarget() uses FOR UPDATE, but it\u0027s only called if Title::getArticleID() returns non-zero with no special flags. Next, MovePage::moveToInternal() will delete the page if getArticleID(READ_LATEST) is non-zero. Therefore, if the page is missing in the replica DB, isValidMove() will return true, and then moveToInternal() will unconditionally delete the page if it can be found in the master.",
"id": "UBUNTU-CVE-2021-30159",
"modified": "2026-05-27T10:01:53Z",
"published": "2021-04-09T07:15:00Z",
"references": [
{
"type": "REPORT",
"url": "https://ubuntu.com/security/CVE-2021-30159"
},
{
"type": "REPORT",
"url": "https://phabricator.wikimedia.org/T272386"
},
{
"type": "REPORT",
"url": "https://lists.wikimedia.org/pipermail/wikitech-l/2021-April/094418.html"
},
{
"type": "REPORT",
"url": "https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/49ce7dd2143d01cffd4dfd2f2af79b2b93672eac%5E%21/"
},
{
"type": "REPORT",
"url": "https://www.cve.org/CVERecord?id=CVE-2021-30159"
}
],
"related": [],
"schema_version": "1.7.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
},
{
"score": "medium",
"type": "Ubuntu"
}
],
"upstream": [
"CVE-2021-30159"
]
}
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
Related by attack behaviour
Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.