Cloudanix VulnDB

CVE-2026-53195

High · 7.8

CVSS

7.8

EPSS

0.1%

Published

Jun 25, 2026

CISA due date

—

Cloudanix analysis

Next patch cycle SSVC: Track

A flaw in some Linux systems can let a specially crafted device firmware file crash the system or possibly let an attacker take deeper control if they can make the system load it.

Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Privilege Gain
Component
OS kernel
Class
Buffer Overflow
Remediation
Patch
Effort
Low
Patch risk
Low

What it actually does

This vulnerability is a heap-based buffer overflow in the Linux kernel USB serial io_ti driver. When the driver builds an I2C firmware header, it allocates a fixed-size heap buffer but copies a firmware-controlled length value into that buffer without ensuring the length fits in the remaining space. A malformed firmware image can therefore cause kernel heap memory corruption. Depending on kernel configuration, memory layout, and exploit reliability, this could lead to a kernel crash, denial of service, or potentially kernel-mode code execution.

Why it matters to the business

Systems that load the affected Linux USB serial driver and process a malicious or tampered firmware image may become unstable or crash, affecting availability of workloads or devices that depend on those hosts. If exploitation were made reliable, an attacker with a way to influence the firmware blob loaded by the kernel could potentially gain very high privileges. Current public exploitation risk appears low: EPSS is low, there is no known KEV listing, no ransomware association, and no mature public exploit is indicated.

How an attack unfolds

An attacker first needs a path to make the affected io_ti USB serial driver process a malicious firmware image. That could involve local control over firmware files, abuse of a firmware-loading path, a compromised update or image build pipeline, or another privileged foothold that allows tampering with files normally loaded by the kernel. The malicious firmware image sets the header Length field to a value larger than the destination buffer space available after the firmware record header. When the driver invokes build_i2c_fw_hdr(), the kernel allocates the fixed-size heap buffer and then copies the attacker-controlled amount of data into it. Because the vulnerable code does not validate that Length fits, the copy can write past the end of the allocated heap object. The immediate result may be a kernel oops, panic, or host instability; with additional exploit engineering, the memory corruption could potentially be shaped into privilege escalation or kernel code execution.

How to fix it

Update the Linux kernel to a version that includes the upstream fix for the io_ti build_i2c_fw_hdr() bounds check. If vendor fixed package versions are not yet available, track the relevant distribution kernel advisories and apply the first available stable kernel update containing the patch. As interim risk reduction, prevent untrusted users from modifying firmware directories such as /lib/firmware, restrict physical and logical access to USB devices where practical, disable or blacklist the io_ti driver if it is not required, and ensure secure boot, kernel module signing, and firmware integrity controls are enabled where supported.

How to confirm the fix worked

Confirm the running kernel includes the vendor or upstream patch that rejects firmware images whose Length field exceeds the available destination buffer space. Validate by checking the installed kernel package changelog or vendor advisory for the CVE or for the io_ti build_i2c_fw_hdr() fix, then reboot into the patched kernel. On systems where the driver is not needed, confirm it is not loaded with lsmod and cannot be autoloaded if blacklisted. Where source or configuration validation is possible, verify the patched code performs an explicit length check before copying the firmware payload.

Typical attack path

  1. Identify a Linux system running a vulnerable kernel with the USB serial io_ti driver available or loadable.
  2. Obtain a way to influence the firmware image consumed by the driver, such as local firmware-file modification, compromised system image, or abuse of a firmware-loading mechanism.
  3. Craft a malformed firmware image whose Length field exceeds the destination space used by build_i2c_fw_hdr().
  4. Trigger the driver to load and parse the malicious firmware image, commonly through device initialization or driver binding.
  5. Cause kernel heap memory corruption during the unchecked copy operation.
  6. Use the corruption to crash the system, or attempt further exploitation to gain kernel-level control.

How to detect it

Look for evidence that the affected driver loaded firmware unexpectedly, that firmware files were modified, or that the kernel crashed during USB serial device initialization. Useful log sources include kernel logs, systemd journal, dmesg output, auditd file-integrity events, endpoint telemetry, USB device insertion logs, and package-management logs. Search for kernel oops or panic events near messages referencing USB serial, io_ti, Edgeport, firmware loading, or newly attached USB devices. Review file modification times, package ownership, and hashes for firmware files in /lib/firmware and related firmware paths. Investigate unexpected loading of the io_ti kernel module, unexplained changes to firmware blobs, or crashes shortly after USB insertion. No public exploitation artifacts, threat actor tooling, or reliable compromise-specific indicators are currently known from the provided intelligence.

What your security team should do

  • Prioritize kernel updates on systems that permit USB device attachment, use USB serial adapters, or include the io_ti driver in enabled kernel modules.
  • Inventory systems with the io_ti module available or loaded and determine whether the driver is operationally required.
  • If the driver is unnecessary, blacklist or remove it as a compensating control until all systems are patched.
  • Restrict write access to firmware locations and monitor firmware-file integrity, especially under /lib/firmware and distribution-specific firmware paths.
  • Review endpoint and kernel logs for unexplained crashes, kernel oops messages, or USB serial driver activity around the time of suspicious device insertion or firmware changes.
  • Because the CVE is not listed in KEV, is not associated with ransomware, and has low EPSS, treat it as important but generally lower urgency than actively exploited internet-facing vulnerabilities unless the environment has high exposure to untrusted USB devices or untrusted firmware supply chains.

The record

In the Linux kernel, the following vulnerability has been resolved: USB: serial: io_ti: fix heap overflow in build_i2c_fw_hdr() build_i2c_fw_hdr() allocates a fixed-size buffer of (16*1024 - 512) + sizeof(struct ti_i2c_firmware_rec) bytes, then copies le16_to_cpu(img_header->Length) bytes into it without validating that Length fits within the available space after the firmware record header. img_header->Length is a __le16 from the firmware file and can be up to 65535. check_fw_sanity() validates the total firmware size but not img_header->Length specifically. Fix by rejecting images where img_header->Length exceeds the available destination space.

Affected packages

Ecosystem Package Introduced Fixed

Related vulnerabilities