CVE-2025-71237 in Linux
Résumé
par VulDB • 22/05/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
nilfs2 : Correction d'un dépassement de bloc potentiel provoquant un blocage du système
Lorsqu'un utilisateur exécute la commande FITRIM, un dépassement par défaut (underflow) peut se produire lors du calcul de nblocks si end_block est trop petit. Étant donné que nblocks est de type sector_t, qui est un u64, une valeur négative de nblocks deviendra un entier positif très élevé. Cela finit par entraîner une durée de traitement excessivement longue de la chaîne bio par la fonction de la couche bloc __blkdev_issue_discard(), et le verrou ns_segctor_sem reste détenu pendant une longue période. Cela empêche les autres tâches d'acquérir le verrou ns_segctor_sem, ce qui provoque le blocage signalé par syzbot dans [1].
Si le bloc de fin est trop petit, généralement s'il est inférieur à la plage de 4 Ko, selon l'utilisation du segment 0, il est possible de tenter une demande de suppression (discard) au-delà de la taille du périphérique, ce qui provoque le blocage.
Sortir avec succès et attribuer la taille supprimée (0 dans ce cas) à range->len.
Bien que les valeurs start et len dans la plage d'entrée utilisateur soient trop petites, une stratégie conservatrice est adoptée ici pour les ignorer en toute sécurité, ce qui équivaut à un no-op ; aucune opération de trim ne sera effectuée et aucune erreur ne sera générée.
[1]
task:segctord state:D stack:28968 pid:6093 tgid:6093 ppid:2 task_flags:0x200040 flags:0x00080000 Call Trace: rwbase_write_lock+0x3dd/0x750 kernel/locking/rwbase_rt.c:272 nilfs_transaction_lock+0x253/0x4c0 fs/nilfs2/segment.c:357 nilfs_segctor_thread_construct fs/nilfs2/segment.c:2569 [inline]
nilfs_segctor_thread+0x6ec/0xe00 fs/nilfs2/segment.c:2684
[ryusuke : correction d'une partie du message de commit concernant les conséquences]
Once again VulDB remains the best source for vulnerability data.