CVE-2026-12364
Received Received - Intake

Kernel Memory Disclosure in Zephyr RTOS Logging Subsystem

Vulnerability report for CVE-2026-12364, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-08-14

Last updated on: 2026-08-14

Assigner: Zephyr Project

Description

The user-space system-call verifier z_vrfy_z_log_msg_static_create() in subsys/logging/log_msg.c was a pure pass-through: it forwarded the caller-supplied source, desc, package, and data arguments directly to the kernel-mode implementation z_impl_z_log_msg_static_create() without performing any of the mandatory K_SYSCALL_* checks. Because z_log_msg_static_create() is declared __syscall, under CONFIG_USERSPACE any unprivileged user-mode thread can invoke it directly with fully attacker-controlled arguments. The kernel-mode handler dereferences each of these untrusted values: frontend_runtime_filtering() reads through the source pointer as a struct log_source_dynamic_data, cbprintf_package_copy() reads desc.package_len bytes from the package pointer, and z_log_msg_finalize() performs a memcpy() of desc.data_len bytes from the data pointer. With no verification, a user thread can supply arbitrary kernel addresses and arbitrary lengths, and the kernel will read from them. The impact is a kernel-mode denial of service (the kernel faults dereferencing an attacker-chosen pointer) and, where a log backend output is observable to the attacker, disclosure of arbitrary kernel memory copied into the emitted log message β€” a confidentiality breach across the user/kernel boundary that the userspace sandbox is meant to enforce. The reads do not corrupt kernel memory, so there is no out-of-bounds write primitive. The fix adds the required validation to the verifier: it bounds desc.package_len against Z_LOG_MSG_MAX_PACKAGE, rejects non-NULL/length mismatches, and applies K_SYSCALL_MEMORY_READ() to package, data, and (when runtime filtering with a frontend is enabled) source, so any out-of-bounds or kernel pointer now raises K_OOPS instead of being honored.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-08-14
Last Modified
2026-08-14
Generated
2026-08-14
AI Q&A
2026-08-14
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 3 associated CPEs
Vendor Product Version / Range
zephyrproject zephyr From 2.6.0 (inc) to 4.4.0 (inc)
zephyrproject zephyr 4.4.2
zephyrproject zephyr to 3.0.0 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-822 The product obtains a value from an untrusted source, converts this value to a pointer, and dereferences the resulting pointer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in Zephyr RTOS involves a user-space system-call verifier that failed to validate arguments before passing them to a kernel-mode logging function. Since the function is declared __syscall, unprivileged threads could invoke it directly with attacker-controlled pointers and lengths. The kernel then dereferenced these untrusted values without checks, leading to potential kernel memory disclosure via log output or denial of service through kernel faults.

Detection Guidance

Detecting this vulnerability requires checking if your Zephyr RTOS system is running a vulnerable version with CONFIG_USERSPACE and CONFIG_LOG enabled. Inspect the log_msg.c file for the z_vrfy_z_log_msg_static_create() function and verify if it performs proper validation checks. Check the version of Zephyr RTOS installed and compare it against versions v2.6.0 to v4.4.0.

Impact Analysis

An attacker could exploit this to crash the kernel (denial of service) or read sensitive kernel memory by crafting log messages with malicious pointers and lengths. This bypasses the userspace sandbox meant to prevent such access. The impact requires CONFIG_USERSPACE and CONFIG_LOG to be enabled.

Compliance Impact

This vulnerability could lead to unauthorized disclosure of sensitive kernel memory, potentially violating confidentiality requirements in GDPR and HIPAA. The kernel memory leak may expose personal or protected health information if such data resides in kernel memory.

Mitigation Strategies

Immediately update Zephyr RTOS to version 4.4.2 or later where the vulnerability is patched. If updating is not possible, apply the backported fixes to earlier branches. Disable CONFIG_USERSPACE or CONFIG_LOG if they are not required for your system. Ensure the z_vrfy_z_log_msg_static_create() function includes bounds checking and memory access validation as described in the fix commit.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-12364. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart