Faille de securite pour les plugins WP Super Cache et W3TC

W3 Total Cache

Il y a trois semaines une faille de sécurité a été signalée pour deux plugins, mais personne ne s’y est vraiment intéressé. Il semble pourtant que deux des plus grands plugins de cache pour WordPress contenaient une faille critique ouvrant la porte à l’exécution de code arbitraire à distance..

“ … L’exécution de code arbitraire est la capacité d’un attaquant d’exécuter des commandes sur une machine cible ou dans un processus cible. – Wikipedia”

Il y a  un mois, un utilisateur du nom de kisscsaby a signalé, sur le forum anglais de WordPress, exemple à l’appui, que les deux plugins permettaient l’ éxécution de code malveillant à distance. Il y a 5  jours, les  auteurs des deux plugins ont effectué une mise à jour désactivant les fonctions vulnérables.

Toutefois, le vrai problème, n’est pas tant la gravité de la vulnérabilité mais le très grand nombre d’ utilisateurs pour ces deux plugins.

Depuis, quelques articles ont relayé ce problème. Vous trouverez sur le blog de Frank Goosens et sur le blog d’Acunetix de plus amples détails sur la faille (article en langue anglaise).

Pourquoi faire du cache une telle affaire?

Les deux plugins représentent près de 6 millions de téléchargements, et même si la grande majorité des utilisateurs mettront leur plugin à jour très rapidement, on peut supposer qu’environ 25% sont des sites continueront à fonctionner avec une ancienne version. Un tel pourcentage est impressionnant pour n’importe quel plugin. Le vrai problème vient du fait qu’il s’applique à n’importe quel blog WordPress qui autorise les commentaires.

Si vous utilisez un service tiers, comme Disqus, vous ne serez pas affecté. Un moyen très simple de tester est de saisir un commentaire comme celui-ci à l’un des vos articles:

<!-Mfunc écho PHP_VERSION; -> <! -/mfunc->

Si cela marche, vous verrez s’afficher la version de PHP installée sur votre serveur. Pas de quoi se prendre la tête, non ? Faux. Cela signifie que je peux éxécuter toutes les commandes que je souhaite sur votre serveur et elles vont s’exécuter, d’où le terme d’exécution de commandes à distance terme.

Dans l’exemple ci-dessus, tout ce que j’ai fait consistait à faire un echo ou un print  pour afficher la version PHP du serveur, rien que de bénin, mais remplacer ce code par du code malveillant et les résultats qui s’en suivront seront catastrophiques, des portes dérobées s’ouvrent vers votre serveur, via vos commentaires, et elles contournent tous les autres contrôles d’authentification.

Cache malveillant = Blog à risques

En clair, les blogs utilisant WP Super Cache (avant la version 1.3) et W3 Total Cache (avant la version 0.9.2.9)  risquent l’injection de code PHP. Les commentaires peuvent contenir du code dynamique et le noyau de WordPress ne vas pas le les filtrer. Une fois  un tel  commentaire malveillant soumis, une nouvelle version de la page mise en cache a été créée, comprenant le code PHP injecté. Lors de la première demande de la page en cache, ce code sera exécuté avec succès, et, vous pouvez imaginer la suite …

Cette mise à jour ne doit en aucun cas être prise à la légère, il s’agit d’une vulnérabilité très grave, le plus exaspérant  étant que n’importe quel utilisateur peut l’ exploiter. La meilleure façon de vous protéger est de mettre à niveau le plugin que vous utilisez.

Vous pouvez trouver les dernières mises à jour sur le référentiel WordPress.org:
WP Super Cache
W3TC Total Cache

Pour finir, je voudrai féliciter les développeurs des deux plugins pour leur réactivité.

Maintenant, c’est à votre tour, utilisateurs finaux, effectuez la mise à jour!

Enhanced by Zemanta

Publié à l'origine le : 25 avril 2013 @ 12 h 05 min

Pour compléter votre lecture.