Ils ont découvert une vulnérabilité dans le sous-système Linux eBPF

Récemment, la nouvelle a annoncé que une vulnérabilité a été identifiée (CVE-2021-29154) dans le sous-système eBPF, qui pVous permet d'exécuter le traçage, l'analyse de sous-système et les contrôleurs de contrôle du trafic s'exécutant à l'intérieur du noyau Linux dans une machine virtuelle JIT spéciale qui permet à un utilisateur local d'exécuter votre code au niveau du noyau.

Selon les chercheurs qui ont identifié la vulnérabilité, ils ont pu développer un prototype fonctionnel d'un exploit pour les systèmes x86 32 bits et 64 bits qui peut être utilisé par un utilisateur non privilégié.

En même temps, Red Hat note que la gravité du problème dépend de la disponibilité de l'appel système eBPF. pour l'utilisateur. Par exemple, sur RHEL et la plupart des autres distributions Linux par défaut, la vulnérabilité peut être exploitée lorsque BPF JIT est activé et que l'utilisateur dispose des droits CAP_SYS_ADMIN.

Un problème a été découvert dans le noyau Linux dont ils peuvent abuser
utilisateurs locaux non privilégiés pour augmenter les privilèges.

Le problème est de savoir comment les compilateurs BPF JIT calculent pour certaines architectures
Décalages de branche lors de la génération du code machine. Cela peut être abusé
pour créer du code machine anormal et l'exécuter en mode noyau,
où le flux de contrôle est détourné pour exécuter du code non sécurisé.

Et c'est qu'ils détaillent que le problème est causé par une erreur générée lors du calcul du décalage des instructions de branchement pendant le compilateur JIT qui génère le code machine.

En particulier, il est mentionné que lors de la génération des instructions de branchement, il n'est pas pris en compte que le déplacement peut changer après le passage par l'étape d'optimisation, donc cette défaillance peut être utilisée pour générer du code machine anormal et l'exécuter au niveau. Noyau .

Particulièrement Ce n’est pas la seule vulnérabilité du sous-système eBPF qui est devenue connue ces dernières années, puisque fin mars, deux autres vulnérabilités ont été identifiées dans le noyau (CVE-2020-27170, CVE-2020-27171), qui offrent la possibilité d'utiliser eBPF pour pouvoir contourner la protection contre les vulnérabilités de la classe Spectre, qui permettent de déterminer le contenu de la mémoire du noyau et qui se traduit par la création de conditions pour l'exécution spéculative de certaines opérations.

L'attaque Spectre nécessite la présence d'une séquence spécifique de commandes dans le code privilégié, conduisant à une exécution spéculative des instructions. Dans eBPF, plusieurs moyens ont été trouvés générer de telles instructions au moyen de manipulations avec des programmes BPF transmis pour leur exécution.

  • La vulnérabilité CVE-2020-27170 est causée par des manipulations de pointeurs dans le vérificateur BPF, qui amènent des opérations spéculatives à accéder à une zone en dehors du tampon.
  • La vulnérabilité CVE-2020-27171 est liée à un bogue de sous-dépassement d'entier lors de l'utilisation de pointeurs, conduisant à un accès spéculatif aux données hors tampon.

Ces problèmes ont déjà été corrigés dans les versions du noyau 5.11.8, 5.10.25, 5.4.107, 4.19.182 et 4.14.227, et ont été inclus dans les mises à jour du noyau pour la plupart des distributions Linux. Les chercheurs ont préparé un prototype d'exploit qui permet à un utilisateur non privilégié de récupérer des données de la mémoire du noyau.

Concernant l'une des solutions qui proposé dans Red Hat est:

Atténuation:

Ce problème n'affecte pas la plupart des systèmes par défaut. Un administrateur devrait avoir activé le BPF JIT pour être affecté.

Il peut être désactivé immédiatement avec la commande:

# echo 0 > /proc/sys/net/core/bpf_jit_enable

Ou il peut être désactivé pour tous les démarrages ultérieurs du système en définissant une valeur dans /etc/sysctl.d/44-bpf -jit-disable

## start file ##
net.core.bpf_jit_enable=0</em>
end file ##

Enfin si vous souhaitez en savoir plus à propos de cette vulnérabilité, vous pouvez vérifier les détails dans le lien suivant.

Il est à noter que le problème persiste jusqu'à la version 5.11.12 (incluse) et n'a pas encore été résolu dans la plupart des distributions, même si la correction est déjà en place. disponible sous forme de patch.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.