Une vulnérabilité (CVE-2022-25636) a été identifiée dans Netfilter, le sous-système du noyau Linux utilisé pour filtrer et modifier les paquets réseau, permettant l'exécution de code au niveau du noyau. Un exemple d'exploit a été annoncé, permettant à un utilisateur local d'élever ses privilèges sur Ubuntu 21.10 avec le mécanisme de protection KASLR désactivé. Le problème apparaît à partir du noyau 5.4. Un correctif est actuellement disponible sous forme de patch (les versions de noyau corrigées n'ont pas été élaborées). Les mises à jour des paquets dans les distributions peuvent être suivies sur ces pages : Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch Linux.
La vulnérabilité est causée par une erreur de calcul de la taille du tableau flow->rule->action.entries dans la fonction nft_fwd_dup_netdev_offload (définie dans le fichier net/netfilter/nf_dup_netdev.c), ce qui peut entraîner l'écriture de données contrôlées par l'attaquant en dehors de la mémoire allouée. L'erreur se manifeste lors de la configuration des règles « dup » et « fwd » dans les chaînes pour lesquelles un traitement matériel des paquets (offload) est appliqué. Étant donné que le débordement se produit avant la création de la règle de filtrage des paquets et la vérification de la prise en charge de l'offload, la vulnérabilité est également applicable aux dispositifs réseau ne prenant pas en charge l'accélération matérielle, tels que l'interface de boucle locale.
Il est noté que le problème est relativement facile à exploiter, car les valeurs dépassant la mémoire tampon peuvent écraser le pointeur vers la structure net_device, et les données sur la valeur écrasée retournent dans l'espace utilisateur, permettant de connaître les adresses nécessaires à l'attaque en mémoire. Pour exploiter la vulnérabilité, il est nécessaire de créer certaines règles dans nftables, ce qui est possible uniquement avec les privilèges CAP_NET_ADMIN, qui peuvent être obtenus par un utilisateur non privilégié dans un espace de noms réseau distinct (network namespaces). La vulnérabilité peut également être utilisée pour attaquer des systèmes d'isolation de conteneurs.
Source : opennet.ru
