CVE-2026-12631
Last modified
CVE-2026-12631 is a medium-severity vulnerability rated 6.5/10 on the CVSS scale. The Zephyr kernel validates the k_thread_join() and k_thread_abort() system calls (declared __syscall in include/zephyr/kernel.h) through thread_obj_validate() in kernel/thread.c. Its default switch branch is the access-denied path, taken when k_object_validate() returns -EPERM (the calling user thread was never granted access to the target thread object) or -EBADF (the supplied pointer is not a registered kernel object of the right type). EPSS estimates a 0.15% chance of exploitation in the next 30 days.
Description
The Zephyr kernel validates the k_thread_join() and k_thread_abort() system calls (declared __syscall in include/zephyr/kernel.h) through thread_obj_validate() in kernel/thread.c. Its default switch branch is the access-denied path, taken when k_object_validate() returns -EPERM (the calling user thread was never granted access to the target thread object) or -EBADF (the supplied pointer is not a registered kernel object of the right type). That branch invoked K_OOPS(K_SYSCALL_VERIFY_MSG(ret, "access denied")), but K_SYSCALL_VERIFY_MSG treats a true expression as success; the non-zero error code ret therefore read as "verified OK", the kernel oops was never raised, and control fell through to CODE_UNREACHABLE. Because k_thread_join() and k_thread_abort() are system calls, an unprivileged user-mode thread (under CONFIG_USERSPACE) can reach this denial path directly by calling either syscall on a thread object it does not own. Instead of the offending thread being cleanly terminated, execution reaches __builtin_unreachable() while running in supervisor mode inside the syscall handler. On Clang builds CODE_UNREACHABLE emits an illegal-instruction trap, so a user thread can deterministically crash the kernel — a locally triggerable denial of service that escapes the userspace sandbox. On GCC builds the path is undefined behavior: the compiler may drop the return-value handling for thread_obj_validate(), so it can return an undefined bool; if that is false, the caller proceeds into the real k_thread_join()/k_thread_abort() implementation for a thread the user was never authorized to access, an access-control bypass. The fix changes the verification expression to ret == 0, so a denied (non-zero) result now correctly raises K_OOPS and terminates the offending caller.
Metrics
Weakness Enumeration
Affected Software
Source: CNA advisory (CVE.org). NVD analysis pending.
| Vendor | Product | Versions |
|---|---|---|
| zephyrproject | zephyr | >= 2.3.0, < 4.4.2 |
References
Timeline
- Published
- Last Modified
- Status
- Awaiting Analysis
Frequently Asked Questions
What is CVE-2026-12631?
How severe is CVE-2026-12631?
How do I fix CVE-2026-12631?
How Strix Helps
- Uncovering a hidden BOLA in Appsmith's snapshot logicStrix autonomously discovered a BOLA/IDOR vulnerability in Appsmith's snapshot deletion path.
- Autonomous PentestingAI agents that find and validate exploitable vulnerabilities like this one across your applications.
- PR ReviewsPentest every pull request so vulnerable code is caught before it ships to production.
- AI Penetration TestingHow AI-driven penetration testing continuously covers your attack surface.
Related CVEs from 2026
- CVE-2026-12622The GridTime 3000 GNSS Time Server has an open redirect vuln…5.4
- CVE-2026-12624Vault’s ACL policy engine did not consistently enforce a wil…4.3
- CVE-2026-12628IBM Storage Protect Client 8.1.0.0 through 8.2.1.0 and IBM S…9.1
- CVE-2026-12629The ARM PL011 UART driver in drivers/serial/uart_pl011.c fai…4.6
- CVE-2026-1263The Webling plugin for WordPress is vulnerable to Stored Cro…6.4
- CVE-2026-12630Zephyr's 6LoWPAN IP Header Compression (IPHC) uncompression …4.3
- CVE-2026-12632Zephyr's Precision Time Protocol receive handler ptp_msg_pos…6.5
- CVE-2026-12633The IPv6 neighbor-discovery code in subsys/net/ip/ipv6_nbr.c…8.1
- CVE-2026-12634The NVS backend of the Zephyr settings subsystem (subsys/set…5.3
- CVE-2026-12635GitLab has remediated an issue in GitLab CE/EE affecting all…3.1
- CVE-2026-1264IBM Sterling B2B Integrator and IBM Sterling File Gateway 6.…6.5
- CVE-2026-12644Versions of the package ts-deepmerge before 8.0.0 are vulner…5.5
Are you affected by CVE-2026-12631?
Run a free Strix scan to check your systems for this vulnerability.
Scan your code nowSource: NVD / NIST
