CVE-2026-16147
Awaiting Analysis Awaiting Analysis - Queue

Buffer Overflow in ITE IT82xx2 USB Controller Driver

Vulnerability report for CVE-2026-16147, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-14

Last updated on: 2026-09-14

Assigner: Zephyr Project

Description

The ITE IT82xx2 USB device-controller driver (drivers/usb/udc/udc_it82xx2.c) mishandles multi-packet OUT transfers on non-control endpoints. In work_handler_out() the active transfer buffer is obtained with udc_buf_peek() (which does not dequeue it); when a full max-packet-size packet arrives but the buffer still has tailroom (the transfer is not yet complete), the pre-fix code both re-arms the endpoint to keep filling that same buf via work_handler_xfer_continue() and simultaneously hands the same, still-being-filled buffer to the upper stack with udc_submit_ep_event(). Because udc_submit_ep_event() transfers ownership of the buffer to the USB device stack (usbd_event_carrier() appends &buf->node to uds_ctx->ep_events, after which the class handler processes and net_buf_unref()s it), the driver continues to DMA subsequent host-controlled OUT packets into a buffer the upper stack may already have freed and recycled β€” a use-after-free write. In addition, since the buffer was never dequeued, the completing packet runs udc_buf_get() on the same object and submits it a second time, appending &buf->node to the event slist twice (singly-linked-list corruption) and causing a double net_buf_unref(). The IT82xx2 is a USB peripheral controller, so the untrusted USB host controls OUT-transfer packetization and can force this path against any non-control OUT endpoint whose queued buffer exceeds one packet β€” an ordinary bulk/interrupt pattern. The driver and USB device stack run in kernel context above the external host, giving the host a device-side kernel heap-corruption primitive: a reliable denial of service and, because the written bytes are attacker-controlled, plausible corruption of adjacent net_buf pool memory. The vector is physical (USB attach). The fix defers submission until the buffer is completely filled and lets xfer_work_handler() drive continuation, so each OUT buffer is submitted to the upper stack exactly once.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-14
Last Modified
2026-09-14
Generated
2026-09-15
AI Q&A
2026-09-15
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Showing 2 associated CPEs
Vendor Product Version / Range
zephyrproject it82xx2 *
zephyrproject zephyr From 4.0.0 (inc) to 4.4.1 (inc)

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-416 The product reuses or references memory after it has been freed. At some point afterward, the memory may be allocated again and saved in another pointer, while the original pointer references a location somewhere within the new allocation. Any operations using the original pointer are no longer valid because the memory "belongs" to the code that operates on the new pointer.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability is a use-after-free write in the ITE IT82xx2 USB device-controller driver for Zephyr RTOS. It occurs when handling multi-packet OUT transfers on non-control endpoints. The driver submits an incomplete buffer to the USB stack while still filling it with data from the host, causing the host to write into a potentially freed memory region. This leads to kernel heap corruption, denial of service, or arbitrary code execution.

Detection Guidance

This vulnerability is specific to the Zephyr RTOS USB device controller driver for the ITE IT82xx2 chip. Detection requires checking the version of Zephyr RTOS and the presence of the vulnerable driver. Inspect the kernel logs for USB-related errors or crashes. No direct network detection commands are applicable as this is a local kernel-level issue.

Impact Analysis

An attacker with physical access via USB can exploit this to corrupt kernel heap memory, causing denial of service or potential arbitrary code execution. The vulnerability affects systems using the IT82xx2 USB peripheral controller in Zephyr RTOS versions 4.0.0 through 4.4.1.

Compliance Impact

This vulnerability could lead to unauthorized code execution or data corruption, potentially violating confidentiality and integrity requirements in GDPR and HIPAA. A successful exploit may result in data breaches or system compromise, requiring remediation to maintain compliance.

Mitigation Strategies

Apply the official patch from the Zephyr project to defer OUT event submission until the transfer buffer is completely filled. Update Zephyr RTOS to a version that includes the fix (versions 4.0.0 through 4.4.1 are affected). Disable non-control OUT endpoints if possible until patched.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-16147. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart