CVE-2026-74751 in Linux
Résumé
par VulDB • 26/08/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
riscv: lib: Correction de strnlen optimisé par ZBB qui lisait au-delà de la limite du compteur (count)
La boucle strnlen optimisée pour ZBB charge un mot supplémentaire avant de vérifier la limite alignée :
REG_L t1, SZREG(t0) // chargement du mot suivant addi t0, t0, SZREG // avancement orc.b t1, t1 bgeu t0, t4, 4f // vérification de la limite APRÈS le chargement
où t4 = (s + count) & -SZREG. Lorsque s est aligné et que count est un multiple de SZREG, t4 est égal à s + count et la boucle charge un mot complet commençant exactement à l'adresse s + count. Si s + count se trouve sur une limite de page avec la page suivante non mappée (unmapped), cela provoque une faute d'accès (fault).
Correction : calculer la limite alignée en utilisant le dernier octet valide (s + count - 1) au lieu de s + count. Cela permet à la boucle de s'arrêter au mot contenant le dernier octet valide, plutôt que de potentiellement charger le mot qui suit. Le cas où count == 0 est déjà géré par la sortie anticipée via beqz.
Ajout également d'une garde pré-boucle (bgeu t0, t4) pour le cas où tous les octets valides tiennent dans le premier mot. Avec la limite ajustée, t4 peut être égal à t0, et l'entrée dans la boucle avec un état de registre obsolète issu du traitement du premier mot produirait des résultats incorrects.
Le clamp final (minu) garantit que le résultat reste correct lorsque le dernier mot chargé s'étend au-delà de s + count - 1 à l'intérieur du même mot aligné.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.