PT-2026-72078 · Zephyr · Zephyr

CVE-2026-12366

·

Published

2026-08-14

·

Updated

2026-08-26

CVSS v3.1

8.8

High

VectorAV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
Name of the Vulnerable Software and Affected Versions Zephyr (affected versions not specified)
Description A use-after-free issue exists in the dynamic kernel-object disposal path unref check() within kernel/userspace/userspace.c. The system frees an object's storage using k free(dyn->data) when its reference count reaches zero, but the cleanup process fails to handle the K OBJ TIMER case. Consequently, a dynamically-allocated and armed k timer remains linked in the global timeout queue timeout q after its storage is freed, creating a dangling node.
When the timer expires, the system invokes z timer expiration handler() on the freed node, leading to memory corruption in the kernel/ISR context. This flaw is reachable by an unprivileged user thread when CONFIG USERSPACE and CONFIG DYNAMIC OBJECTS are enabled. An attacker can trigger this by arming a timer via the k timer start() syscall and then releasing the last permission via the k object release() syscall or by exiting the thread through k thread perms all clear(). This can be used as a sandbox-escape primitive for privilege escalation.
Recommendations Implement the k timer cleanup() function to cancel the timeout and wait for any in-flight handlers, ensuring it is called for K OBJ TIMER before the object storage is freed.

Exploit

Fix

LPE

Use After Free

Found an issue in the description? Have something to add? Feel free to write us 👾

Weakness Enumeration

Related Identifiers

CVE-2026-12366
GHSA-X96G-542C-GCCQ

Affected Products

Zephyr