Files
vuln-cve/data/2026/89xxx/CVE-2026-89501.json
T

180 lines
9.9 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-2026-89501",
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"state": "PUBLISHED",
"assignerShortName": "Linux",
"dateReserved": "2026-09-11T19:38:34.715Z",
"datePublished": "2026-09-11T19:43:50.063Z",
"dateUpdated": "2026-10-19T08:47:52.839Z"
},
"containers": {
"cna": {
"providerMetadata": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-10-19T08:47:52.839Z"
},
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nring-buffer: Hold cpu_buffer::lock when resizing a subbuf\n\nBecause, ring_buffer_subbuf_order_set() can clear cpu_buffer->free_page,\nhold cpu_buffer->lock to prevent races with\nring_buffer_alloc_read_page() and ring_buffer_free_read_page()."
}
],
"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 reached only via local tracefs syscalls: write() to buffer_subbuf_size_kb (ring_buffer_subbuf_order_set) racing with read()/close() on per_cpu/*/trace_pipe_raw (ring_buffer_alloc_read_page and ring_buffer_free_read_page). No network, adjacent-radio, or physical path reaches this free_page steal.\nAC:L - The attacker controls both sides of the race: one thread toggles buffer_subbuf_size_kb to copy and NULL cpu_buffer->free_page without cpu_buffer->lock, while another reads or closes trace_pipe_raw, which takes or caches that page under the lock. Success does not depend on an uninfluenced victim state.\nPR:L - tracing_check_open_get_tr() enforces only LOCKDOWN_TRACEFS and DAC with no capable() check. buffer_subbuf_size_kb and trace_pipe_raw are mode 0640 and are routinely delegated via tracefs gid=/mode= to tracing-group members on Android/Perfetto, ChromeOS, and developer kernels, matching prior CNA tracefs UAF scores.\nUI:N - Exploitation uses the attacker’s own tracefs file descriptors and threads (open/read/close trace_pipe_raw while writing buffer_subbuf_size_kb). No separate victim mount, click, or configuration action is required.\nS:U - The use-after-free and double-free corrupt kernel ring-buffer pages and metadata within the same OS security authority. This enables local privilege escalation but does not cross VM, IOMMU, container-hypervisor, or hardware trust boundaries.\nC:H - ring_buffer_subbuf_order_set() can free the cached free_page after alloc_read_page has already claimed it, including after ring_buffer_read_page swaps it into the live reader page. Recycled heap contents are then copied to userspace via tracing_buffers_read, giving a high-impact disclosure primitive.\nI:H - The same race double-frees the page or installs a freed page as the live ring-buffer reader page, so later tracing writes and free_read_page hit attacker-reclaimable heap. This UAF/double-free is exploitable for arbitrary kernel writes and control-flow hijack, not merely a crash.\nA:H - Concurrent free of a still-in-use reader or spare page corrupts ring-buffer lists and causes kernel oops/panic on UAF or double-free. The attacker can retrigger the race at will through repeated subbuf resizes and raw-buffer reads."
}
]
}
],
"affected": [
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"versions": [
{
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"lessThan": "8a496aaa3da6e8d545896c2370c7e617cc931ae2",
"status": "affected",
"versionType": "git"
},
{
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"lessThan": "6fcb0b745a0b80df62eae4a93ce52a2d061f4ac2",
"status": "affected",
"versionType": "git"
},
{
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"lessThan": "bf242baf58de03467f226c8e29554c9495dca7fc",
"status": "affected",
"versionType": "git"
},
{
"version": "8e7b58c27b3c567316a51079b375b846f9223bba",
"lessThan": "24974bd0da1b47fd56c975533ead50abf754e74d",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"kernel/trace/ring_buffer.c"
],
"versions": [
{
"version": "6.8",
"status": "affected"
},
{
"version": "0",
"lessThan": "6.8",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.12.109",
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "6.18.50",
"lessThanOrEqual": "6.18.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "7.2.4",
"lessThanOrEqual": "7.2.*",
"status": "unaffected",
"versionType": "semver"
},
{
"version": "7.3",
"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": "6.8",
"versionEndExcluding": "6.12.109"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8",
"versionEndExcluding": "6.18.50"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8",
"versionEndExcluding": "7.2.4"
},
{
"vulnerable": true,
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionStartIncluding": "6.8",
"versionEndExcluding": "7.3"
}
]
}
]
}
],
"references": [
{
"url": "https://git.kernel.org/stable/c/8a496aaa3da6e8d545896c2370c7e617cc931ae2"
},
{
"url": "https://git.kernel.org/stable/c/6fcb0b745a0b80df62eae4a93ce52a2d061f4ac2"
},
{
"url": "https://git.kernel.org/stable/c/bf242baf58de03467f226c8e29554c9495dca7fc"
},
{
"url": "https://git.kernel.org/stable/c/24974bd0da1b47fd56c975533ead50abf754e74d"
}
],
"title": "ring-buffer: Hold cpu_buffer::lock when resizing a subbuf",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
}
}