MessengerFX’s security problem corrected

Some times ago I found a Cross Site Scripting vulnerability in MessengerFX, a popular web-based Windows Live Messenger client. Friday I received from the team saying that the problem is now corrected:

Hi Kevin,
First of all i want to thank you for your warn. We fixed that problem and
now its working correctly.

[…]
If you find any other problem please let me know. Thanks again.

It was serious : Every software’s feature is available through Javascript. Any contact of a MessengerFX user can crash his browser, and futhermore get its contact list, add, remove, ban and unban contacts, read and send messages to any other contact of the victim ! Basically, an attacker just need to be listed in the contacts list of an MessengerFX user and this attacker can take control over the account.

In fact, all Javascript code is now removed server-side, so it’s impossible to send some snippets to a friend and the code is still executed locally (in the browser of the sender). The team explain that a new version of their app will be released soon and will better handle things like this.

La faille de sécurité touchant MessengerFX semble corrigée

Il y’a quelques temps, j’avais découvert une vulnérabilité de type Cross Site Scripting dans MessengerFX, un client web populaire pour le réseau Windows Live Messenger, qui pouvait avoir de fâcheuses conséquences : en plus de pouvoir faire planter le navigateur de n’importe quel utilisateur du service, elle permet d’accéder à toutes les fonctionnalités implémentées par Messenger FX ce qui signifie entre autre : récupérer la liste de contact de l’utilisateur, envoyer des messages en son nom, supprimer, bloquer et débloquer des personnes de sa liste de contact et lui en ajouter, lire les messages, bref : de prendre le contrôle complet du compte MSN de la victime.

Vendredi, j’ai reçu un email de l’équipe MessengerFX m’indiquant que le problème est corrigé :

Hi Kevin,
First of all i want to thank you for your warn. We fixed that problem and
now its working correctly.
[…]

La correction actuelle ne permet plus d’envoyer de code Javascript via MessengerFX à un ami et éxecute toujours le dis code en local (sur l’ordinateur de celui qui l’envoi). L’équipe indique que la prochaine version, bientôt disponible, inclura une meilleure gestion de l’envoi de code via l’application internet.

Vulnérabilité critique dans MessengerFX

MessengerFX est un client populaire pour Windows Live Messenger (anciennement MSN Messenger) écrit en AJAX. Sa spécificité et de permettre de se connecter au réseau via un simple navigateur web.

En voulant coller du code HTML à Edouard, je me suis rendu compte qu’il était interprété par le navigateur. Faille de type XSS ? Effectivement ! Sauf que celle-ci n’est pas bénigne : en plus de pouvoir faire planter le navigateur de n’importe quel utilisateur du service, elle permet d’accéder à toutes les fonctionnalités implémentées par Messenger FX ce qui signifie entre autre : récupérer la liste de contact de l’utilisateur, envoyer des messages en son nom, supprimer, bloquer et débloquer des personnes de sa liste de contact et lui en ajouter, lire les messages, bref : de prendre le contrôle complet du compte MSN de la victime.

Faille de Cross Site Scripting dans MessengerFX

Pire, il est tout à fait possible d’écrire un vers en utilisant les fonctions d’envoi de message. Ce vers pourrait par exemple supprimer tous les contacts de toutes les personnes connectées à Messenger FX… voir faire tomber le réseau MSN dans son ensemble par une attaque de type DDOS.

J’ai envoyé un email au propriétaire du service qui reste à ce jour sans réponse. En attendant une correction, simple comme un htmlspecialchars(), abstenez-vous d’utiliser Messenger FX et préférez-y Meebo ou le client officiel de Microsoft version web !

Edit du 6 octobre 2008 : la faille semble maintenant corrigée.

MessengerFX allows your contacts to take control over your WLM

I have paste some HTML code to a Edouard using MessengerFX, a popular web Windows Live Messenger client based on AJAX, and – surprise, the code has been interpreted. Oh?! A XSS vulnerability ? Yes, and such a big one!

Every software’s feature is available through Javascript. Any contact of a MessengerFX user can crash his browser, and furthermore get its contact list, add, remove, ban and unban contacts, read and send messages to any other contact of the victim ! Basically, an attacker just need to be listed in the contacts list of an MessengerFX user and this attacker can take control over the account.

And the worst is coming… Using Javascript, it seems easy to write a worm that will, i.e. recursively delete every contacts of the MessengerFX users – say using the vulnerability to get the contact list and delete them one by one. The worm can also try to shutdown the WLM network with a DDOS attack by a heavy load of messages at the same timeusing infected MessengerFX users WLM accounts.

MessengerFX is popular and growing, such a flaw can be very dangerous for a lot of people. I have send a mail to the development team and I hope they will correct their application soon… Because the fix is as simple as a htmlspecialchars() call. MessengerFX users, don’t use it anymore and try Meebo or the official Microsoft WLM web based client. Web developers, never trust the user-submitted data and always escape thos inputs!!

Edit october 6 2008 : the problem is now corrected.