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

iio: gyro: bmg160: bail out when bandwidth/filter is not in table

bmg160_get_filter() walks bmg160_samp_freq_table[] looking for the entry
matching the bw_bits value read from the chip:

for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) {
if (bmg160_samp_freq_table[i].bw_bits == bw_bits)
break;
}
*val = bmg160_samp_freq_table[i].filter;

If no entry matches, i ends up equal to the array size and the next line
reads one slot past the end. bmg160_set_filter() has the same shape, driven
by 'val' instead of bw_bits.

smatch flags both:

drivers/iio/gyro/bmg160_core.c:204 bmg160_get_filter() error:
buffer overflow 'bmg160_samp_freq_table' 7 <= 7
drivers/iio/gyro/bmg160_core.c:222 bmg160_set_filter() error:
buffer overflow 'bmg160_samp_freq_table' 7 <= 7

Return -EINVAL when no entry matches.

The set_filter() path is reachable from userspace via the sysfs
in_anglvel_filter_low_pass_3db_frequency interface, so userspace can
trivially trigger the out-of-bounds read with a value that is not in
bmg160_samp_freq_table[].filter.
Published: 2026-07-25
Score: n/a
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw resides in the bmg160 gyro driver of the Linux kernel. When an unsupported bandwidth or filter value is requested, the driver walks a static frequency table and, upon not finding a matching entry, reads past the end of the array to obtain a filter value. This produces an out‑of‑bounds read (CWE‑125). The kernel returns a negative status after the read, so the error is not immediately obvious to a caller, but the read can disclose kernel memory contents.

Affected Systems

All Linux kernel distributions that ship the bmg160 driver without the upstream patch are vulnerable. The driver is part of the standard drivers/iio/gyro/bmg160_core.c source tree, so any kernel that has not applied the fix on the current subsystem is susceptible.

Risk and Exploitability

The EPSS score is below 1 % and the vulnerability is not listed in CISA’s KEV catalog. The only public control path that can trigger the out‑of‑bounds read is the sysfs attribute in_anglvel_filter_low_pass_3db_frequency. Any local user with write permission to that file can supply an unsupported frequency value, causing the kernel to read past the array. While no exploit is publicly available, a determined local attacker could leverage the memory disclosure or induce a kernel panic, potentially enabling privilege escalation or denial‑of‑service. The CVE belongs to CWE‑125, an out‑of‑bounds read, which makes it a classic memory corruption issue that could be leveraged in a local context. Given the low probability of automated exploitation but the high impact of an ongoing kernel exposure, applying a patch or otherwise blocking write access is recommended.

Generated by OpenCVE AI on August 3, 2026 at 18:28 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patched bmg160 driver, which validates table indices and prevents out‑of‑bounds reads.
  • If an immediate upgrade is not feasible, revoke write permissions on the sysfs file /sys/.../in_anglvel_filter_low_pass_3db_frequency for untrusted users, ensuring only privileged processes can trigger the driver.
  • If the BMG160 sensor is not required, disable the device via the device tree or module blacklist to eliminate the vulnerable code path.

Generated by OpenCVE AI on August 3, 2026 at 18:28 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4717-1 linux security update
Debian DLA Debian DLA DLA-4720-1 linux security update
Debian DLA Debian DLA DLA-4723-1 linux-6.1 security update
Debian DLA Debian DLA DLA-4724-1 linux-6.12 new package
History

Sat, 01 Aug 2026 01:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-788

Wed, 29 Jul 2026 12:15:00 +0000


Mon, 27 Jul 2026 05:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-788

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: iio: gyro: bmg160: bail out when bandwidth/filter is not in table bmg160_get_filter() walks bmg160_samp_freq_table[] looking for the entry matching the bw_bits value read from the chip: for (i = 0; i < ARRAY_SIZE(bmg160_samp_freq_table); ++i) { if (bmg160_samp_freq_table[i].bw_bits == bw_bits) break; } *val = bmg160_samp_freq_table[i].filter; If no entry matches, i ends up equal to the array size and the next line reads one slot past the end. bmg160_set_filter() has the same shape, driven by 'val' instead of bw_bits. smatch flags both: drivers/iio/gyro/bmg160_core.c:204 bmg160_get_filter() error: buffer overflow 'bmg160_samp_freq_table' 7 <= 7 drivers/iio/gyro/bmg160_core.c:222 bmg160_set_filter() error: buffer overflow 'bmg160_samp_freq_table' 7 <= 7 Return -EINVAL when no entry matches. The set_filter() path is reachable from userspace via the sysfs in_anglvel_filter_low_pass_3db_frequency interface, so userspace can trivially trigger the out-of-bounds read with a value that is not in bmg160_samp_freq_table[].filter.
Title iio: gyro: bmg160: bail out when bandwidth/filter is not in table
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-25T08:51:52.468Z

Reserved: 2026-07-19T15:36:31.792Z

Link: CVE-2026-64495

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-07-25T10:17:35.360

Modified: 2026-07-25T10:17:35.360

Link: CVE-2026-64495

cve-icon Redhat

Severity :

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

Links: CVE-2026-64495 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T18:30:06Z

Weaknesses