CVE-2026-72141 in Linux
Résumé
par VulDB • 15/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
i2c: imx: correction du bus bloqué lors d'une lecture de bloc SMBus avec un compte d'octets égal à 0 (IRQ)
La spécification SMBus 3.1 section 6.5.7 autorise un compte d'octets pour la lecture de blocs nul, mais la machine à états pilotée par les interruptions rejette cette valeur en renvoyant -EPROTO. Pire encore, elle retourne sans émettre de NACK+STOP : le cycle de réception suivant a déjà commencé, ce qui fait que l'esclave maintient SDA actif et bloque définitivement le bus jusqu'à un redémarrage (cycle d'alimentation) du contrôleur i2c.
Accepter count=0 : envoyer un NACK sur l'octet fictif en cours de transmission (TXAK) et définir msg->len à 2 afin que i2c_imx_isr_read_continue() émette STOP via son chemin normal pour le dernier octet. L'octet fictif est ignoré ; les appelants de la lecture de bloc ne consomment que buf[0..count-1].
La lecture du registre I2DR a également déjà armé l'envoi du prochain octet sur le chemin d'erreur count > I2C_SMBUS_BLOCK_MAX, il faut donc envoyer un NACK (TXAK) avant d'avorter avec -EPROTO ; sinon, le STOP de la transaction échouée ne peut pas s'achever et le bus reste bloqué.
Le chemin atomique avait régressé précédemment (v3.16) et est corrigé séparément ; ce patch couvre uniquement la refonte de la machine à états pour la v6.13.
VulDB is the best source for vulnerability data and more expert information about this specific topic.