Files
vuln-cve/data/2023/52xxx/CVE-2023-52903.json
T

214 lines
11 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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-2023-52903",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2024-08-21T06:07:11.014Z",
"datePublished": "2024-08-21T06:10:43.857Z",
"dateUpdated": "2026-08-05T09:11:53.830Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-08-05T09:11:53.830Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nio_uring: lock overflowing for IOPOLL\n\nsyzbot reports an issue with overflow filling for IOPOLL:\n\nWARNING: CPU: 0 PID: 28 at io_uring/io_uring.c:734 io_cqring_event_overflow+0x1c0/0x230 io_uring/io_uring.c:734\nCPU: 0 PID: 28 Comm: kworker/u4:1 Not tainted 6.2.0-rc3-syzkaller-16369-g358a161a6a9e #0\nWorkqueue: events_unbound io_ring_exit_work\nCall trace:\n io_cqring_event_overflow+0x1c0/0x230 io_uring/io_uring.c:734\n io_req_cqe_overflow+0x5c/0x70 io_uring/io_uring.c:773\n io_fill_cqe_req io_uring/io_uring.h:168 [inline]\n io_do_iopoll+0x474/0x62c io_uring/rw.c:1065\n io_iopoll_try_reap_events+0x6c/0x108 io_uring/io_uring.c:1513\n io_uring_try_cancel_requests+0x13c/0x258 io_uring/io_uring.c:3056\n io_ring_exit_work+0xec/0x390 io_uring/io_uring.c:2869\n process_one_work+0x2d8/0x504 kernel/workqueue.c:2289\n worker_thread+0x340/0x610 kernel/workqueue.c:2436\n kthread+0x12c/0x158 kernel/kthread.c:376\n ret_from_fork+0x10/0x20 arch/arm64/kernel/entry.S:863\n\nThere is no real problem for normal IOPOLL as flush is also called with\nuring_lock taken, but it's getting more complicated for IOPOLL|SQPOLL,\nfor which __io_cqring_overflow_flush() happens from the CQ waiting path."
}
],
"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 io_uring IOPOLL completion overflow (`io_do_iopoll` → `io_fill_cqe_req` → `io_req_cqe_overflow`), reachable only via local `io_uring_setup`/`io_uring_enter` on an attacker-owned ring, not via network packet processing.\nAC:L - An attacker can force CQ overflow on an IOPOLL ring while concurrently posting aux CQEs (e.g. `IORING_MSG_DATA` via msg_ring’s `io_post_aux_cqe`, which took only `completion_lock`) so both sides of the `cq_overflow_list` race are attacker-controlled.\nPR:L - io_uring is usable by unprivileged local users by default (`kernel.io_uring_disabled=0`); IOPOLL and msg_ring require no CAP_SYS_ADMIN or init-namespace root.\nUI:N - The attacker creates the ring(s), submits IOPOLL work, overflows the CQ, and drives concurrent overflow/aux posting themselves; no victim action is required.\nS:U - Impact is kernel memory corruption within the host OS authority (local privilege escalation); no VM escape, IOMMU bypass, or sandbox boundary is crossed.\nC:H - Missing `completion_lock` while mutating `cq_overflow_list` races with other overflow/aux posters holding that lock, enabling linked-list corruption and use-after-free of overflow entries that can be leveraged for arbitrary kernel memory disclosure.\nI:H - Concurrent unlocked list add/delete/kfree on `cq_overflow_list` yields classic heap UAF/double-free primitives exploitable for arbitrary write and control-flow hijacking.\nA:H - The same race can oops/panic the kernel via list corruption, and the observed lockdep path is a `WARN` in `io_cqring_event_overflow` (High under panic_on_warn / oops deployments)."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"io_uring/rw.c"
],
"versions": [
{
"version": "2b188cc1bb857a9d4701ae59aa7768b5124e262e",
"lessThan": "de77faee280163ff03b7ab64af6c9d779a43d4c4",
"status": "affected",
"versionType": "git"
},
{
"version": "2b188cc1bb857a9d4701ae59aa7768b5124e262e",
"lessThan": "ed4629d1e968359fbb91d0a3780b1e86a2c08845",
"status": "affected",
"versionType": "git"
},
{
"version": "2b188cc1bb857a9d4701ae59aa7768b5124e262e",
"lessThan": "7fc3990dad04a677606337ebc61964094d6cb41b",
"status": "affected",
"versionType": "git"
},
{
"version": "2b188cc1bb857a9d4701ae59aa7768b5124e262e",
"lessThan": "544d163d659d45a206d8929370d5a2984e546cb7",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"io_uring/rw.c"
],
"versions": [
{
"version": "5.1",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.1",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.10.165",
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "5.15.89",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.1.7",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.2",
"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": "5.1",
"versionEndExcluding": "5.10.165"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.1",
"versionEndExcluding": "5.15.89"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.1",
"versionEndExcluding": "6.1.7"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "5.1",
"versionEndExcluding": "6.2"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/de77faee280163ff03b7ab64af6c9d779a43d4c4"
},
{
"url": "https://git.kernel.org/stable/c/ed4629d1e968359fbb91d0a3780b1e86a2c08845"
},
{
"url": "https://git.kernel.org/stable/c/7fc3990dad04a677606337ebc61964094d6cb41b"
},
{
"url": "https://git.kernel.org/stable/c/544d163d659d45a206d8929370d5a2984e546cb7"
}
],
"title": "io_uring: lock overflowing for IOPOLL",
"x_generator": {
"engine": "bippy-1.2.0"
}
},
"adp": [
{
"metrics": [
{
"other": {
"type": "ssvc",
"content": {
"id": "CVE-2023-52903",
"role": "CISA Coordinator",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "no"
},
{
"Technical Impact": "partial"
}
],
"version": "2.0.3",
"timestamp": "2024-09-10T16:03:21.069603Z"
}
}
}
],
"title": "CISA ADP Vulnrichment",
"providerMetadata": {
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP",
"dateUpdated": "2024-09-12T17:33:14.061Z"
}
}
]
}
}