CVE-2023-53790 (GCVE-0-2023-53790)
Vulnerability from cvelistv5 – Published: 2025-12-09 00:00 – Updated: 2025-12-09 00:00
VLAI?
Title
bpf: Zeroing allocated object from slab in bpf memory allocator
Summary
In the Linux kernel, the following vulnerability has been resolved:
bpf: Zeroing allocated object from slab in bpf memory allocator
Currently the freed element in bpf memory allocator may be immediately
reused, for htab map the reuse will reinitialize special fields in map
value (e.g., bpf_spin_lock), but lookup procedure may still access
these special fields, and it may lead to hard-lockup as shown below:
NMI backtrace for cpu 16
CPU: 16 PID: 2574 Comm: htab.bin Tainted: G L 6.1.0+ #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
RIP: 0010:queued_spin_lock_slowpath+0x283/0x2c0
......
Call Trace:
<TASK>
copy_map_value_locked+0xb7/0x170
bpf_map_copy_value+0x113/0x3c0
__sys_bpf+0x1c67/0x2780
__x64_sys_bpf+0x1c/0x20
do_syscall_64+0x30/0x60
entry_SYSCALL_64_after_hwframe+0x46/0xb0
......
</TASK>
For htab map, just like the preallocated case, these is no need to
initialize these special fields in map value again once these fields
have been initialized. For preallocated htab map, these fields are
initialized through __GFP_ZERO in bpf_map_area_alloc(), so do the
similar thing for non-preallocated htab in bpf memory allocator. And
there is no need to use __GFP_ZERO for per-cpu bpf memory allocator,
because __alloc_percpu_gfp() does it implicitly.
Severity ?
No CVSS data available.
Assigner
References
Impacted products
| Vendor | Product | Version | ||
|---|---|---|---|---|
| Linux | Linux |
Affected:
0fd7c5d43339b783ee3301a05f925d1e52ac87c9 , < 678ea18d6240299fd77d7000c8b1d7e5f274c8af
(git)
Affected: 0fd7c5d43339b783ee3301a05f925d1e52ac87c9 , < 5d447e04290e78bdc1a3a6c321320d384e09c2f1 (git) Affected: 0fd7c5d43339b783ee3301a05f925d1e52ac87c9 , < 997849c4b969034e225153f41026657def66d286 (git) |
||
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"include/linux/bpf.h",
"kernel/bpf/hashtab.c",
"kernel/bpf/memalloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "678ea18d6240299fd77d7000c8b1d7e5f274c8af",
"status": "affected",
"version": "0fd7c5d43339b783ee3301a05f925d1e52ac87c9",
"versionType": "git"
},
{
"lessThan": "5d447e04290e78bdc1a3a6c321320d384e09c2f1",
"status": "affected",
"version": "0fd7c5d43339b783ee3301a05f925d1e52ac87c9",
"versionType": "git"
},
{
"lessThan": "997849c4b969034e225153f41026657def66d286",
"status": "affected",
"version": "0fd7c5d43339b783ee3301a05f925d1e52ac87c9",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"include/linux/bpf.h",
"kernel/bpf/hashtab.c",
"kernel/bpf/memalloc.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "6.1"
},
{
"lessThan": "6.1",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.16",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.2.*",
"status": "unaffected",
"version": "6.2.3",
"versionType": "semver"
},
{
"lessThanOrEqual": "*",
"status": "unaffected",
"version": "6.3",
"versionType": "original_commit_for_fix"
}
]
}
],
"cpeApplicability": [
{
"nodes": [
{
"cpeMatch": [
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.16",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.2.3",
"versionStartIncluding": "6.1",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.3",
"versionStartIncluding": "6.1",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbpf: Zeroing allocated object from slab in bpf memory allocator\n\nCurrently the freed element in bpf memory allocator may be immediately\nreused, for htab map the reuse will reinitialize special fields in map\nvalue (e.g., bpf_spin_lock), but lookup procedure may still access\nthese special fields, and it may lead to hard-lockup as shown below:\n\n NMI backtrace for cpu 16\n CPU: 16 PID: 2574 Comm: htab.bin Tainted: G L 6.1.0+ #1\n Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),\n RIP: 0010:queued_spin_lock_slowpath+0x283/0x2c0\n ......\n Call Trace:\n \u003cTASK\u003e\n copy_map_value_locked+0xb7/0x170\n bpf_map_copy_value+0x113/0x3c0\n __sys_bpf+0x1c67/0x2780\n __x64_sys_bpf+0x1c/0x20\n do_syscall_64+0x30/0x60\n entry_SYSCALL_64_after_hwframe+0x46/0xb0\n ......\n \u003c/TASK\u003e\n\nFor htab map, just like the preallocated case, these is no need to\ninitialize these special fields in map value again once these fields\nhave been initialized. For preallocated htab map, these fields are\ninitialized through __GFP_ZERO in bpf_map_area_alloc(), so do the\nsimilar thing for non-preallocated htab in bpf memory allocator. And\nthere is no need to use __GFP_ZERO for per-cpu bpf memory allocator,\nbecause __alloc_percpu_gfp() does it implicitly."
}
],
"providerMetadata": {
"dateUpdated": "2025-12-09T00:00:47.025Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/678ea18d6240299fd77d7000c8b1d7e5f274c8af"
},
{
"url": "https://git.kernel.org/stable/c/5d447e04290e78bdc1a3a6c321320d384e09c2f1"
},
{
"url": "https://git.kernel.org/stable/c/997849c4b969034e225153f41026657def66d286"
}
],
"title": "bpf: Zeroing allocated object from slab in bpf memory allocator",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2023-53790",
"datePublished": "2025-12-09T00:00:47.025Z",
"dateReserved": "2025-12-08T23:58:35.274Z",
"dateUpdated": "2025-12-09T00:00:47.025Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"nvd": "{\"cve\":{\"id\":\"CVE-2023-53790\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-12-09T01:16:50.447\",\"lastModified\":\"2025-12-09T18:37:13.640\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nbpf: Zeroing allocated object from slab in bpf memory allocator\\n\\nCurrently the freed element in bpf memory allocator may be immediately\\nreused, for htab map the reuse will reinitialize special fields in map\\nvalue (e.g., bpf_spin_lock), but lookup procedure may still access\\nthese special fields, and it may lead to hard-lockup as shown below:\\n\\n NMI backtrace for cpu 16\\n CPU: 16 PID: 2574 Comm: htab.bin Tainted: G L 6.1.0+ #1\\n Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),\\n RIP: 0010:queued_spin_lock_slowpath+0x283/0x2c0\\n ......\\n Call Trace:\\n \u003cTASK\u003e\\n copy_map_value_locked+0xb7/0x170\\n bpf_map_copy_value+0x113/0x3c0\\n __sys_bpf+0x1c67/0x2780\\n __x64_sys_bpf+0x1c/0x20\\n do_syscall_64+0x30/0x60\\n entry_SYSCALL_64_after_hwframe+0x46/0xb0\\n ......\\n \u003c/TASK\u003e\\n\\nFor htab map, just like the preallocated case, these is no need to\\ninitialize these special fields in map value again once these fields\\nhave been initialized. For preallocated htab map, these fields are\\ninitialized through __GFP_ZERO in bpf_map_area_alloc(), so do the\\nsimilar thing for non-preallocated htab in bpf memory allocator. And\\nthere is no need to use __GFP_ZERO for per-cpu bpf memory allocator,\\nbecause __alloc_percpu_gfp() does it implicitly.\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/5d447e04290e78bdc1a3a6c321320d384e09c2f1\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/678ea18d6240299fd77d7000c8b1d7e5f274c8af\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/997849c4b969034e225153f41026657def66d286\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
}
}
Loading…
Loading…
Sightings
| Author | Source | Type | Date |
|---|
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.
Loading…
Loading…