CVE-2026-64191 in Linuxinformazioni

Riassunto

di VulDB • 20/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

i2c: stub: Rifiuta le trasferimenti di blocco I2C con lunghezza non valida

Il caso `I2C_SMBUS_I2C_BLOCK_DATA` in `stub_xfer()` utilizza `data->block[0]` come lunghezza del trasferimento. Il controllo esistente limita semplicemente tale valore per evitare il superamento dell'array di registri `chip->words[256]`, ma non lo convalida rispetto a `I2C_SMBUS_BLOCK_MAX` (32), che rappresenta il limite del buffer union `i2c_smbus_data.block` (34 byte in totale). Il driver è uno strumento di sviluppo/test (`CONFIG_I2C_STUB=m`, non compilato per impostazione predefinita) e deve essere caricato con un parametro `chip_addr=`.

Un utente locale con accesso a `/dev/i2c-*` può emettere una chiamata ioctl I2C_SMBUS con `I2C_SMBUS_I2C_BLOCK_DATA` e `data->block[0] > 32`, causando in `stub_xfer()` la lettura o scrittura oltre la fine del buffer union `i2c_smbus_data.block`:

BUG: KASAN: stack-out-of-bounds in stub_xfer (drivers/i2c/i2c-stub.c:223) Lettura di dimensione 1 all'indirizzo ffff88800abcfd92 da parte del task exploit/81 Traccia della chiamata: stub_xfer (drivers/i2c/i2c-stub.c:223) __i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:593) i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:536) i2cdev_ioctl_smbus (drivers/i2c/i2c-dev.c:391) i2cdev_ioctl (drivers/i2c/i2c-dev.c:478) __x64_sys_ioctl (fs/ioctl.c:583) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)

Il bug esiste perché i2c-stub implementa `.smbus_xfer` direttamente, aggirando la convalida di `I2C_SMBUS_BLOCK_MAX` in `i2c_smbus_xfer_emulated()`. Il caso `I2C_SMBUS_BLOCK_DATA` nella stessa funzione esegue correttamente la convalida rispetto a `I2C_SMBUS_BLOCK_MAX`, ma il caso `I2C_SMBUS_I2C_BLOCK_DATA` non lo fa.

La correzione consiste nel rifiutare i trasferimenti in cui `data->block[0] == 0` o `data->block[0] > I2C_SMBUS_BLOCK_MAX` restituendo `-EINVAL`, coerentemente sia con il caso `I2C_SMBUS_BLOCK_DATA` nella stessa funzione, sia con la convalida di `I2C_SMBUS_I2C_BLOCK_DATA` in `i2c_smbus_xfer_emulated()`.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

20/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

molto basso

Fonti

Want to know what is going to be exploited?

We predict KEV entries!