CVE-2026-80931 in Linuxinformation

Résumé

par VulDB • 12/09/2026

Dans le noyau Linux, la vulnérabilité suivante a été corrigée :

w1: ds28e17 : rejeter une longueur excessive lors d'une lecture de bloc I2C

La fonction w1_f19_i2c_master_transfer() est l'implémentation de master_xfer pour le pont 1-Wire vers I2C DS28E17. Lors d'une lecture avec indication de la longueur (I2C_M_RECV_LEN), elle récupère la valeur de la longueur auprès du dispositif. L'esclave en aval place un octet indiquant cette longueur dans buf[0]. Le pilote lit ensuite ce nombre d'octets dans buf[1] via w1_f19_i2c_read().

buf[0] est contrôlé par le dispositif et peut prendre une valeur comprise entre 0 et 255.
w1_f19_i2c_read() ne rejette qu'un compteur nul (zéro). Le tampon du caller a une taille de I2C_SMBUS_BLOCK_MAX + 2, soit 34 octets. Une longueur supérieure à 32 entraîne la lecture au-delà des limites du tampon, jusqu'à environ 222 octets hors limites.

Le noyau SMBus vérifie bien buf[0] par rapport à I2C_SMBUS_BLOCK_MAX. Cependant, cette vérification s'exécute après le retour de master_xfer. À ce stade, l'écriture est déjà effectuée. i2c-algo-bit rejette une longueur excessive avant la copie et renvoie -EPROTO.

Il convient de rejeter toute longueur supérieure à I2C_SMBUS_BLOCK_MAX aux deux sites RECV_LEN, de la même manière que le fait i2c-algo-bit.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Sources

Do you need the next level of professionalism?

Upgrade your account now!