CVE-2026-63934

iio: gyro: itg3200: fix i2c read into the wrong stack location

published July 19, 2026

CVSS
—
EPSS
0%
Percentile
10.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

iio: gyro: itg3200: fix i2c read into the wrong stack location

itg3200_read_all_channels() takes `__be16 *buf' as a parameter and

fills the i2c_msg destination as `(char *)&buf'. Since `buf' is the

parameter (a pointer), `&buf' is the address of the local pointer

slot on the stack of itg3200_read_all_channels(), not the address

of the caller's scan buffer. The (char *) cast hides the type

mismatch.

i2c_transfer() therefore writes ITG3200_SCAN_ELEMENTS * sizeof(s16)

= 8 bytes into the parameter's stack slot, which is discarded when

the function returns. The caller's scan buffer in

itg3200_trigger_handler() is never written to, so

iio_push_to_buffers_with_timestamp() pushes uninitialised stack

contents to userspace via /dev/iio:deviceX every scan -- both a

functional bug (no actual gyroscope or temperature data is

delivered through the triggered buffer) and an information leak.

The non-buffered read_raw() path is unaffected: it goes through

itg3200_read_reg_s16() which uses `&out' on a local s16 value,

where that is correct.

Drop the spurious `&' so the i2c read writes into the caller's

buffer.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00211 · 10.7th percentile
Published
2026-07-19T14:55Z
EPSS history
Timeline
  • 19 JUL 14:55Z
    iio: gyro: itg3200: fix i2c read into the wrong stack location
    cvelistv5