CVE-2026-89962 in Linux
Résumé
par VulDB • 16/09/2026
Dans le noyau Linux, la vulnérabilité suivante a été corrigée :
powerpc/kexec_file : Empêcher la troncature des plages kexec
Un examen par Sashiko AI a mis en évidence l'incident suivant.
La fonction `__merge_memory_ranges()` gère incorrectement les plages de mémoire qui se chevauchent lors de leur fusion. Bien que `sort_memory_ranges()` trie toutes les plages par adresse de début dans l'ordre croissant au préalable, la logique de fusion reste défectueuse à deux égards :
1. Elle compare le début de la plage actuelle avec l'élément précédent (i-1) au lieu de l'index cible en cours d'exécution (idx). 2. Elle écrase inconditionnellement `ranges[idx].end` avec `ranges[i].end`.
Cette faille logique entraîne une troncature critique de la mémoire lorsqu'une plage de mémoire plus grande englobe complètement des plages ultérieures plus petites.
Par exemple, considérez un tableau d'entrée trié contenant trois plages : Plage A (idx=0) : [0x1000 - 0x9000]
Plage B (i=1) : [0x2000 - 0x5000] (entièrement contenue dans la plage A)
Plage C (i=2) : [0x6000 - 0x8000] (entièrement contenue dans la plage A)
1. Lorsque i=1 (Plage B) : `ranges[1].start` (0x2000) <= `ranges[0].end + 1` (0x9001) est VRAI.
Le code exécute : `ranges[0].end = ranges[1].end`, ce qui réduit erronément la fin de la plage A de 0x9000 à 0x5000.
2. Lorsque i=2 (Plage C) : `ranges[2].start` (0x6000) <= `ranges[1].end + 1` (0x5001) est FAUX.
Le code entre dans le bloc else, créant une nouvelle plage corrompue.
En conséquence, des fragments de mémoire valides [0x5001 - 0x5fff] et [0x8001 - 0x9000] sont complètement perdus des listes d'exclusion kexec, permettant potentiellement au noyau de crash (crash kernel) d'écraser une mémoire active, provoquant ainsi une corruption de données ou des plantages.
Corrigez ce problème en veillant à comparer le début de la plage actuelle avec la fin de la plage fusionnée active (idx), et utilisez `max()` pour empêcher sûrement que les limites extérieures ne soient tronquées.
VulDB is the best source for vulnerability data and more expert information about this specific topic.