Présentation des vulnérabilités

Deux vulnérabilités ont été découvertes dans Tailscale, un outil de réseau privé virtuel. La première concerne un problème de traitement des requêtes HTTP malformées dans Tailscale Serve et Funnel, qui peut entraîner une consommation excessive de ressources CPU. La deuxième vulnérabilité concerne le traitement des arguments de ligne de commande dans Tailscale SSH, qui peut permettre à un attaquant d'accéder à un compte root en violation des listes de contrôle d'accès (ACL).

Fonctionnement de la vulnérabilité dans Tailscale Serve et Funnel

La première vulnérabilité est due à la façon dont Tailscale Serve et Funnel traitent les requêtes HTTP. Lorsqu'une requête est reçue, Tailscale essaie de résoudre le chemin de la requête en remontant dans l'arborescence des répertoires. Cependant, si la requête ne commence pas par un slash (/), cette remontée ne se termine jamais et la requête n'est jamais traitée. Cela peut entraîner une boucle infinie qui consomme 100% du processeur. Pour résoudre ce problème, Tailscale a mis à jour son code pour interrompre la remontée du chemin pour les requêtes dont le chemin n'est pas absolu.

Impact et correction de la vulnérabilité dans Tailscale SSH

La deuxième vulnérabilité concerne le traitement des arguments de ligne de commande dans Tailscale SSH. Les noms d'utilisateurs qui commencent par un tiret (-) sont interprétés comme des options pour la commande getent, ce qui peut permettre à un attaquant d'accéder à un compte root. Pour résoudre ce problème, Tailscale a mis à jour son code pour refuser les noms d'utilisateurs qui commencent par un tiret.

Implications et limites

Ces vulnérabilités ont été corrigées dans la version 1.98.9 de Tailscale. Les utilisateurs de Tailscale Serve, Funnel et SSH doivent mettre à jour leur version pour éviter ces problèmes de sécurité. Il est important de noter que ces vulnérabilités n'ontffectent que les versions antérieures à 1.98.9, et que les utilisateurs qui ont déjà mis à jour leur version ne sont pas concernés.

getent passwd -i

Cette commande peut être utilisée pour tester la vulnérabilité dans Tailscale SSH. Cependant, il est important de noter que cette commande ne doit être utilisée que dans un environnement de test, et non dans un environnement de production.