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

248 lines
12 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-47201",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-03-25T09:12:14.117Z",
"datePublished": "2024-04-10T18:56:35.774Z",
"dateUpdated": "2026-08-05T08:46:42.381Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T08:46:42.381Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\niavf: free q_vectors before queues in iavf_disable_vf\n\niavf_free_queues() clears adapter->num_active_queues, which\niavf_free_q_vectors() relies on, so swap the order of these two function\ncalls in iavf_disable_vf(). This resolves a panic encountered when the\ninterface is disabled and then later brought up again after PF\ncommunication is restored."
}
],
"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 bug is in the iavf VF driver’s local reset/disable path (iavf_reset_task → iavf_disable_vf → iavf_free_q_vectors), reached via local netdev operations such as MTU/ethtool-driven resets or PF-reset handling—not by processing remote packets.\nAC:L - Once iavf_disable_vf runs, freeing q_vectors without netif_napi_del is fully deterministic with no race to win. A local actor can repeatedly schedule VF resets, and in the worst reasonable SR-IOV deployment PF communication failures/restoration (the commit’s own scenario) make this path reachable under attacker-driven reset pressure.\nPR:L - Triggering the reset/reopen path only requires CAP_NET_ADMIN in the netns that owns the VF (e.g. ip link set mtu / ifup). SR-IOV VFs are routinely delegated into tenant/container netnses where that capability is available via user namespaces without init-namespace root.\nUI:N - The attacker schedules resets and can bring the interface back up after PF communication is restored (or recovery proceeds via the watchdog); no separate victim action is required.\nS:U - The dangling napi_struct UAF corrupts kernel heap within the same OS authority that runs iavf. This is standard local kernel compromise/DoS, not a guest-to-host escape or IOMMU boundary bypass.\nC:H - q_vectors (containing napi_structs) are kfree’d while still linked on netdev->napi_list, leaving dangling pointers. An attacker can reoccupy the freed object; subsequent NAPI list walks read attacker-controlled state (as in the related iavf NAPI UAF CVE-2023-53556), enabling high confidentiality impact.\nI:H - Later napi_del/list walks perform list_del_rcu and related writes on the freed napi_struct, yielding arbitrary-write primitives via forged next/prev pointers, sufficient for control-flow hijacking under kernel UAF guidance.\nA:H - The commit documents a kernel panic when the interface is brought back up after PF communication is restored; any walk of the corrupted napi_list (reinit, free_netdev, etc.) can oops/panic the kernel."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/net/ethernet/intel/iavf/iavf_main.c"
],
"versions": [
{
"version": "65c7006f234c9ede887d468f595f259a5c5cc552",
"lessThan": "926e8c83d4c1c2dac0026637eb0d492df876489e",
"status": "affected",
"versionType": "git"
},
{
"version": "65c7006f234c9ede887d468f595f259a5c5cc552",
"lessThan": "78638b47132244e3934dc5dc79f6372d5ce8e98c",
"status": "affected",
"versionType": "git"
},
{
"version": "65c7006f234c9ede887d468f595f259a5c5cc552",
"lessThan": "9ef6589cac9a8c47f5544ccdf4c498093733bb3f",
"status": "affected",
"versionType": "git"
},
{
"version": "65c7006f234c9ede887d468f595f259a5c5cc552",
"lessThan": "89f22f129696ab53cfbc608e0a2184d0fea46ac1",
"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/net/ethernet/intel/iavf/iavf_main.c"
],
"versions": [
{
"version": "4.13",
"status": "affected"
},
{
"version": "0",
"lessThan": "4.13",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.4.162",
"lessThanOrEqual": "5.4.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.82",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.5",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.16",
"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": "4.13",
"versionEndExcluding": "5.4.162"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.13",
"versionEndExcluding": "5.10.82"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.13",
"versionEndExcluding": "5.15.5"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "4.13",
"versionEndExcluding": "5.16"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/926e8c83d4c1c2dac0026637eb0d492df876489e"
},
{
"url": "https://git.kernel.org/stable/c/78638b47132244e3934dc5dc79f6372d5ce8e98c"
},
{
"url": "https://git.kernel.org/stable/c/9ef6589cac9a8c47f5544ccdf4c498093733bb3f"
},
{
"url": "https://git.kernel.org/stable/c/89f22f129696ab53cfbc608e0a2184d0fea46ac1"
}
],
"title": "iavf: free q_vectors before queues in iavf_disable_vf",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"title": "CISA ADP Vulnrichment",
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2021-47201",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-04-10T19:51:02.253151Z"
}
}
}
],
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-06-04T17:14:25.949Z"
}
},
{
"providerMetadata": {
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
"shortName": "CVE",
"dateUpdated": "2024-08-04T05:32:07.396Z"
},
"title": "CVE Program Container",
"references": [
{
"url": "https://git.kernel.org/stable/c/926e8c83d4c1c2dac0026637eb0d492df876489e",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/78638b47132244e3934dc5dc79f6372d5ce8e98c",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/9ef6589cac9a8c47f5544ccdf4c498093733bb3f",
"tags": [
"x_transferred"
]
},
{
"url": "https://git.kernel.org/stable/c/89f22f129696ab53cfbc608e0a2184d0fea46ac1",
"tags": [
"x_transferred"
]
}
]
}
]
}
}