CyberSecBulletin

Zephyr Project vulnerabilities

We track 80 vulnerabilities in Zephyr Project products. 80 are rated high or critical, and none are known to be exploited. The most recent was published on November 12, 2026.

80vulnerabilities
4critical
76high
0exploited
7.9average CVSS score

Latest Zephyr Project vulnerabilities

  • 7.8 High severity

    zephyr: Untrusted Pointer Dereference

    CVE-2026-91007Zephyr Project

    The user-mode syscall verifiers for the charger driver API in drivers/charger/charger_handlers.c did not inspect the prop argument before copying union charger_propval across the user/kernel boundary. Two members of that union are function pointers — status_no

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-90833Zephyr Project

    The simulated EEPROM driver validated access ranges in eeprom_range_is_valid() (drivers/eeprom/eeprom_simulator.c) with a single test, (offset + len) <= config->size. Because offset is a signed off_t and len an unsigned size_t of the same rank, the addition is

  • 9.1 Critical severity

    zephyr: Out-of-bounds Write

    CVE-2026-82391Zephyr Project

    The HTTP/2 front-end of the Zephyr HTTP server aliased connection receive state as a scratch output. In subsys/net/lib/http/http_server_http2.c, handle_http2_static_fs_resource() passed &client->data_len as the file_size out-parameter of http_server_find_file(

  • 8.3 High severity

    zephyr: Out-of-bounds Read

    CVE-2026-77685Zephyr Project

    The RFCOMM multiplexer control-channel handler in subsys/bluetooth/host/classic/rfcomm.c computed the echo length for a BT_RFCOMM_TEST command as buf->len - 1 and passed it to rfcomm_send_test(), whose length parameter is a uint8_t. A malformed but FCS-valid U

  • 7.5 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-90591Zephyr Project

    The NXP ENET-QOS Ethernet driver's receive work handler eth_nxp_enet_qos_rx() in drivers/ethernet/eth_nxp_enet_qos hands each processed descriptor back to the DMA by writing desc->read.control = rx_desc_refresh_flags, which sets OWN_FLAG and BUF1_ADDR_VALID_FL

  • 7.8 High severity

    zephyr: Access of Uninitialized Pointer

    CVE-2026-90586Zephyr Project

    The Xtensa MMU userspace port never initialized the per-thread page-table pointer thread->arch.ptables during thread setup, while arch_mem_domain_thread_add() in arch/xtensa/core/ptables.c uses a non-NULL value of that field as its "this thread is migrating fr

  • 7.5 High severity

    zephyr: NULL Pointer Dereference

    CVE-2026-87045Zephyr Project

    The HTTP/2 server in subsys/net/lib/http/http_server_http2.c clears the connection's stream binding at the start of every frame. handle_http_frame_header() executed client->current_stream = NULL unconditionally, but a CONTINUATION frame does not open a new str

  • 7.8 High severity

    zephyr: Out-of-bounds Read

    CVE-2026-87041Zephyr Project

    The RTIO submission-queue verifier rtio_vrfy_sqe() in subsys/rtio/rtio_syscalls.c (subsys/rtio/rtio_handlers.c before v4.3.0) accumulated the results of K_SYSCALL_MEMORY() into its valid_sqe flag with &=. That macro returns nonzero on failure (it is built on K

  • 8.3 High severity

    zephyr: Buffer Copy without Checking Size of Input

    CVE-2026-87040Zephyr Project

    The nRF link-layer receive paths of the open-source Bluetooth LE Controller did not validate the on-air LENGTH field of a received PDU against the maximum receive length that was used to program the radio. isr_rx_pdu() in subsys/bluetooth/controller/ll_sw/nord

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-87039Zephyr Project

    The user-mode syscall verifier z_vrfy_i2s_configure() in drivers/i2s/i2s_handlers.c copies the caller's struct i2s_config in from user memory and then, when cfg->frame_clk_freq is 0 (the API's "unconfigure the stream" request), jumps straight to z_impl_i2s_con

  • 7.0 High severity

    zephyr: Time-of-check Time-of-use (TOCTOU) Race Condition

    CVE-2026-87038Zephyr Project

    The user-mode verification handler for the i3c_transfer() system call, z_vrfy_i3c_transfer() in drivers/i3c/i3c_handlers.c, validated the caller-supplied struct i3c_device_desc in place instead of snapshotting it. It confirmed only that the descriptor was read

  • 8.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-16511Zephyr Project

    Two RTIO syscall verifiers, in subsys/rtio/rtio_syscalls.c (subsys/rtio/rtio_handlers.c before v4.3.0), did not validate user-supplied pointers before the kernel wrote through them. z_vrfy_rtio_sqe_cancel() performed no validation at all. It passed the caller'

  • 8.8 High severity

    zephyr: Use After Free

    CVE-2026-85035Zephyr Project

    The can_add_rx_filter_msgq() system call installs a CAN RX filter whose callback (can_msgq_put() in drivers/can/can_common.c) is handed the caller's struct k_msgq * as user_data. The controller driver stores that raw pointer in its filter table and dereference

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-82961Zephyr Project

    The GPIO syscall handlers in drivers/gpio/gpio_handlers.c did not validate the pin argument supplied by a user-mode caller. z_vrfy_gpio_pin_configure(), z_vrfy_gpio_pin_get_config() and z_vrfy_gpio_pin_interrupt_configure() verified only the device object (K_S

  • 7.1 High severity

    zephyr: Reachable Assertion

    CVE-2026-81038Zephyr Project

    The Object Transfer Service server builds its Object Action Control Point (OACP) response indication in oacp_ind_send() (subsys/bluetooth/services/ots/ots_oacp.c). Before this fix the four-byte Checksum Value field was appended whenever the requested op code w

  • 8.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-79982Zephyr Project

    The Bluetooth HCI USB transport class of the new USB device stack, subsys/usb/device_next/class/bt_hci.c, copies every controller-to-host HCI packet into a USB transfer buffer before enqueuing it on an endpoint. bt_hci_tx_sync_in() allocated that buffer from b

  • 7.8 High severity

    zephyr: Use After Free

    CVE-2026-79979Zephyr Project

    The arm64 MMU backend invalidates a single virtual address from the TLB with invalidate_tlb_page() in arch/arm64/core/mmu.c, which issued TLBI VAE1{IS} with an operand of virt >> 12. That operand encodes the ASID in bits [63:48], so the invalidation only ever

  • 8.2 High severity

    zephyr: Missing Authentication for Critical Functionality

    CVE-2026-79977Zephyr Project

    The WireGuard VPN service in subsys/net/lib/wireguard/wg.c updated the peer endpoint from a message it could not authenticate. In handle_transport_data(), when the 32-bit receiver index of an incoming transport-data message matched no session, the code both sc

  • 7.5 High severity

    zephyr: Use of Default Credentials

    CVE-2026-19741Zephyr Project

    Zephyr's OpenThread integration defined CONFIG_OPENTHREAD_JOINER_PSKD with default "J01NME" in modules/openthread/Kconfig.thread (previously subsys/net/l2/openthread/Kconfig, then subsys/net/l2/openthread/Kconfig.thread). J01NME is the example Joining Device C

  • 7.1 High severity

    zephyr: NULL Pointer Dereference

    CVE-2026-79976Zephyr Project

    The MCTP-over-I2C+GPIO target binding in subsys/pmci/mctp/mctp_i2c_gpio_target.c emulates a small pseudo-register file, where the bus controller first writes a register number and then writes or reads payload bytes. The selected register (b->reg_addr) and the

  • 7.0 High severity

    zephyr: Concurrent Execution using Shared Resource with Improper Synchronization

    CVE-2026-78118Zephyr Project

    The kernel helper z_waitq_head() (kernel/include/wait_q.h) reads the head of a thread wait queue, but on SMP systems it was called from several places without holding the scheduler spinlock _sched_spinlock that serializes wait-queue mutation. The consequential

  • 7.8 High severity

    zephyr: Untrusted Pointer Dereference

    CVE-2026-19676Zephyr Project

    The user-mode verifier for the peci_transfer() system call, z_vrfy_peci_transfer() in drivers/peci/peci_handlers.c, checked only the device object permission and copied the caller-supplied struct peci_msg with k_usermode_from_copy(). That copy validates the ou

  • 8.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-76788Zephyr Project

    The OSDP Control Panel reply parser cp_decode_response() in subsys/mgmt/osdp/src/osdp_cp.c decodes replies from a Peripheral Device into a stack-allocated struct osdp_event. For the REPLY_KEYPPAD and REPLY_RAW reply types, the payload length is taken from the

  • 7.1 High severity

    zephyr: Out-of-bounds Read

    CVE-2026-19673Zephyr Project

    ethernet_recv() in subsys/net/l2/ethernet/ethernet.c validates only that the first net_buf of a received frame holds a plain 14-byte struct net_eth_hdr. When the ethertype is 0x8100 and VLAN is enabled on the interface, the same buffer is reinterpreted as the

  • 7.5 High severity

    zephyr: Use After Free

    CVE-2026-19935Zephyr Project

    The Bluetooth LE host queues received L2CAP connection-oriented channel (CoC) data for deferred processing through a struct k_work embedded in the channel object (le_chan->rx_work, handler l2cap_rx_process()) whenever the channel uses a dynamic PSM (0x0080-0x0

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-19736Zephyr Project

    The NXP MCUX TRNG entropy driver in drivers/entropy/entropy_mcux_trng.c passed the caller's byte count straight to the vendor SDK routine TRNG_GetRandomData(). On i.MX RT5xx and RT6xx parts the SDK compiles its TRNG_SW_HEALTH_TESTS variant, which always copies

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-19669Zephyr Project

    The user-mode syscall verifiers z_vrfy_fuel_gauge_get_props() and z_vrfy_fuel_gauge_set_props() in drivers/fuel_gauge/fuel_gauge_syscall_handlers.c declared two variable-length arrays, union fuel_gauge_prop_val k_vals[len] and fuel_gauge_prop_t k_props[len], s

  • 7.1 High severity

    zephyr: Out-of-bounds Read

    CVE-2026-19577Zephyr Project

    net_route_ipv6_packet() in subsys/net/ip/route_ipv6.c resolved the nexthop's link-layer address with net_nbr_get_lladdr(nbr->idx) without first checking whether the neighbor cache entry actually had a linked link-layer address. An unresolved neighbor carries i

  • 7.8 High severity

    zephyr: Access of Resource Using Incompatible Type

    CVE-2026-19575Zephyr Project

    The user-mode verification handler for the device_deinit() system call, z_vrfy_device_deinit() in kernel/device.c, validated its dev argument with K_SYSCALL_OBJ_INIT(dev, K_OBJ_ANY). k_object_validate() short-circuits its type comparison when the requested typ

  • 7.0 High severity

    zephyr: Improper Access Control

    CVE-2026-19574Zephyr Project

    The ARM64 MMU back-end allocated address space identifiers (ASIDs) for memory domains with a bare round-robin counter in arch_mem_domain_init() (arch/arm64/core/mmu.c). VM_ASID_BITS is 8, so only 255 ASIDs exist; once the counter wrapped, arch_mem_domain_init(

  • 8.8 High severity

    zephyr: Buffer Copy without Checking Size of Input

    CVE-2026-19570Zephyr Project

    The LE Audio Broadcast Sink in subsys/bluetooth/audio/bap_broadcast_sink.c copies subgroup metadata from a received Basic Audio Announcement (BASE) into the static Broadcast Audio Scan Service parameter structure mod_src_param without any bounds check. In base

  • 8.8 High severity

    zephyr: Integer Overflow or Wraparound

    CVE-2026-19569Zephyr Project

    dynamic_object_create() in kernel/userspace/userspace.c computed the backing allocation for a dynamically allocated kernel object as obj_size_get(otype) + size, and for thread stack elements as STACK_ELEMENT_DATA_SIZE(size) (a round-up plus fixed overhead), wi

  • 8.1 High severity

    zephyr: Integer Underflow (Wrap or Wraparound)

    CVE-2026-19186Zephyr Project

    ieee802154_decipher_data_frame() in subsys/net/l2/ieee802154/ieee802154_frame.c computed payload_len = net_pkt_get_len(pkt) - ll_hdr_len - authtag_len without first checking that the received frame is at least ll_hdr_len + authtag_len bytes long. All three var

  • 8.8 High severity

    zephyr: Stack-based Buffer Overflow

    CVE-2026-15894Zephyr Project

    The Bluetooth Mesh On-Demand Private Proxy solicitation handler in subsys/bluetooth/mesh/solicitation.c copies a received Solicitation PDU into a fixed 17-byte stack buffer without bounding the source length. In sol_pdu_decrypt(), out is allocated as NET_BUF_S

  • 7.8 High severity

    zephyr: Untrusted Pointer Dereference

    CVE-2026-19185Zephyr Project

    The system-call verifier for i3c_do_ccc() in drivers/i3c/i3c_handlers.c validated the outer struct i3c_ccc_payload, the broadcast ccc.data buffer and the targets.payloads[] array, but did not validate the per-target data buffers those array elements point at.

  • 8.4 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-19184Zephyr Project

    The NXP GAU ADC driver (drivers/adc/adc_mcux_gau_adc.c) validated the caller-supplied sequence->buffer_size, which is expressed in bytes, against the number of active channels, which is a sample count. It then stored that byte count directly in data->results_l

  • 7.1 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-18415Zephyr Project

    ieee802154_send() in subsys/net/l2/ieee802154/ieee802154.c copies the outgoing packet into a single fixed 125-byte transmit buffer (tx_frame_buf_pool, sized IEEE802154_MTU). In builds with CONFIG_NET_L2_IEEE802154_FRAGMENT enabled (the default whenever CONFIG_

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-18414Zephyr Project

    The ADC API requires each driver to reject a sampling sequence whose destination buffer is too small: the buffer_size field of struct adc_sequence in include/zephyr/drivers/adc.h documents that "the driver must ensure that samples are not written beyond the li

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-18413Zephyr Project

    The ADC API requires each driver to reject a sampling sequence whose destination buffer is too small: the buffer_size field of struct adc_sequence in include/zephyr/drivers/adc.h documents that "the driver must ensure that samples are not written beyond the li

  • 7.8 High severity

    zephyr: Out-of-bounds Write

    CVE-2026-16513Zephyr Project

    The userspace verifier z_vrfy_rtio_sqe_copy_in_get_handles() in subsys/rtio/rtio_syscalls.c (subsys/rtio/rtio_handlers.c before v4.3.0) validated the RTIO object handle and the sqes input array, but not the handle out-parameter. On the first loop iteration it