293 lines
17 KiB
JSON
293 lines
17 KiB
JSON
{
|
|
"dataType": "CVE_RECORD",
|
|
"dataVersion": "5.2",
|
|
"cveMetadata": {
|
|
"cveId": "CVE-2024-44995",
|
|
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"state": "PUBLISHED",
|
|
"assignerShortName": "Linux",
|
|
"dateReserved": "2024-08-21T05:34:56.672Z",
|
|
"datePublished": "2024-09-04T19:54:40.878Z",
|
|
"dateUpdated": "2026-08-05T11:37:34.142Z"
|
|
},
|
|
"containers": {
|
|
"cna": {
|
|
"providerMetadata": {
|
|
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
|
|
"shortName": "Linux",
|
|
"dateUpdated": "2026-08-05T11:37:34.142Z"
|
|
},
|
|
"descriptions": [
|
|
{
|
|
"lang": "en",
|
|
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: hns3: fix a deadlock problem when config TC during resetting\n\nWhen config TC during the reset process, may cause a deadlock, the flow is\nas below:\n pf reset start\n │\n ▼\n ......\nsetup tc │\n │ ▼\n ▼ DOWN: napi_disable()\nnapi_disable()(skip) │\n │ │\n ▼ ▼\n ...... ......\n │ │\n ▼ │\nnapi_enable() │\n ▼\n UINIT: netif_napi_del()\n │\n ▼\n ......\n │\n ▼\n INIT: netif_napi_add()\n │\n ▼\n ...... global reset start\n │ │\n ▼ ▼\n UP: napi_enable()(skip) ......\n │ │\n ▼ ▼\n ...... napi_disable()\n\nIn reset process, the driver will DOWN the port and then UINIT, in this\ncase, the setup tc process will UP the port before UINIT, so cause the\nproblem. Adds a DOWN process in UINIT to fix it."
|
|
}
|
|
],
|
|
"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 vulnerability is reached through local configuration interfaces — rtnetlink `RTM_NEWQDISC` (mqprio offload → `hns3_nic_setup_tc`) raced against an `ethtool --reset` / `ethtool -L` triggered PF reset. No remote peer input reaches this path, so it requires local access to the host.\nAC:L - The attacker controls both halves of the race: they start the PF reset themselves via `ethtool -r`, and `hclge_reset()` drops rtnl_lock for the entire hardware-reset wait, leaving a long, deterministic window in which the tc/mqprio ioctl can be issued in a tight loop until it lands. `hclge_setup_tc()` has no reset-state guard at all, so no condition outside the attacker's control is involved.\nPR:L - Both triggers (tc qdisc/mqprio and ethtool reset) require only CAP_NET_ADMIN over the hns3 netdevice, which is a delegatable capability held by unprivileged network-management daemons and by the owner of a user namespace whose network namespace holds the device (a dedicated PF handed to a container). This is not full root in the initial namespace, so Low rather than High.\nUI:N - The attacker issues both the reset request and the TC configuration themselves; no action by any other user or administrator is needed.\nS:U - The corruption and the hang are confined to the kernel of the same host, within the same security authority — there is no hypervisor, IOMMU, or sandbox boundary crossed.\nC:H - Because the missing `hns3_nic_net_stop()` lets `hns3_reset_notify_uninit_enet()` run against a live port, `devm_kfree(priv->tqp_vector)` and `hns3_uninit_all_ring()` free the NAPI contexts, DIM work items and DMA descriptor buffers while NAPI polling, pending DIM works and hardware DMA are still using them. The resulting use-after-free over freed, reallocatable slab memory can be leveraged to read attacker-chosen kernel data.\nI:H - The same use-after-free gives a write primitive — the uncancelled `rx_group.dim.work`/`tx_group.dim.work` execute against the freed `tqp_vector`, and the NIC continues DMA-writing into freed ring buffers, so heap-sprayed objects can be corrupted, which is exploitable toward control-flow hijack.\nA:H - The documented outcome is a permanent deadlock: `napi_disable()` spins forever on a NAPI that was re-added but never enabled, and it does so while the reset worker holds rtnl_lock, wedging every subsequent network-configuration operation on the machine plus the NIC itself. Any kernel hang/deadlock is High."
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"affected": [
|
|
{
|
|
"product": "Linux",
|
|
"vendor": "Linux",
|
|
"defaultStatus": "unaffected",
|
|
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
|
|
"programFiles": [
|
|
"drivers/net/ethernet/hisilicon/hns3/hns3_enet.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "67492d4d105c0a6321b00c393eec96b9a7a97a16",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "fc250eca15bde34c4c8f806b9d88f55bd56a992c",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "195918217448a6bb7f929d6a2ffffce9f1ece1cc",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "6ae2b7d63cd056f363045eb65409143e16f23ae8",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "fa1d4de7265c370e673583ac8d1bd17d21826cd9",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "de37408d5c26fc4a296a28a0c96dcb814219bfa1",
|
|
"status": "affected",
|
|
"versionType": "git"
|
|
},
|
|
{
|
|
"version": "bb6b94a896d4dd4dcdeccca87c3fd22521c652c0",
|
|
"lessThan": "be5e816d00a506719e9dbb1a9c861c5ced30a109",
|
|
"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/hisilicon/hns3/hns3_enet.c"
|
|
],
|
|
"versions": [
|
|
{
|
|
"version": "4.15",
|
|
"status": "affected"
|
|
},
|
|
{
|
|
"version": "0",
|
|
"lessThan": "4.15",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.4.283",
|
|
"lessThanOrEqual": "5.4.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.10.225",
|
|
"lessThanOrEqual": "5.10.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "5.15.166",
|
|
"lessThanOrEqual": "5.15.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.1.107",
|
|
"lessThanOrEqual": "6.1.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.6.48",
|
|
"lessThanOrEqual": "6.6.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.10.7",
|
|
"lessThanOrEqual": "6.10.*",
|
|
"status": "unaffected",
|
|
"versionType": "semver"
|
|
},
|
|
{
|
|
"version": "6.11",
|
|
"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.15",
|
|
"versionEndExcluding": "5.4.283"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "5.10.225"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "5.15.166"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "6.1.107"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "6.6.48"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "6.10.7"
|
|
},
|
|
{
|
|
"vulnerable": true,
|
|
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
|
|
"versionStartIncluding": "4.15",
|
|
"versionEndExcluding": "6.11"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"references": [
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/67492d4d105c0a6321b00c393eec96b9a7a97a16"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/fc250eca15bde34c4c8f806b9d88f55bd56a992c"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/195918217448a6bb7f929d6a2ffffce9f1ece1cc"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/6ae2b7d63cd056f363045eb65409143e16f23ae8"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/fa1d4de7265c370e673583ac8d1bd17d21826cd9"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/de37408d5c26fc4a296a28a0c96dcb814219bfa1"
|
|
},
|
|
{
|
|
"url": "https://git.kernel.org/stable/c/be5e816d00a506719e9dbb1a9c861c5ced30a109"
|
|
}
|
|
],
|
|
"title": "net: hns3: fix a deadlock problem when config TC during resetting",
|
|
"x_generator": {
|
|
"engine": "bippy-1.2.0"
|
|
}
|
|
},
|
|
"adp": [
|
|
{
|
|
"metrics": [
|
|
{
|
|
"other": {
|
|
"type": "ssvc",
|
|
"content": {
|
|
"timestamp": "2024-09-04T20:19:19.943422Z",
|
|
"id": "CVE-2024-44995",
|
|
"options": [
|
|
{
|
|
"Exploitation": "none"
|
|
},
|
|
{
|
|
"Automatable": "no"
|
|
},
|
|
{
|
|
"Technical Impact": "partial"
|
|
}
|
|
],
|
|
"role": "CISA Coordinator",
|
|
"version": "2.0.3"
|
|
}
|
|
}
|
|
}
|
|
],
|
|
"title": "CISA ADP Vulnrichment",
|
|
"providerMetadata": {
|
|
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
|
|
"shortName": "CISA-ADP",
|
|
"dateUpdated": "2024-09-04T20:19:31.635Z"
|
|
}
|
|
},
|
|
{
|
|
"title": "CVE Program Container",
|
|
"references": [
|
|
{
|
|
"url": "https://lists.debian.org/debian-lts-announce/2025/01/msg00001.html"
|
|
},
|
|
{
|
|
"url": "https://lists.debian.org/debian-lts-announce/2024/10/msg00003.html"
|
|
}
|
|
],
|
|
"providerMetadata": {
|
|
"orgId": "af854a3a-2127-422b-91ae-364da2661108",
|
|
"shortName": "CVE",
|
|
"dateUpdated": "2025-11-03T22:14:51.240Z"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
} |