CVE-2026-10682: Out-of-bounds write in Zephyr `log_filter_set` syscall verifier reachable from userspace
The userspace verifier zvrfylogfilterset() for the logfilterset syscall in subsys/logging/logmgmt.c performed a signed comparison against the int16t srcid parameter: srcid < (int16t)logsrccntget(domainid). Any negative value for srcid (e.g. -1) trivially satisfied this check and was forwarded into zimpllogfilterset, where it propagated to filterset() and ultimately to getdynamicfilter(), which uses sourceid as an unsigned index into the linker-section array &TYPESECTIONSTART(logdynamic)[sourceid].filters.
After implicit conversion through uint32t, an int16t -1 becomes 0xFFFFFFFF, indexing logdynamic far out of bounds and causing the kernel to perform an OOB read and an OOB read-modify-write (LOGFILTERSLOTGET/SET) against memory adjacent to the logdynamic 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 logdynamic) 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 CONFIGUSERSPACE=y and CONFIGLOGRUNTIMEFILTERING=y. Present from Zephyr v3.3.0 through v4.4.1. The fix replaces the signed bound check with an unsigned comparison: (uint32t)srcid < logsrccntget(domainid), which correctly rejects negative inputs.
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Zephyrto a version that resolves this vulnerability.Fixed in v4.4.1 - Configuration
Update the signed comparison in z_vrfy_log_filter_set() to use an unsigned comparison: replace the check that used `src_id < (int16_t)log_src_cnt_get(domain_id)` with `(uint32_t)src_id < log_src_cnt_get(domain_id)` to reject negative src_id values.
Zephyr userspace verifier (z_vrfy_log_filter_set) in subsys/logging/log_mgmt.c src_id bound check = (uint32_t)src_id < log_src_cnt_get(domain_id) - Compensating control
When building Zephyr, ensure conditions for reachability are not met: avoid builds with CONFIG_USERSPACE=y and CONFIG_LOG_RUNTIME_FILTERING=y.
Event History
Frequently Asked Questions
What is the severity of CVE-2026-10682?
The severity of CVE-2026-10682 is classified as medium with a score of 6.6.
How do I fix CVE-2026-10682?
To fix CVE-2026-10682, update Zephyr to the latest stable version in which this vulnerability is addressed.
What type of vulnerability is CVE-2026-10682?
CVE-2026-10682 is an out-of-bounds write vulnerability in the Zephyr log_filter_set syscall verifier.
Who is affected by CVE-2026-10682?
Users of the Zephyr operating system that utilize the log_filter_set syscall are affected by CVE-2026-10682.
What are the potential impacts of CVE-2026-10682?
CVE-2026-10682 can lead to out-of-bounds writes, which may result in crashes or unintended behavior in the Zephyr system.