CVE-2026-64495 in Linux
Zusammenfassung
von VulDB • 25.07.2026
Im Linux-Kernel wurde folgende Schwachstelle behoben:
iio: gyro: bmg160: Abbruch, wenn Bandbreite/Filter nicht in der Tabelle enthalten ist
bmg160_get_filter() durchsucht die Tabelle bmg160_samp_freq_table[] nach dem Eintrag,
der mit dem aus dem Chip gelesenen bw_bits-Wert übereinstimmt:
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;
Wenn kein Eintrag übereinstimmt, ist i am Ende gleich der Array-Größe und die nächste Zeile liest ein Element über das Ende hinaus. bmg160_set_filter() weist dieselbe Struktur auf, wird jedoch durch 'val' anstelle von bw_bits gesteuert.
smatch meldet beide Fälle:
drivers/iio/gyro/bmg160_core.c:204 bmg160_get_filter() Fehler: Pufferüberlauf 'bmg160_samp_freq_table' 7 <= 7 drivers/iio/gyro/bmg160_core.c:222 bmg160_set_filter() Fehler: Pufferüberlauf 'bmg160_samp_freq_table' 7 <= 7
Geben Sie -EINVAL zurück, wenn kein Eintrag übereinstimmt.
Der set_filter()-Pfad ist über den sysfs-Interface in_anglvel_filter_low_pass_3db_frequency aus dem Userspace erreichbar, sodass der Userspace den Out-of-Bounds-Lesezugriff mit einem Wert, der nicht in bmg160_samp_freq_table[].filter enthalten ist, trivial auslösen kann.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.