PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-10682 zephyrproject CVE debrief

The userspace verifier z_vrfy_log_filter_set() for the log_filter_set syscall in subsys/logging/log_mgmt.c performed a signed comparison against the int16_t src_id parameter: src_id < (int16_t)log_src_cnt_get(domain_id). Any negative value for src_id (e.g. -1) trivially satisfied this check and was forwarded into z_impl_log_filter_set, where it propagated to filter_set() and ultimately to get_dynamic_filter(), which uses source_id as an unsigned index into the linker-section array &TYPE_SECTION_START(log_dynamic)[source_id].filters. After implicit conversion through uint32_t, an int16_t -1 becomes 0xFFFFFFFF, indexing log_dynamic far out of bounds and causing the kernel to perform an OOB read and an OOB read-modify-write (LOG_FILTER_SLOT_GET/SET) against memory adjacent to the log_dynamic section. The written value is a constrained 3-bit log level slot within the targeted 32-bit word, but the target address is attacker-chosen (a small negative offset from log_dynamic) and the write occurs in supervisor mode following a syscall from an unprivileged user thread, providing a kernel memory-corruption / privilege-escalation primitive. The defect is reachable on any build with CONFIG_USERSPACE=y and CONFIG_LOG_RUNTIME_FILTERING=y. Present from Zephyr v3.3.0 through v4.4.1. The fix replaces the signed bound check with an unsigned comparison: (uint32_t)src_id < log_src_cnt_get(domain_id), which correctly rejects negative inputs.

Vendor
zephyrproject
Product
zephyr
CVSS
MEDIUM 6.6
CISA KEV
Not listed in stored evidence
Original CVE published
2026-07-27
Original CVE updated
2026-08-12
Advisory published
2026-07-27
Advisory updated
2026-08-12

Who should care

Users of Zephyr versions 3.3.0 through 4.4.1, especially those using CONFIG_USERSPACE=y and CONFIG_LOG_RUNTIME_FILTERING=y, should be aware of this vulnerability and take steps to mitigate it.

Technical summary

The userspace verifier z_vrfy_log_filter_set() for the log_filter_set syscall in subsys/logging/log_mgmt.c performed a signed comparison against the int16_t src_id parameter. This allows negative values to be forwarded into z_impl_log_filter_set, leading to an out-of-bounds read and write in the kernel. The issue is present in Zephyr versions from 3.3.0 to 4.4.1 and can be mitigated by updating to version 4.5.0 or later, or applying the provided patches.

Defensive priority

This vulnerability allows for kernel memory corruption and potential privilege escalation. Affected systems should be updated to Zephyr version 4.5.0 or later, or apply patches as described in the vendor advisories.

Recommended defensive actions

  • Update to Zephyr version 4.5.0 or later
  • Apply patches as described in the vendor advisories
  • Restrict access to the log_filter_set syscall
  • Monitor system logs for suspicious activity
  • Review compensating controls for exposed systems while remediation is scheduled and verified
  • Check relevant monitoring, detection, and logs for exposed assets that need extra review
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented

Evidence notes

The vulnerability is caused by a signed comparison in the userspace verifier z_vrfy_log_filter_set() for the log_filter_set syscall. This allows negative values to be forwarded into z_impl_log_filter_set, leading to an out-of-bounds read and write in the kernel. The issue is present in Zephyr versions from 3.3.0 to 4.4.1 and can be mitigated by updating to version 4.5.0 or later, or applying the provided patches.

Official resources

AI-assisted PatchSiren debrief based on the supplied source corpus. The CVE record was published on 2026-07-27T19:17:14.070Z and has not been modified since then. The NVD entry is currently Analyzed.