Ce bug avait pour origine le fait que l’application prenait en compte la balise <meta http-equiv=refresh> alors qu’elle devrait l’ignorer.
En conséquence, un tiers pourrait utiliser cette faille pour injecter du code afin de remplacer le contenu d’une page générée par l’application alors qu’elle serait en réalité le fruit d’un individu mal intentionné.
Jan Soucek qui a poussé ses recherches concernant cette vulnérabilité est parvenu à faire afficher une boite de dialogue demandant les identifiants iCloud de l’utilisateur comme si l’action avait été déclenchée par l’application mail elle-même. Il faut souligner que cette boite de dialogue est générée par le client mail d’iOS du destinataire après réception d’un mail contenant du code HTML.
Dans la preuve de concept élaboré par Jan Soucek, ce dernier explique ci-dessous les différentes étapes pour parvenir à rediriger le client mail et par-delà collecter le mot de passe d’un utilisateur
- Modifer l’adresse e-mail que vous souhaitez utiliser pour la collecte de mot de passe dans framework.php
- Charger index.php, framework.php et mydata.txt sur votre serveur
- Envoyer un email contenant du code HTML vers le sujet de recherche à partir de email.html
- Ne pas oublier de changer la valeur du paramètre modal-username GET en l’adresse e-mail du destinataire
- Vous pouvez utiliser l’adresse cette page à des fins de tests
Soucek précise également qu’il a évité de coder en dur en utilisant la méthode http-equiv car cela pourrait générer une fenêtre semblable à celle déclenchée par iOS même lorsqu’on se trouverait sur un client mail Yahoo ou Gmail. Bien évidemment, l’utilisateur soupçonnerait immédiatement la supercherie et passerait son chemin. Alors que dans l'autre cas, la balise de redirection meta est ignorée par les autres clients mail, le mail ouvert, par un autre client mail serait considéré, comme un simple message.
Il faut également préciser que Jan Soucek qui avait alerté Apple dès les premières heures de la découverte en janvier a également posté une démonstration de l’attaque sur YouTube pour attirer l’attention de tous.
Toutefois, aucun patch n’a été publié après la publication et plus précisément à la sortie des mises d’iOS8.1.2.
Six mois plus tard, aucune réaction de la part d’Apple ne s’est fait sentir et les correctifs pour cette faille se font toujours attendre. C’est pourquoi, Soucek a pris sur lui de rendre public le code source de son kit afin de contraindre la firme de Cupertino à publier un correctif pour cette vulnérabilité.
Source : Dépôt GitHub de Jan Soucek, Page d’assistance du dépôt sur GitHub
Et vous ?
Que pensez-vous de cette publication ? Est-elle opportune ?
Que pensez-vous de l’inaction d’Apple six mois après avoir été informé ?