Un exploit public donne le root sur les machines Linux avec AnyDesk 8.0.2
Des chercheurs ont publié un exploit fonctionnel pour AnyDesk sous Linux, qui exécute des commandes en root sur la machine cible, sans mot de passe et avant que quiconque n'accepte la connexion. Baptisé AnyPwn, l'exploit vise AnyDesk 8.0.2 lorsqu'il tourne comme service, et l'atteint par le port TCP 7070. AnyDesk a corrigé la faille en juin dans la version 8.0.3, mais le journal des modifications parlait seulement de "fixed a bug that could lead to a crash" (« correction d'un bug pouvant provoquer un plantage »), sans CVE ni avis de sécurité. Beaucoup d'administrateurs n'avaient donc aucune raison de juger cette mise à jour urgente.
Ce que fait l'exploit
Le bug a été découvert par Rick de Jager, de la société de sécurité V12, qui a publié la preuve de concept sur GitHub le 8 octobre. Il s'agit d'un débordement de tas dans le code qui traite les premiers paquets d'une session : AnyDesk fait confiance à un champ de longueur envoyé par l'interlocuteur distant avant de le vérifier, la valeur déborde, et le programme copie les données de l'attaquant au-delà d'un minuscule tampon. Sous Linux, le service AnyDesk tourne normalement en root, de sorte que le code exécuté de cette façon prend le contrôle total de la machine. Aucun clic ni aucune approbation de la personne devant l'écran n'est nécessaire.
L'exploit public a des limites. Il a été conçu pour une version précise de 8.0.2 sous Linux 64 bits, exige une connexion directe au port 7070 et ne fonctionne pas à tous les coups : quand la disposition de la mémoire ne correspond pas, c'est le service AnyDesk qui plante. Les chercheurs indiquent que la version 8.0.1 pourrait contenir la même faille, mais ils n'y ont pas porté l'exploit. AnyDesk affirme que le problème est "limited to direct connections on Linux (connections that do not go through our relays)" (« limité aux connexions directes sous Linux, c'est-à-dire celles qui ne passent pas par nos relais ») et qu'il ne touche ni Windows ni macOS. V12 assure toutefois avoir confirmé que le code vulnérable est aussi accessible par les serveurs relais d'AnyDesk. Les chercheurs n'ont pas construit d'exploit complet pour ce chemin : on ignore donc encore si les connexions relayées sont exploitables.
Pourquoi le correctif est passé inaperçu
Les équipes de sécurité décident généralement de ce qu'il faut corriger en priorité d'après les numéros CVE et les avis des éditeurs. Au 9 octobre, cette faille n'avait ni l'un ni l'autre : les scanners et les tableaux de bord de correctifs qui s'appuient sur les flux CVE n'avaient donc rien à signaler. Une machine Linux dont AnyDesk n'a pas été mis à jour depuis avant juin exécute une version pour laquelle il existe désormais un exploit public. Selon V12, l'éditeur a retiré la version 8.0.2 de son site après que les chercheurs ont publié une vidéo de l'attaque.
Vérifiez vos machines
- Trouvez la version : lancez
anydesk --version. Toute version inférieure à 8.0.3 doit être mise à jour. La version actuelle est la 8.1.0. - Vérifiez si le service écoute :
sudo ss -ltnp | grep 7070. Une ligne contenantanydesksignifie que le port est ouvert sur cette machine. - Mettez à jour via votre gestionnaire de paquets ou le dépôt d'AnyDesk, puis redémarrez le service avec
sudo systemctl restart anydesk. - Fermez le port 7070 vers Internet sur le pare-feu de l'hôte, sur le routeur et dans tout groupe de sécurité cloud. La mise à jour est le vrai correctif. Fermer le port constitue une seconde barrière tant que la question des connexions relayées reste ouverte.
- Cherchez les signes d'alerte : plantages répétés du service AnyDesk, connexions inattendues au port 7070 et processus lancés par le service AnyDesk sans que personne les ait démarrés.
Un service de bureau à distance qui écoute sur l'Internet ouvert est un risque, même entièrement à jour. Ne le rendre accessible que via un VPN ou un autre réseau privé vers le réseau du bureau ou du domicile signifie qu'une faille comme celle-ci ne peut pas être atteinte depuis Internet, mais seulement par quelqu'un qui a déjà accès à ce réseau. Il en allait de même pour la faille SSH des routeurs MikroTik. Notre guide d'installation de WireGuard explique comment monter un tel tunnel sur votre propre serveur.