PULSE
FEED
ransomn0n reclama a Performance Ford Inc · US · Retail & E-Commerceransomn0n reclama a Company #109 · Not Foundransomn0n reclama a Company #108 · Not Foundransomn0n reclama a Company #107 · BG · Not Foundransomn0n reclama a Company #106 · Not Foundransomn0n reclama a Company #105 · Not Foundransomn0n reclama a Company #104 · Not Foundransomspacebears reclama a SGLA (Schwartz, Giannini, Lantsberger & Adamson) · US · Professional Servicesransomlamashtu reclama a Hecker Holzsystembau · DE · Manufacturingransomeverest reclama a Linebarger Goggan Blair & Sampson · US · Professional Servicesransomincransom reclama a bereskinparr.com smartbiggar.ca · CA · Professional Servicesransomsilentransomgroup reclama a K.r.a. ...s · Not Foundransomlamashtu reclama a Gräfliches Hofbrauhaus Freising · DE · Agriculture and Food Productionransomlamashtu reclama a VERGI Muenster · DE · Energy & Utilitiesransomn0n reclama a Performance Ford Inc · US · Retail & E-Commerceransomn0n reclama a Company #109 · Not Foundransomn0n reclama a Company #108 · Not Foundransomn0n reclama a Company #107 · BG · Not Foundransomn0n reclama a Company #106 · Not Foundransomn0n reclama a Company #105 · Not Foundransomn0n reclama a Company #104 · Not Foundransomspacebears reclama a SGLA (Schwartz, Giannini, Lantsberger & Adamson) · US · Professional Servicesransomlamashtu reclama a Hecker Holzsystembau · DE · Manufacturingransomeverest reclama a Linebarger Goggan Blair & Sampson · US · Professional Servicesransomincransom reclama a bereskinparr.com smartbiggar.ca · CA · Professional Servicesransomsilentransomgroup reclama a K.r.a. ...s · Not Foundransomlamashtu reclama a Gräfliches Hofbrauhaus Freising · DE · Agriculture and Food Productionransomlamashtu reclama a VERGI Muenster · DE · Energy & Utilities
← All CVEs
CVE WatchOct 22, 2026

CVE-2026-19676

The user-mode verifier for the peci_transfer() system call, z_vrfy_peci_transfer() in drivers/peci/peci_handlers.c, checked only the device

CVSS

7.8

High

EPSS

—

KEV

—

Exploit Today

—

0-100

Published: Oct 21, 2026 · Last modified: Oct 22, 2026 · CWE-822

EPSS · 30d

Not enough EPSS history yet.

Technical description

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 outer structure only; the buf pointers and len values inside the embedded struct peci_buf members tx_buffer and rx_buffer remained fully caller-controlled and were passed unchecked to the driver. Every in-tree PECI driver dereferences those pointers in supervisor mode: peci_npcx_transfer() in drivers/peci/peci_npcx.c and peci_it8xxx2_transfer() in drivers/peci/peci_ite_it8xxx2.c copy hardware bytes into rx_buffer.buf[i] and read command bytes out of tx_buffer.buf[i], and peci_xec_read()/peci_xec_write() in drivers/peci/peci_mchp_xec.c do the same with no bound on rx_buffer.len at all. A user-mode thread that has been granted the PECI device object — the normal way an application exposes a device under CONFIG_USERSPACE — could therefore point rx_buffer.buf at kernel data structures and have the driver write hardware-supplied bytes there, or point tx_buffer.buf at kernel memory and have its contents pushed onto the PECI/eSPI out-of-band bus. The impact is a full user-mode-to-kernel escape: an arbitrary kernel write primitive (integrity and, through it, code execution at supervisor privilege), an arbitrary kernel read disclosed to a PECI bus observer, and a trivially reachable supervisor-mode fault if an unmapped address is supplied. Exploitation requires CONFIG_USERSPACE=y, one of the PECI drivers enabled (CONFIG_PECI_NPCX, CONFIG_PECI_XEC or CONFIG_PECI_ITE_IT8XXX2), and local code execution in a user-mode thread holding the PECI device. The fix adds K_SYSCALL_MEMORY_READ() and K_SYSCALL_MEMORY_WRITE() checks over the two embedded buffers, with a size_add_overflow() guard on the frame-check-sequence byte accounted for in the RX length.

Official references
Related CVEs
CVECVSSEPSSKEVRExploitTitleMod.
CVE-2026-1103225.5 MED
1.4%
——0The PEAK-System PCAN type 0x4030 processing path fails to validate a selected/returned object pointer before dereferencing fixed fields during post-processing.2d
CVE-2026-195956.1 MED
1.3%
——0The user-mode syscall verifier z_vrfy_rtio_cqe_get_mempool_buffer() in subsys/rtio/rtio_syscalls.c validated its two output parameters, buff and buff_len, with K_SYSCALL_MEMORY_READ() rather than K_SYSCALL_MEMORY_WRITE(). Both are pure out-parameters: z_impl_rtio_cqe_get_mempool_buffer() stores the mempool buffer address and its length through them. The distinction is enforced by every architecture validator — arch_buffer_validate() on RISC-V PMP explicitly accepts the global __rom_region/__rodata_region for reads only, and the ARM MPU validators accept P_RO_U_RO and P_RW_U_RO regions for reads only — so a read-validated pointer is not necessarily writable by the calling thread. An unprivileged user-mode thread that has been granted access to an RTIO context (rtio_access_grant()) can invoke the rtio_cqe_get_mempool_buffer() syscall with buff/buff_len pointing at memory it may read but not write, and with a completion-queue entry whose flags field it fully controls (only RTIO_CQE_FLAG_MEMPOOL_BUFFER in flags[7:0] is required; flags[19:8] and flags[31:20] supply the block index and count). The kernel then performs a pointer-sized and a 4-byte store through those addresses while running in supervisor mode. Reaching the store requires CONFIG_USERSPACE together with CONFIG_RTIO_SYS_MEM_BLOCKS, the configuration behind RTIO_DEFINE_WITH_MEMPOOL; without the latter the implementation returns -ENOTSUP and writes nothing. Two outcomes follow. If the target lies in a memory-domain partition declared K_MEM_PARTITION_P_RW_U_RO (privileged read-write, user read-only), the kernel-mode store succeeds and deposits partly attacker-chosen values into memory the memory domain had marked read-only for that thread, bypassing the partition's write protection. If the target lies in globally readable but unwritable memory such as .text/.rodata in flash, the store faults in kernel mode; the fault is delivered to z_fatal_error() and the default k_sys_fatal_error_handler() halts or reboots the device, giving an unprivileged thread a reliable full denial of service. The read-permission check does bound the damage: the address must still be readable by the calling thread, so kernel-private memory cannot be targeted and no confidential data is disclosed. The fix replaces both checks with K_SYSCALL_MEMORY_WRITE(), so a thread lacking write permission is terminated by K_OOPS before the implementation runs; the cqe argument correctly remains read-validated.2d
CVE-2026-1084356.5 MED
42.1%
——13Untrusted pointer dereference in Microsoft Office Word allows an unauthorized attacker to disclose information over a network.2d
CVE-2026-969337.8 HIG
22.6%
——7Untrusted pointer dereference in Windows COM+ Event System Service allows an authorized attacker to elevate privileges locally.6d
CVE-2026-969317.8 HIG
22.6%
——7Untrusted pointer dereference in Windows NTFS allows an authorized attacker to elevate privileges locally.6d
CVE-2026-969249.8 CRI
58.5%
——18Untrusted pointer dereference in Windows OLE allows an unauthorized attacker to execute code over a network.6d