Files
vuln-cve/data/2021/47xxx/CVE-2021-47343.json
T

383 lines
20 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"cveMetadata": {
"cveId": "CVE-2021-47343",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-05-21T14:28:16.979Z",
"datePublished": "2024-05-21T14:35:50.293Z",
"dateUpdated": "2026-08-05T08:47:20.543Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:47:20.543Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\ndm btree remove: assign new_root only when removal succeeds\n\nremove_raw() in dm_btree_remove() may fail due to IO read error\n(e.g. read the content of origin block fails during shadowing),\nand the value of shadow_spine::root is uninitialized, but\nthe uninitialized value is still assign to new_root in the\nend of dm_btree_remove().\n\nFor dm-thin, the value of pmd->details_root or pmd->root will become\nan uninitialized value, so if trying to read details_info tree again\nout-of-bound memory may occur as showed below:\n\n general protection fault, probably for non-canonical address 0x3fdcb14c8d7520\n CPU: 4 PID: 515 Comm: dmsetup Not tainted 5.13.0-rc6\n Hardware name: QEMU Standard PC\n RIP: 0010:metadata_ll_load_ie+0x14/0x30\n Call Trace:\n sm_metadata_count_is_more_than_one+0xb9/0xe0\n dm_tm_shadow_block+0x52/0x1c0\n shadow_step+0x59/0xf0\n remove_raw+0xb2/0x170\n dm_btree_remove+0xf4/0x1c0\n dm_pool_delete_thin_device+0xc3/0x140\n pool_message+0x218/0x2b0\n target_message+0x251/0x290\n ctl_ioctl+0x1c4/0x4d0\n dm_ctl_ioctl+0xe/0x20\n __x64_sys_ioctl+0x7b/0xb0\n do_syscall_64+0x40/0xb0\n entry_SYSCALL_64_after_hwframe+0x44/0xae\n\nFixing it by only assign new_root when removal succeeds"
}
],
"metrics": [
{
"cvssV3_1": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 7.8,
"baseSeverity": "HIGH"
},
"scenarios": [
{
"lang": "en",
"value": "AV:L - The vulnerable path is reached only through local device-mapper operations—dmsetup ioctls on /dev/mapper/control (pool message → delete/create) or local block I/O/discard on a dm-thin volume that calls dm_thin_remove_range → dm_btree_remove—not via network packet processing.\nAC:L - An attacker can reliably force the first shadow_step to fail (leaving spine.root uninitialized) by exhausting metadata space so dm_sm_new_block returns -ENOSPC during discard/remove, or—on the admin path—by placing dm-flakey under the metadata device; neither depends on a race or layout outside attacker influence.\nPR:L - Although the dmsetup path requires capable(CAP_SYS_ADMIN), dm_btree_remove is also reachable from unprivileged discard/write I/O on a thin volume via dm_thin_remove_range/__remove_range with no capability check, which is the common cloud/container deployment of dm-thin.\nUI:N - The attacker issues the discard, writes that fill metadata, or dmsetup delete themselves; no separate victim action such as mounting a crafted filesystem is required.\nS:U - Corruption and the resulting oops remain inside the host kernel’s dm-thin/persistent-data authority and do not cross a VM, IOMMU, or other security boundary.\nC:H - The uninitialized new_root is later used as a metadata block number; at the time of the bug sm_ll_lookup_bitmap had no bounds check, so metadata_ll_load_ie performs an unbounded out-of-bounds read of kernel memory (as the commit’s non-canonical GPF demonstrates), which per guidance scores Confidentiality High.\nI:H - The same unbounded index path exists in metadata_ll_save_ie (OOB write), and installing attacker-influenceable stack garbage as pmd->root/details_root causes subsequent btree shadowing/updates to read and write metadata through a corrupted root—memory-corruption integrity impact High under the stated guidance.\nA:H - The documented consequence is a general protection fault / kernel oops when the corrupted root is reused (metadata_ll_load_ie GPF in the commit), which is a complete availability loss."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/md/persistent-data/dm-btree-remove.c"
],
"versions": [
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "4c84b3e0728ffe10d89c633694c35a02b5c477dc",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "c154775619186781aaf8a99333ac07437a1768d5",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "73f27adaa73e3057a9ec464e33c4f54d34ea5de3",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "8fbae4a1bdb5b889490cdee929e68540151536e5",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "964d57d1962d7e68f0f578f05d9ae4a104d74851",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "ba47e65a5de3e0e8270301a409fc63d3129fdb9e",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "89bf942314b78d454db92427201421b5dec132d9",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "ad365e9351ac2b450e7e79932ff6abf59342d91a",
"status": "affected",
"versionType": "git"
},
{
"version": "3241b1d3e0aaafbfcd320f4d71ade629728cc4f4",
"lessThan": "b6e58b5466b2959f83034bead2e2e1395cca8aeb",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/md/persistent-data/dm-btree-remove.c"
],
"versions": [
{
"version": "3.2",
"status": "affected"
},
{
"version": "0",
"lessThan": "3.2",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "4.4.276",
"lessThanOrEqual": "4.4.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "4.9.276",
"lessThanOrEqual": "4.9.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "4.14.240",
"lessThanOrEqual": "4.14.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "4.19.198",
"lessThanOrEqual": "4.19.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.4.133",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.51",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.12.18",
"lessThanOrEqual": "5.12.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.13.3",
"lessThanOrEqual": "5.13.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.14",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "4.4.276"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "4.9.276"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "4.14.240"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "4.19.198"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "5.4.133"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "5.10.51"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "5.12.18"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "5.13.3"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "3.2",
"versionEndExcluding": "5.14"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/4c84b3e0728ffe10d89c633694c35a02b5c477dc"
},
{
"url": "https://git.kernel.org/stable/c/c154775619186781aaf8a99333ac07437a1768d5"
},
{
"url": "https://git.kernel.org/stable/c/73f27adaa73e3057a9ec464e33c4f54d34ea5de3"
},
{
"url": "https://git.kernel.org/stable/c/8fbae4a1bdb5b889490cdee929e68540151536e5"
},
{
"url": "https://git.kernel.org/stable/c/964d57d1962d7e68f0f578f05d9ae4a104d74851"
},
{
"url": "https://git.kernel.org/stable/c/ba47e65a5de3e0e8270301a409fc63d3129fdb9e"
},
{
"url": "https://git.kernel.org/stable/c/89bf942314b78d454db92427201421b5dec132d9"
},
{
"url": "https://git.kernel.org/stable/c/ad365e9351ac2b450e7e79932ff6abf59342d91a"
},
{
"url": "https://git.kernel.org/stable/c/b6e58b5466b2959f83034bead2e2e1395cca8aeb"
}
],
"title": "dm btree remove: assign new_root only when removal succeeds",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"title": "CISA ADP Vulnrichment",
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2021-47343",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-05-23T19:04:19.383705Z"
}
}
}
],
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-06-04T17:15:19.329Z"
}
},
{
"providerMetadata": {
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE",
"dateUpdated": "2024-08-04T05:32:08.519Z"
},
"title": "CVE Program Container",
"references": [
{
"url": "https://git.kernel.org/stable/c/4c84b3e0728ffe10d89c633694c35a02b5c477dc",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/c154775619186781aaf8a99333ac07437a1768d5",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/73f27adaa73e3057a9ec464e33c4f54d34ea5de3",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/8fbae4a1bdb5b889490cdee929e68540151536e5",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/964d57d1962d7e68f0f578f05d9ae4a104d74851",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/ba47e65a5de3e0e8270301a409fc63d3129fdb9e",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/89bf942314b78d454db92427201421b5dec132d9",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/ad365e9351ac2b450e7e79932ff6abf59342d91a",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/b6e58b5466b2959f83034bead2e2e1395cca8aeb",
"tags": [
"x_transferred"
]
}
]
}
]
}
}