CVE-2026-64504

Linux kernel (GCP) vulnerabilities

Beschreibung

Im Linux-Kernel wurde die folgende Schwachstelle behoben:

iio: accel: bmc150: Begrenze die vom Gerät gemeldete FIFO-Rahmenanzahl

Die Funktion __bmc150_accel_fifo_flush() kopiert die Anzahl der Proben, die das Gerät in seinem Hardware-FIFO meldet, in einen Stapel-Puffer:

u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3];

Dieser Puffer ist für maximal BMC150_ACCEL_FIFO_LENGTH (32) Proben ausgelegt. Die Rahmenanzahl wird aus dem FIFO_STATUS-Register gelesen und nur auf seine 7 gültigen Bits maskiert:

count = val & 0x7F;

Daher kann sie zwischen 0 und 127 liegen. Der einzige andere Anwendungsbereich, der darauf angewendet wird, ist das optionale vom Aufrufer bereitgestellte Probenbudget:

if (samples && count > samples)
    count = samples;

Dies begrenzt die Rahmenanzahl nicht auf dem Pfad "alles leeren" (samples == 0) und lässt sie weit über 32, wenn samples größer ist. Anschließend werden count Proben in den Puffer buffer[] kopiert:

bmc150_accel_fifo_transfer(data, (u8 *)buffer, count);

Die Funktion bmc150_accel_fifo_transfer() liest count * 6 Bytes über regmap ein. Daher kann ein fehlerhaftes, böswilliges oder gefälschtes Beschleunigungsmessergerät (oder ein Angreifer, der den I2C/SPI-Bus manipuliert) das Schreiben von bis zu 762 Bytes in den 192-Byte-Puffer ermöglichen: Ein Stack-Auslaufschreibfehler von bis zu 570 Bytes, der die Stapel-Kanarienvogel, gespeicherte Register und die Rückkehradresse überschreibt.

Begrenze count auf BMC150_ACCEL_FIFO_LENGTH, die Anzahl der Proben, für die der Puffer buffer[] ausgelegt ist, bevor die Übertragung erfolgt. Dies spiegelt die bereits in bmc150_accel_set_watermark() durchgeführte Wasserstandsbegrenzung wider. Ein korrekt formatierter Flush meldet maximal BMC150_ACCEL_FIFO_LENGTH Rahmen, daher sind legitime Geräte nicht betroffen.

Metriken

Severity
high
kein öffentlicher PoC bekannt
7.8
Quelle: nvd-v3
6.0 %
Niedrig — CVE gehört zu den unteren 10 % der heute bewerteten CVEs.
0.2 %
Niedrig — Modell schätzt < 1 % Ausnutzungs-Wahrscheinlichkeit.
Veröffentlicht
2026-09-07 09:05 UTC

Re-Analyse & Statuswechsel

Chronologie der NVD-Audit-Events für diese CVE — Reanalyses, CVSS-Updates, CPE-Diffs.

  1. CVE Modified2026-08-17 05:17 UTC· 416baaa9-dc9f-4396-8d5f-8c081fb06d67
    • Affected: Linux, LinuxLinux, Linux
  2. New CVE Received2026-07-25 10:17 UTC· 416baaa9-dc9f-4396-8d5f-8c081fb06d67
    • Affected: Linux, Linux
    • Description: In the Linux kernel, the following vulnerability has been resolved: iio: accel: bmc150: clamp the device-reported FIFO frame count __bmc150_accel_fifo_flush() copies the number of samples the device reports in its hardware FIFO into an on-stack buffer u16 buffer[BMC150_ACCEL_FIFO_LENGTH * 3]; which is sized for at most BMC150_ACCEL_FIFO_LENGTH (32) samples. The frame count is read from the FIFO_STATUS register and only masked to its 7 valid bits: count = val & 0x7F; so it can be 0..127. The only other limit applied to it is the optional caller-supplied sample budget: if (samples && count > samples) count = samples; which does not constrain count on the flush-all path (samples == 0), and leaves it well above 32 whenever samples is larger. count samples are then transferred into buffer[]: bmc150_accel_fifo_transfer(data, (u8 *)buffer, count); bmc150_accel_fifo_transfer() reads count * 6 bytes through regmap, so a malfunctioning, malicious or counterfeit accelerometer (or an attacker tampering with the I2C/SPI bus) that reports up to 127 frames writes up to 762 bytes into the 192-byte buffer: a stack out-of-bounds write of up to 570 bytes that clobbers the stack canary, saved registers and the return address. Clamp count to BMC150_ACCEL_FIFO_LENGTH, the number of samples buffer[] is sized for, before the transfer, mirroring the watermark clamp already done in bmc150_accel_set_watermark(). A well-formed flush reports at most BMC150_ACCEL_FIFO_LENGTH frames, so legitimate devices are unaffected.
    • Reference: https://git.kernel.org/stable/c/2fe0531dd73eff1de0f2584cb77716d645e548d5
    • Reference: https://git.kernel.org/stable/c/35a3cd8fd65e15029eb90f1e510045b1bb071175

Betroffene Betriebssysteme

  • linux

    redhat / enterprise_linux10.0

  • linux

    redhat / enterprise_linux7.0

  • linux

    redhat / enterprise_linux8.0

  • linux

    redhat / enterprise_linux9.0

  • linux

    ubuntu / linux-aws-6.8jammy

  • linux

    ubuntu / linux-azureresolute

  • linux

    ubuntu / linux-azuretrusty

  • linux

    ubuntu / linux-azurexenial

  • linux

    ubuntu / linux-azure-4.15bionic

  • linux

    ubuntu / linux-azure-5.4bionic

  • linux

    ubuntu / linux-azure-fdenoble

  • linux

    ubuntu / linux-azure-fderesolute

  • linux

    ubuntu / linux-azure-fde-6.8jammy

  • linux

    ubuntu / linux-azure-fipsbionic

  • linux

    ubuntu / linux-azure-fipsfocal

  • linux

    ubuntu / linux-azure-fipsnoble

  • linux

    ubuntu / linux-fipsjammy

  • linux

    ubuntu / linux-gcp-7.0noble

  • linux

    ubuntu / linux-gkejammy

  • linux

    ubuntu / linux-nvidia-tegranoble

  • linux

    ubuntu / linux-raspinoble

  • linux

    ubuntu / linux-raspi-realtimenoble

  • linux

    linux / linux_kernel2.6.12

  • linux

    linux / linux_kernel2.6.15

Quellen & Referenzen

Verknüpfte CVEs

1392 weitere CVEs anzeigen
IDCVE-2026-64504
Linux kernel (GCP) vulnerabilities — CVE-2026-64504 | NEOSEC Intel