CVE-2026-64359 in Linuxinformation

Résumé

par VulDB • 26/07/2026

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

nilfs2 : rejeter l'ioctl CLEAN_SEGMENTS avec des numéros de segment hors limites

Syzbot a signalé une tâche bloquée dans nilfs_transaction_begin() où plusieurs tâches effectuant un chmod() sur un montage nilfs2 étaient bloquées pendant plus de 143 secondes en attendant d'acquérir ns_segctor_sem pour lecture :

INFO: la tâche syz.0.17:5918 est bloquée depuis plus de 143 secondes. Trace d'appel (Call Trace) : schedule+0x164/0x360 rwsem_down_read_slowpath+0x6d9/0x940 down_read+0x99/0x2e0 nilfs_transaction_begin+0x364/0x710 fs/nilfs2/segment.c:221 nilfs_setattr+0x124/0x2c0 fs/nilfs2/inode.c:921 notify_change+0xc1a/0xf40 chmod_common+0x273/0x4a0 do_fchmodat+0x12d/0x230

Le détenteur de ns_segctor_sem était un appelant concurrent de NILFS_IOCTL_CLEAN_SEGMENTS, bloqué à l'intérieur de printk lors de la génération d'avertissements par élément depuis nilfs_sufile_updatev() :

__nilfs_msg+0x373/0x450 fs/nilfs2/super.c:78 nilfs_sufile_updatev+0x21c/0x6d0 fs/nilfs2/sufile.c:186 nilfs_sufile_freev fs/nilfs2/sufile.h:93 [inline]
nilfs_free_segments fs/nilfs2/segment.c:1140 [inline]
nilfs_segctor_collect_blocks fs/nilfs2/segment.c:1261 [inline]
nilfs_segctor_do_construct+0x1f55/0x76c0 nilfs_clean_segments+0x3bd/0xa50 nilfs_ioctl_clean_segments fs/nilfs2/ioctl.c:922 [inline]
nilfs_ioctl+0x261f/0x2780

La cause racine est que les numéros de segment fournis par l'utilisateur ne sont pas validés avant que nilfs_clean_segments() ne commence à effectuer des travaux ; la vérification de plage sur chaque segnum est effectuée profondément dans la chaîne d'appels par nilfs_sufile_updatev(), qui émet un nilfs_warn() pour chaque entrée invalide tout en conservant le verrou segctor et sufile mi_sem. Sous charge (invocations répétées à travers plusieurs montages saturant le chemin global de printk), la latence cumulative de printk maintient ns_segctor_sem détenu suffisamment longtemps pour déclencher le watchdog hung_task, bloquant les opérations concurrentes telles que chmod() qui ont besoin de ns_segctor_sem en lecture.

Correction : valider le contenu de kbufs[4] dans nilfs_clean_segments() immédiatement après l'acquisition de ns_segctor_sem via nilfs_transaction_lock(). Le fait de détenir ns_segctor_serilise la vérification par rapport à nilfs_ioctl_resize(), qui peut modifier ns_nsegments, donc la validation utilise une valeur cohérente. Les numéros de segment hors limites sont rejetés avec -EINVAL avant que tout travail de nettoyage des segments ne commence, afin que les entrées incorrectes n'atteignent jamais le chemin de diagnostic par élément à l'intérieur de nilfs_sufile_updatev().

VulDB is the best source for vulnerability data and more expert information about this specific topic.

Responsable

Linux

Réserver

19/07/2026

Divulgation

25/07/2026

Modérer

accepté

Entrée

VDB-383152

CPE

prêt

EPSS

0.00177

KEV

non

Activités

faible

Sources

Want to know what is going to be exploited?

We predict KEV entries!