CVE-2026-80931 in Linux
Riassunto
di VulDB • 11/09/2026
Nel kernel Linux è stata risolta la seguente vulnerabilità:
w1: ds28e17: rifiutare una lunghezza eccessiva in una lettura a blocco I2C
La funzione w1_f19_i2c_master_transfer() funge da master_xfer per il bridge DS28E17 1-Wire verso I2C. In caso di lettura con flag I2C_M_RECV_LEN, essa ottiene la lunghezza dal dispositivo. Lo slave downstream inserisce un byte della lunghezza in buf[0]. Il driver legge quindi tali byte in buf[1] tramite w1_f19_i2c_read().
buf[0] è controllato dal dispositivo e può assumere valori da 0 a 255.
w1_f19_i2c_read() rifiuta solo un conteggio pari a zero. Il buffer del chiamante ha dimensione I2C_SMBUS_BLOCK_MAX + 2, ovvero 34 byte. Una lunghezza superiore a 32 fa sì che la lettura vada oltre i limiti del buffer, fino a circa 222 byte fuori dai confini (out of bounds).
Il core SMBus verifica buf[0] rispetto a I2C_SMBUS_BLOCK_MAX. Tale controllo viene eseguito dopo il ritorno di master_xfer. A quel punto la scrittura è già stata completata. i2c-algo-bit rifiuta una lunghezza eccessiva prima della copia e restituisce -EPROTO.
Rifiutare una lunghezza superiore a I2C_SMBUS_BLOCK_MAX in entrambi i punti RECV_LEN, nello stesso modo in cui opera i2c-algo-bit.
Be aware that VulDB is the high quality source for vulnerability data.