La vulnérabilité CVE-2024-57843 est un dépassement de mémoire dans le pilote virtio-net du noyau Linux, susceptible de corrompre silencieusement la mémoire d'une instance en cours d'exécution. Cette rubrique décrit les images Linux officielles Alibaba Cloud ECS concernées, explique comment déterminer si une instance est affectée et indique comment corriger une instance vulnérable.
Présentation de la vulnérabilité
La vulnérabilité CVE-2024-57843 correspond à un défaut de dépassement de mémoire dans le pilote virtio-net du noyau Linux, qui survient lorsque le pilote remplit des tampons RX fusionnables. Ce défaut a été introduit par le commit amont 295525e29a5b (virtio_net: merge dma operations when filling mergeable buffers) et corrigé par le commit 6aacd1484468 (virtio-net: fix overflow inside virtnet_rq_alloc).
Red Hat évalue cette vulnérabilité comme étant de gravité modérée, tandis qu'Ubuntu la classe comme moyenne.
Symptômes
Une instance ECS affectée peut présenter les symptômes suivants :
Plantage inattendu de l'instance — L'instance plante sans avertissement (panique du noyau) et le journal dmesg contient des entrées liées à
general protection faultou àpagealloc: memory corruption.Échec du transfert de fichiers volumineux — Un transfert de fichier d'environ 100 Mo ou plus via scp est interrompu.
Corruption silencieuse des structures de données du noyau — Les pages de table de pages, les objets slab, les structures
buffer_headet d'autres données similaires sont écrasées de manière inattendue, ce qui entraîne un comportement système imprévisible.
Portée de l'impact
Le tableau suivant répertorie les images Linux officielles ECS évaluées pour la vulnérabilité CVE-2024-57843, indique pourquoi chaque distribution est concernée et présente le statut de correction des images ECS correspondantes.
| Distribution | Version affectée | Cause | Statut de correction des images ECS |
| Ubuntu | 24,04 LTS | Affectée dès la première version, car la base du noyau 6,8 inclut le correctif introduisant le défaut, qui a été rétroporté vers la version 6.6. Corrigée dans la version 6.8.0-58.60. | Les images publiées en mai 2025 sont corrigées (6.8.0-60-generic). |
| CentOS Stream 9 | 9 | Suit le flux amont de RHEL. Corrigée dans la version 5.14.0-570.12.1.el9_6. | Les images corrigées publiées en mars 2025 sont sécurisées. |
| Fedora | 40 (EOL) | Introduite dans kernel-6.6.2-201.fc40. Corrigée dans la version 6.12.5-200. | A atteint la fin de vie (EOL). Aucune mise à jour n'est prévue. |
Vérifier si votre instance est affectée
La version du noyau en cours d'exécution détermine si une instance ECS contient le défaut. Exécutez la commande suivante sur l'instance pour obtenir la version du noyau actif :
uname -r
Comparez le résultat avec la version de correction indiquée pour votre distribution dans le tableau de portée d'impact :
Antérieure à la version de correction — L'instance est affectée. Mettez à jour le noyau et redémarrez l'instance.
Version de correction ou ultérieure — Le noyau en cours d'exécution intègre le correctif ; aucune action supplémentaire n'est requise.
Les conditions de déclenchement décrites dans la section relative à la cause racine déterminent si le défaut est activé au moment de l'exécution. Elles ne permettent pas de savoir si le noyau en cours d'exécution contient le défaut ; utilisez donc la version du noyau comme critère de décision.
Corriger une instance affectée
Pour toutes les distributions, la correction nécessite la mise à niveau des packages du noyau ainsi que le redémarrage de l'instance pour que le correctif prenne effet.
Le redémarrage de l'instance interrompt tous les services qui y sont exécutés. Planifiez le redémarrage avant de mettre à jour le noyau.
Ubuntu 24.04 LTS
Mettez à niveau le noyau vers la version 6.8.0-58-generic (version du package 6.8.0-58.60) ou une version ultérieure.
-
Vérifiez qu'une version de noyau éligible est disponible. Les commandes suivantes actualisent l'index des packages et listent les versions de
linux-image-genericproposées par vos dépôts configurés.sudo apt update apt-cache madison linux-image-generic -
Mettez à niveau les packages du noyau.
sudo apt install -y --only-upgrade linux-image-generic -
Redémarrez l'instance.
sudo reboot -
Après le redémarrage, confirmez la version du noyau en cours d'exécution.
uname -rVérifiez que le résultat correspond à
6.8.0-58-genericou à une version ultérieure.
Ubuntu signale le même noyau sous la forme 6.8.0-58-generic dans la sortie de uname -r et sous la forme 6.8.0-58.60 dans les métadonnées du package. Le noyau 6.8.0-60-generic fourni dans les images ECS publiées en mai 2025 est postérieur à 6.8.0-58-generic et intègre donc le correctif.
CentOS Stream 9
Mettez à niveau le noyau vers la version kernel-5.14.0-570.12.1.el9_6 ou une version ultérieure.
-
Mettez à niveau les packages du noyau.
sudo dnf clean all && sudo dnf makecache sudo dnf -y update kernel -
Redémarrez l'instance.
sudo reboot -
Après le redémarrage, confirmez la version du noyau en cours d'exécution.
uname -rVérifiez que le résultat correspond à
5.14.0-570.12.1.el9_6ou à une version ultérieure.
Fedora 40 (EOL)
Fedora 40 a atteint sa fin de vie (EOL) et n'est plus maintenue ; aucune mise à jour n'est prévue pour les images officielles Fedora 40 d'ECS. Effectuez une mise à niveau vers Fedora 41 ou une version ultérieure.
Si vous continuez à utiliser Fedora 40, mettez à niveau le noyau vers la version 6.12.5-200 ou une version ultérieure.
-
Mettez à niveau les packages du noyau.
sudo dnf clean all && sudo dnf makecache sudo dnf -y update kernel -
Redémarrez l'instance.
sudo reboot -
Après le redémarrage, confirmez la version du noyau en cours d'exécution.
uname -rVérifiez que le résultat correspond à
6.12.5-200ou à une version ultérieure.
Atténuation temporaire
Aucune mesure d'atténuation temporaire n'est disponible pour la vulnérabilité CVE-2024-57843. Mettez à niveau vers une version du noyau qui intègre le correctif. La modification des conditions de déclenchement décrites dans la section relative à la cause racine ne remplace pas la mise à niveau du noyau.
Ne définissez pas net.core.high_order_alloc_disable=1 dans les environnements de production. Sur les versions du noyau contenant la vulnérabilité, ce paramètre augmente considérablement la probabilité que la vulnérabilité soit déclenchée. Les versions du noyau non affectées par la vulnérabilité ne sont pas impactées.
Cause racine
La vulnérabilité CVE-2024-57843 est un dépassement de 16 octets traversant les limites des pages, qui se produit lorsque le pilote virtio-net remplit des tampons RX fusionnables avec des données.
En mode DMA pré-mappé (do_dma=true), chaque page de fragment doit réserver 16 octets au début de la page pour stocker les informations de mappage. Lorsque toutes les conditions du tableau suivant sont réunies, le pilote alloue une page de 4 096 octets (ordre 0), mais doit écrire 16 + 4 096 = 4 112 octets. Les 16 derniers octets sont écrits dans la page physiquement adjacente suivante, ce qui corrompt silencieusement la mémoire.
| N° | Condition de déclenchement | Description |
| 1 | Le mode DMA pré-mappé est actif | 16 octets doivent être réservés au début de la page. |
| 2 | Les tampons RX fusionnables sont utilisés et XDP est désactivé | Détermine le chemin de code qui calcule la longueur du tampon. |
| 3 | MTU >= 4084 et la moyenne exponentielle pondérée (EWMA) de la longueur des paquets de trafic > 4020 | Sature len à 4096. |
| 4 | La page de fragment revient de l'ordre 3 à l'ordre 0 (pression mémoire transitoire) | Une page d'ordre 3 (32 Ko) dispose d'un espace suffisant, mais une page d'ordre 0 (4 Ko) n'en a pas. |
Empêcher les nouvelles instances d'être affectées
Lorsque vous créez une instance ECS, utilisez une image officielle qui intègre déjà le correctif.
Si les plantages persistent après la mise à niveau
Si des plantages similaires se produisent toujours après la mise à niveau du noyau, collectez le fichier vmcore et soumettez un ticket pour obtenir une assistance au dépannage.