Description
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.
Published: 2026-07-19
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The ITG3200 gyro driver for the Linux kernel incorrectly writes I2C read data into the stack location of the function’s own pointer variable instead of into the caller’s buffer, a flaw identified as CWE-908 that results in an information disclosure classified as CWE-200. The 8 bytes of data written by i2c_transfer() are lost on return, yet the uninitialized stack contents are subsequently copied to user space through the triggered buffer exposed by /dev/iio:deviceX. As a result, an information leak occurs—uninitialized kernel stack data reaches userspace—while the sensor also reports no valid gyroscope or temperature measurements due to this improper memory handling.

Affected Systems

All Linux kernel installations that include the iio gyro driver for the ITG3200 sensor are affected. Because no specific version range is listed, any kernel version before the patch that implements the change in the driver should be considered vulnerable. The issue appears in the gyroscope subsystem of the kernel device driver infrastructure, not tied to any particular vendor beyond the generic Linux kernel.

Risk and Exploitability

The supplied EPSS score is below 1 %, indicating a very low likelihood of current exploitation. The vulnerability is not listed in CISA’s KEV catalog. The attack vector is inferred to be local or physical, as the affected driver is accessed through the /dev/iio device interface and requires the sensor to be triggered. An attacker with local access to the device files can trigger the buffer and capture the leaked stack data, but remote exploitation would be difficult without additional privilege escalation.

Generated by OpenCVE AI on August 4, 2026 at 06:39 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patch for the ITG3200 driver (commits 15a0b3f33ffb6c78b3de6f69b026ceb09b973dd1 and related updates).
  • If a kernel upgrade is not immediately possible, remove or disable the itg3200 driver or sensor by unbinding the device from the subsystem, thereby eliminating the vulnerable triggering path.
  • Apply mandatory access controls such as SELinux or AppArmor to restrict access to /dev/iio:deviceX for untrusted processes, preventing them from triggering the faulty buffer read.

Generated by OpenCVE AI on August 4, 2026 at 06:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Ubuntu USN Ubuntu USN USN-8593-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8603-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8618-1 Linux kernel vulnerabilities
History

Sat, 25 Jul 2026 01:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200

Wed, 22 Jul 2026 00:15:00 +0000


Tue, 21 Jul 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-200

Sun, 19 Jul 2026 15:30:00 +0000

Type Values Removed Values Added
Description 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.
Title iio: gyro: itg3200: fix i2c read into the wrong stack location
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-07-19T14:55:32.681Z

Reserved: 2026-07-19T07:54:57.022Z

Link: CVE-2026-63934

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

Severity :

Publid Date: 2026-07-19T00:00:00Z

Links: CVE-2026-63934 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-04T06:45:03Z

Weaknesses
  • CWE-908

    Use of Uninitialized Resource