Spectre ne veut pas rester mort
Peu de temps après que le code d'exploitation ait été trouvé dans un dépôt publicdeux nouvelles vulnérabilités (CVE-2020-27170 et CVE-2020-27171) ont été découvertes dans le code du noyau Linux qui s'en protège.
Ces deux vulnérabilités permettent à un utilisateur local de lire la mémoire du noyau, qui pourrait contenir des informations sensibles telles que des clés de chiffrement. Un code de démonstration a également été mis à disposition à titre privé, mais on peut supposer qu'il finira par être rendu public.
La faille de code est présente sur toutes les versions du noyau jusqu'à 5.12-rc3, la version candidate la plus récente. Toutes les distributions sont vulnérables.
Les correctifs KernelCare pour toutes les distributions prises en charge sont en cours de préparation et devraient commencer à être disponibles la semaine prochaine.
La première vulnérabilité, CVE-2020-27170affecte la façon dont les mesures d'atténuation du noyau contre les charges spéculatives hors limites fonctionnent. Du code non privilégié étendant une fonctionnalité BPF (Berkeley Packet Filtering) spécifique du noyau avait accès aux pointeurs et pouvait effectuer des opérations arithmétiques sur les pointeurs non liés, qui pouvaient à leur tour être utilisées comme vecteur d'attaque pour l'exfiltration du contenu de la mémoire du noyau. Les opérations sur les pointeurs ont pu être utilisées car certains des pointeurs exposés par le BPF n'étaient pas limités correctement.
La deuxième vulnérabilité, CVE-2020-27171utilise le même type d'extension de programme BPF sur les systèmes 64 bits, où une fois de plus une opération de pointeur souffre d'une faille de type "off-by-one". En raison de la nature des dispositifs informatiques, le premier nombre est 0, plutôt que le 1 plus naturel, et une erreur de programmation courante consiste à ne pas en tenir compte lors de l'exécution d'opérations mathématiques. Cette faille "off-by-one" permet de modifier un pointeur de manière à exposer un bloc de 4 Go de mémoire du noyau. Si le moment est bien choisi, cela pourrait permettre à un utilisateur non privilégié d'avoir accès à des emplacements mémoire protégés.
Les rapports détaillés sur les vulnérabilités mentionnent l'existence d'une preuve de concept divulguée à titre privé pour chaque vulnérabilité, mais un attaquant suffisamment motivé pourrait recueillir suffisamment d'informations sur le problème à partir du rapport pour développer son propre code d'attaque.