Vulnérabilité du noyau Linux pouvant provoquer un crash en envoyant un paquet UDP

Dans le noyau Linux identifié vulnérabilité (CVE-2019-11683), qui permet de provoquer à distance un déni de service en envoyant des paquets UDP (packet-of-death) spécialement conçus. Le problème est dû à une erreur dans le gestionnaire udp_gro_receive_segment (net/ipv4/udp_offload.c) avec la mise en œuvre de la technologie GRO (Generic Receiver Offload) et peut endommager le contenu des zones de mémoire du noyau lors du traitement de paquets UDP avec un remplissage nul. (charge utile vide).

Le problème affecte uniquement le noyau 5.0puisque le support GRO pour les sockets UDP était mis en œuvre en novembre de l'année dernière et j'ai seulement réussi à accéder à la dernière version stable du noyau. La technologie GRO vous permet d'accélérer le traitement d'un grand nombre de paquets entrants en regroupant plusieurs paquets en blocs plus grands qui ne nécessitent pas de traitement séparé de chaque paquet.
Pour TCP, le problème ne se produit pas, puisque ce protocole ne prend pas en charge l'agrégation de paquets sans charge utile.

La vulnérabilité n'a jusqu'à présent été corrigée que sous la forme correctif, la mise à jour corrective n'a pas encore été publiée (la mise à jour 5.0.11 d'hier fix non inclus). À partir des kits de distribution, le noyau 5.0 a réussi à être inclus dans Fedora 30, Ubuntu 19.04, Arch Linux, Gentoo et d'autres distributions continuellement mises à jour. Debian, Ubuntu 18.10 et versions antérieures, RHEL / CentOS и SUSE / openSUSE le problème n'affecte pas.

Le problème a été trouvé en conséquence utiliser Système de test de fuzzing automatisé créé par Google syzbot et analyseur KASSAN (KernelAddressSanitizer), visant à identifier les erreurs lors du travail avec la mémoire et les faits d'accès incorrect à la mémoire, tels que l'accès aux zones de mémoire libérées et le placement de code dans des zones de mémoire non destinées à de telles manipulations.

Source: opennet.ru

Ajouter un commentaire