La semaine dernière, les chercheurs en sécurité de Cisco Talos ont découvert deux vulnérabilités similaires dans les clients VPN ProtonVPN et NordVPN. Notées 8,8 / 10 sur l’échelle de sévérité, les vulnérabilités permettent aux attaquants d’exécuter du code en tant qu’administrateur sur les systèmes d’exploitation Microsoft Windows à partir d’un utilisateur standard. Les vulnérabilités ont été répertoriées sous les identifiants CVE TALOS-2018-0622 / CVE-2018-3952 (NordVPN) et TALOS-2018-0679 / CVE-2018-4010 (ProtonVPN).
Il faut dire que les deux clients utilisent le logiciel OpenVPN Open Source pour configurer un tunnel sécurisé d’un point à un autre. Le service doit être exécuté avec des autorisations d’administrateur. Par conséquent, tout code qu’il exécute bénéficie de ces privilèges.
Paul Rascagneres de Cisco Talos a constaté que le fichier de configuration d’OpenVPN pouvant être modifié pour inclure du code arbitraire peut ensuite être transmis au service et exécuté avec les droits système sous Windows.
Des failles corrigées en avril
Le bogue est similaire à celui divulgué en avril par Fabius Watson du cabinet de conseil en sécurité VerSprite, qui a montré que le service OpenVPN accepterait et exécuterait un fichier de configuration contenant un paramètre tel que « plugin » ou « script-security ».
Des correctifs de sécurité ont été appliqués en avril par les deux clients VPN pour résoudre le problème de sécurité initial, mais selon Talos, « malgré le correctif, il était encore possible d’exécuter du code en tant qu’administrateur sur le système ».
La vulnérabilité initiale était due à des problèmes de conception similaires chez les deux clients logiciels. L’interface de NordVPN et ProtonVPN exécute des fichiers binaires avec l’autorisation d’un utilisateur connecté, ce qui inclut la sélection d’une option de configuration VPN, telle que la localisation du serveur VPN.
Ces informations sont envoyées à un service lorsque l’utilisateur clique sur « Connect » via un fichier de configuration OpenVPN. Cependant, VerSprite a pu créer un fichier OpenVPN spécialement conçu qui pourrait être envoyé au service, chargé et exécuté.
« La méthode ‘Connect’ accepte une classe d’argument d’instance qui fournit à l’attaquant le contrôle de la ligne de commande OpenVPN », indique la description de la vulnérabilité. « Un attaquant peut spécifier un plug-in de bibliothèque dynamique qui devrait s’exécuter pour chaque nouvelle connexion VPN. Ce plug-in exécutera du code dans le contexte de l’utilisateur SYSTEM ».
NordVPN et ProtonVPN ont tous deux résolu ce problème en mettant en place une vérification de la présence des deux paramètres dangereux, ainsi que de “up” et “down”, qui sont toutes des méthodes pour exécuter du code ou des commandes via OpenVPN.
En parcourant le code source d’OpenVPN pour l’analyseur de fichier de configuration, Rascagnares a remarqué que ces contrôles étaient insuffisants et que le même effet pouvait être obtenu en plaçant les paramètres entre guillemets. Le chercheur a montré qu’en ajoutant le texte suivant au fichier de configuration
Code : |
"script-security" 2 "up" C:\\WINDOWS\\system32\\notepad.exe |
ProtonVPN et NordVPN ont lancé l’application Notepad sur Windows.
Rascagnares a révélé les défauts aux deux fournisseurs de VPN le 5 juillet et NordVPN a publié un correctif le 8 août, tandis que ProtonVPN a proposé un correctif le 3 septembre.
De nouveaux correctifs sont déployés
Cette fois, les deux fournisseurs ont opté pour différentes méthodes correctives:
« Du côté de ProtonVPN, ils placent le fichier de configuration OpenVPN dans le répertoire d’installation et un utilisateur standard ne peut pas le modifier. Nous ne pouvons donc pas y ajouter la chaîne malveillante. Pour NordVPN, l’éditeur a décidé d’utiliser un modèle XML fichier de configuration. Un utilisateur standard ne peut pas modifier le modèle », indique Rascagnares dans un billet de blog.
Les versions de client affectées par le bogue d’élévation de privilèges sont ProtonVPN 1.5.1 et NordVPN 6.14.28.0. Les utilisateurs de NordVPN reçoivent automatiquement la mise à jour vers la dernière version de l’application, tandis que ceux qui utilisent PrototonVPN doivent démarrer le processus manuellement.
La déclaration de NordVPN
Laura Tyrell, attachée de presse chez NordVPN, a affirmé ceci :
« La vulnérabilité avait déjà été corrigée lorsque Cisco a dévoilé publiquement le CVE. Au début du mois d’août, une mise à jour automatique a été transmise à tous nos clients, ce qui signifie que la majorité des utilisateurs ont mis à jour leurs applications bien avant leur publication. Un mécanisme qui élimine en théorie la plupart des risques d’exploitation de la vulnérabilité dans des conditions réelles.
« Il convient également de mentionner que pour exploiter la faille, un attaquant devait avoir un accès physique au PC d’une victime. Une telle situation à elle seule entraîne diverses menaces de sécurité graves au-delà des applications individuelles.
« Afin d’appliquer les meilleures pratiques de sécurité, nous effectuons également un audit indépendant de la sécurité des applications ».
À l’occasion, un billet de blog a été publié sur le site de NordVPN pour apporter à ses clients plus d’éclaircissements.
La déclaration de ProtonVPN
De son côté, l’éditeur assure que les versions ultérieures de ProtonVPN ont résolu ce problème et une mise à jour a été déployée pour tous les utilisateurs. Ici aussi, il est important de noter qu’un attaquant doit déjà avoir accès à l’ordinateur de la cible pour que cet exploit fonctionne et qu’il n’affecte que les utilisateurs Windows. « Le correctif que nous avons mis en place devrait éliminer tous les bogues de cette nature et nous continuons à travailler avec des chercheurs en sécurité indépendants du monde entier pour renforcer la sécurité de ProtonVPN grâce à notre programme de prime aux bogues », assure un porte-parole.