KernelScan.io

HIGH Introduced in 5.7

platform/chrome RingHandler OOB

CVE-2026-93165

CVSS 7.7 / 10.0 NVD

CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H

KernelScan AI6.0MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: platform/chrome: sensorhub: Fix memory overread in ring handler `max_response` and `sensor_num` are read from different EC commands: - `max_response` is from cros_ec_get_proto_info(). ec_dev->max_response = info->max_response_packet_size - sizeof(struct ec_host_response); - `sensor_num` is from cros_ec_get_sensor_count(). sensor_num = cros_ec_get_sensor_count(ec); With a malfunctioning EC firmware, it is possible that the `msg->insize` (i.e., `fifo_info_length` in the context) could be clamped in cros_ec_cmd_xfer() because `msg->insize` is greater than `max_response`. int fifo_info_length = sizeof(struct ec_response_motion_sense_fifo_info) + sizeof(u16) * sensorhub->sensor_num; This means the number of read bytes could be less than expected. As a result, the subsequent memcpy() in cros_ec_sensorhub_ring_handler() overreads the `resp->fifo_info` buffer. Check the return value of cros_ec_cmd_xfer_status() and abort if the number of bytes read does not match the expected length.

02

Engine v0.6.0

Risk summary

A memory overread in the Chrome OS EC sensorhub ring handler affects devices with cros_ec sensorhub hardware. When the EC firmware reports inconsistent sensor count and maximum response size values, the kernel copies more bytes from a response buffer than were actually written, potentially leaking kernel memory or causing a panic. The bug is triggered by the EC itself during normal sensor event processing, but causing the EC to return the inconsistent data requires either a firmware bug or prior compromise of the EC firmware, which typically requires root access on the host or physical device access.

Affecteddrivers/platform/chrome/cros_ec_sensorhub_ring.c (cros_ec sensorhub)

Vulnerability analysis

The Chrome OS EC sensorhub driver copies sensor data from responses sent by the Embedded Controller. If the EC supplies inconsistent size values, the kernel may read past the end of the received data and copy excess bytes, exposing adjacent kernel memory or crashing the system. The fix checks that the amount of data received matches the expected length before copying, and stops processing if they differ. Only devices with Chrome OS EC sensorhub hardware are affected. Triggering the flaw requires the EC to return malformed size values, which generally means the EC firmware is either malfunctioning or has been compromised through root access on the host or physical device access.

03

BranchIntroducedFixed inPatch commit
5.105.75.10.27098604cc8fd25
5.155.75.15.22186bcfab7dff6
6.15.76.1.1887e901aaf9582
6.125.76.12.110ee0403520cdb
6.185.76.18.52847a5ba0ac75
6.65.76.6.1577780d93ae28f
7.25.77.2.66268f46d8387
mainline5.77.3d1ceb2b23247
cip/5.105.75.10.271-cip7898604cc8fd25
cip/6.15.76.1.189-cip617e901aaf9582
cip/6.1-rt5.76.1.189-cip61-rt327e901aaf9582
cip/6.125.76.12.111-cip32ee0403520cdb

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32
cip/5.10Fixed in 5.10.271-cip78
cip/5.10-rtAffected — no CIP fix yet (latest 5.10.268-cip77-rt34)