Une faille de sécurité critique sur Freebox Révolution avait été découverte, et promptement corrigée, fin 2014. Sans plus d’informations. Aujourd’hui, on en apprend un peu plus sur cette histoire…
Rappel des faits
La faille a été découverte sur la Freebox Révolution (en version 3.0.2) par un utilisateur, DAU Huy Ngoc, qui a dressé un rapport de vulnérabilité qu’il a envoyé à l’équipe Freebox, le 22 novembre 2014. Le jour même, cette dernière confirme l’existence du problème et s’attèle à travailler à sa résolution. Un hotfix est déployé, venant rapidement colmater la faille sans qu’une mise à jour de la Freebox ne soit nécessaire. Il est suivi, le 6 décembre 2014, d’une mise à jour 3.0.3 venant définitivement corriger le problème.
À l’époque, les développeurs Freebox avaient tenu à saluer la « démarche responsable » de l’utilisateur leur ayant rapporté le bug. En effet, en leur adressant directement une description précise du problème, plutôt qu’en la gardant pour lui (ou pire, en la publiant à la vue de tous), celui-ci a évité que la faille ne soit exploitée par des utilisateurs malveillants.
La nature de la faille
En réalité, deux vulnérabilités avaient été reportées, mais une seule d’entre elles était « critique » pour la sécurité de la Freebox.
Grâce à cette faille, un simple code HTML malicieux inséré sur une page web pouvait créer un nouveau compte VPN sur le Freebox Server du visiteur. Une fois ce compte créé, l’attaquant était alors en mesure de se connecter au réseau local de l’utilisateur de la Freebox et d’accéder à de nombreuses données sensibles : configuration intégrale de la Freebox, fichiers partagés sur le réseau local, etc.
Les retombées auraient pu être rapidement désastreuses, pour les utilisateurs comme pour Free, si cette vulnérabilité était connue.
Voici une description complète de la faille (en anglais) :
Freebox allows users to create VPN connections to their home network. In version 3.0.2 when a new user is created, the following JSON request is sent to http://mafreebox.free.fr/api/v3/vpn/user/: {"login":"foo","password_set":false,"ip_reservation":"","password":"bar"} This request is vulnerable to CSRF which is easy to trigger. The following POC would create a new VPN account "ngocdh" / "1234=5678": <html> <body onload=vpn.submit()> <form name="vpn" action="http://mafreebox.free.fr/api/v3/vpn/user/" method="POST" enctype="text/plain"> <input type="hidden" name="{"login":"ngocdh","password_set":false,"ip_reservation":"","password":"1234" value="5678"}" /> <input type="submit" value="Submit request" /> </form> </body> </html>
La seconde faille permettait d’exploiter une faille XSS à condition que l’utilisateur souscrive à un flux RSS géré par l’attaquant, et importe un fichier Contacts (.vcf) malicieux. Sa probabilité d’utilisation était donc quasiment nulle. Néamoins, elle a également été corrigée dans la foulée.
via Milworm / merci à @FreeboxV6