Description
In the Linux kernel, the following vulnerability has been resolved:

ring-buffer: Fix crash passing ERR_PTR to kthread_stop()

In test_ringbuffer()'s out_free cleanup loop, the check
`!rb_threads[cpu]` only catches NULL entries and misses entries that
hold an ERR_PTR.

rb_threads[] is static, so unassigned slots are NULL. But when
kthread_run_on_cpu() fails for a cpu, it stores ERR_PTR(-ENOMEM) (or
-EINTR) in rb_threads[cpu] before the creation loop jumps to out_free.
That entry is non-NULL, so the old `!ptr` check does not break, and the
cleanup proceeds to call kthread_stop() on the ERR_PTR. kthread_stop()
then dereferences the bogus pointer, crashing the kernel during the
late_initcall self-test.

crash logs:
BUG: kernel NULL pointer dereference, address: 000000000000001c
Oops: 0002 [#1] SMP NOPTI
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 7.2.0-rc6-dirty #7 PREEMPT(lazy)
RIP: 0010:kthread_stop+0x2e/0x220
RBX: fffffffffffffff4
CR2: 000000000000001c
Call Trace:
<TASK>
test_ringbuffer+0x1ec/0x650
do_one_initcall+0x6c/0x2c0
kernel_init_freeable+0x21d/0x420
kernel_init+0x15/0x1c0
ret_from_fork+0x21b/0x320
</TASK>
Kernel panic - not syncing: Fatal exception
Published: 2026-09-03
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A null‑pointer dereference occurs when kthread_stop() is called with an ERR_PTR value during the ring‑buffer self‑test. The crash triggers a kernel panic, halting the system. The flaw is a classic Null Pointer Dereference issue that prevents the kernel from booting normally, causing a denial of service for that instance of the system.

Affected Systems

The vulnerability affects all Linux kernel implementations that include the test_ringbuffer logic in the late_initcall path before the v3ea2fd3 commit. Versions of the kernel that were released prior to this patch, such as 7.2.0‑rc6 and earlier releases that contain the failing test, are vulnerable. The change applies to the core kernel, so any distribution running an affected kernel version is impacted.

Risk and Exploitability

The flaw has no known remote exploitation route; it can only be triggered during kernel initialization, meaning an attacker would need local access or a malicious kernel build. The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, suggesting a low to moderate likelihood of active exploitation. Nevertheless, a kernel crash is a high‑severity denial of service that can bring services down or require a reboot. The CVSS score is not provided, but the impact is significant enough that any system running an affected kernel should apply the fix immediately.

Generated by OpenCVE AI on September 3, 2026 at 12:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the commit 3ea2fd344d93e3cf9503739b09fd702c0d8f8f0b, or apply the vendor‑supplied patch that resolves the NULL pointer dereference in test_ringbuffer
  • Re‑run the kernel self‑test suite, especially the test_ringbuffer unit, to verify that the crash no longer occurs
  • Monitor system logs for kernel panics and ensure that any affected systems are updated promptly to mitigate potential denial‑of‑service failures

Generated by OpenCVE AI on September 3, 2026 at 12:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 03 Sep 2026 12:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-476

Thu, 03 Sep 2026 07:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: ring-buffer: Fix crash passing ERR_PTR to kthread_stop() In test_ringbuffer()'s out_free cleanup loop, the check `!rb_threads[cpu]` only catches NULL entries and misses entries that hold an ERR_PTR. rb_threads[] is static, so unassigned slots are NULL. But when kthread_run_on_cpu() fails for a cpu, it stores ERR_PTR(-ENOMEM) (or -EINTR) in rb_threads[cpu] before the creation loop jumps to out_free. That entry is non-NULL, so the old `!ptr` check does not break, and the cleanup proceeds to call kthread_stop() on the ERR_PTR. kthread_stop() then dereferences the bogus pointer, crashing the kernel during the late_initcall self-test. crash logs: BUG: kernel NULL pointer dereference, address: 000000000000001c Oops: 0002 [#1] SMP NOPTI CPU: 1 PID: 1 Comm: swapper/0 Not tainted 7.2.0-rc6-dirty #7 PREEMPT(lazy) RIP: 0010:kthread_stop+0x2e/0x220 RBX: fffffffffffffff4 CR2: 000000000000001c Call Trace: <TASK> test_ringbuffer+0x1ec/0x650 do_one_initcall+0x6c/0x2c0 kernel_init_freeable+0x21d/0x420 kernel_init+0x15/0x1c0 ret_from_fork+0x21b/0x320 </TASK> Kernel panic - not syncing: Fatal exception
Title ring-buffer: Fix crash passing ERR_PTR to kthread_stop()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-03T08:21:48.325Z

Reserved: 2026-08-26T14:34:25.789Z

Link: CVE-2026-80730

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-03T13:06:11.550

Modified: 2026-09-03T13:06:11.550

Link: CVE-2026-80730

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T12:30:04Z

Weaknesses