Skip to main content
CVE-2026-10682VulnerabilityPublished Updated

CVE-2026-10682: zephyrproject zephyr · bounds

Affects zephyrproject zephyrSource CVE Database V5

0

Not known to be exploited · CVSS 6.6 Medium : upgrade to 4.4.2 or 4.3.1 when convenient.

Data as of 25 Oct 2026, 19:02 UTC

CVSS 3.1 base score
6.6Medium
How severe the flaw is on the 0–10 CVSS scale.
EPSS
0.1% chance of exploitation in 30 days – higher than 6% of CVEsExploit Prediction Scoring System: the likelihood attackers will use this flaw soon.
Patch
Available – fixed in 4.4.2, 4.3.1
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H

Exploitation evidence

  1. Disclosed: evidence found.

    CVE published 27 Jul 2026

  2. Detectable: no evidence on record.

    No public nuclei template indexed

  3. Weaponised: no evidence on record.

    No public exploit code indexed in Metasploit or Exploit-DB

  4. Exploited in the wild: no evidence on record.

    Not in CISA KEV and no source reports exploitation

  5. Observed by OffSeq Mirage: no evidence on record.

    No attack traffic recorded by OffSeq Mirage sensors

A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 2026-10-25.

What to do

Upgrade zephyrproject zephyr to 4.4.2 or 4.3.1.

Affected software

ProductAffectedFixed in
zephyrprojectzephyrAffected
  • >=3.0.0 <4.3.1
  • >=4.4.0 <4.4.2
Fixed in
  • 4.4.2
  • 4.3.1
GitHubzephyrpkg:github/zephyrOther threatsAffected
  • >=3.0.0 <4.3.1
  • >=4.4.0 <4.4.2
Fixed in
  • 4.3.1
  • 4.4.2

Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.

AI-suggested

The fix described replaces the signed comparison with an unsigned comparison to reject negative inputs. If you cannot patch yet, avoid enabling CONFIG_USERSPACE and CONFIG_LOG_RUNTIME_FILTERING together if possible, or restrict access to the affected syscall. Monitor the Zephyr project advisories for an official fix.

Description

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.

References

Community reviews

Loading reviews…