Un chercheur en sécurité s’est penché sur l’application de messagerie mobile WhatsApp. Ce dernier a réussi à trouver une vulnérabilité provenant d’une erreur dans la gestion de la mémoire lors de l’ouverture de la galerie au sein de l’application.
Cette erreur est exploitable lorsqu’une même variable est libérée deux fois de suite (double-free
). Grâce à cela, les deux prochaines zones mémoires allouées pointeront vers la même adresse. Ainsi, à travers la création d’un fichier spécifiquement forgé, le chercheur a d’abord été en mesure de provoquer un crash de l’application. Pour ce faire, il lui suffisait d’envoyer à sa victime son fichier, que celle-ci le télécharge puis qu’elle ouvre sa galerie au sein de l’application.Après avoir réussi à faire planter l’application, le chercheur a poursuivi ses recherches dans le but d’exécuter du code arbitraire sur l’appareil. Pour cela, il a réalisé un travail d’ingénierie inverse sur l’application afin de comprendre son fonctionnement. Après avoir réussi à mettre son code en mémoire, il utilise une vulnérabilité lui permettant de récupérer l’adresse d’autres fonctions, vulnérabilité qu’il n’a pas présentée.
Ainsi, ce chercheur a réussi à obtenir un code d’exploitation fonctionnel, qui génère un fichier GIF permettant d’obtenir une invite de commandes à distance sur l’appareil, dans le contexte de l’application.
Une vidéo de démonstration est disponible ici. Le chercheur a également publié une preuve de concept non fonctionnelle en l’état.
Enfin, les versions d’Android impactées de façon certaine sont les versions 8.1 et 9.0. Dans les versions précédentes, il est seulement possible de faire planter l’application.
La vulnérabilité a suivi le processus de divulgation responsable (responsible disclosure
), celle-ci ayant été d’abord présentée à Facebook puis publiée après mise à disposition du correctif.
Référence
How a double-free bug in WhatsApp turns to RCE