Plop, Va falloir limiter la durée de validité d'un formulaire d'envoi de commentaire, ou contrôler le referer, ou…
-- Franck ---------- Message transféré ---------- De : Mathieu Pillard <[email protected]> Date : 19 novembre 2013 23:10 Objet : Faille CSRF permettant de faire poster des commentaires À : [email protected] Bonjoursoir, Je me suis rendu compte avec effroi qu'il existe une faille CSRF dans la publication de commentaires dans Dotclear, probablement depuis une éternité. Et je me demande si ya pas déjà des spammeurs qui en profitent. Il suffit à un attaquant de faire visiter à sa victime une page ou il fait un POST (en XHR, ou alors en lui faisant soumettre un formulaire) vers le Dotclear visé en remplissant bien c_name, c_mail, c_site, c_content (et en laissant f_mail vide) et hop, le commentaire sera directement posté. Quelques idées pour corriger ça: a) Système classique d'échange de token anti-CSRF depuis la page permettant de poster un commentaire avec pose et vérification de cookie derrière ; malheureusement ça veut dire que cette page (qui est aussi la page d'un post dans la plupart des cas) ne peut pas être cachée. b) La même chose que a) mais uniquement depuis la page de prévisualisation (qui demande un premier POST, donc pas cachée) ; malheureusement ça veut dire qu'il faudrait enlever la possibilité de ne pas prévisualiser son commentaire c) La même chose que a), mais avec un appel XHR en JavaScript pour chopper le token (en s'assurant que ce dernier n'est pas caché non plus) ; malheureusement ça veut dire pas possible de poster sans JavaScript d) La solution c) avec fallback sur b) pour les gens sans JS e) Obi-Wan Kenobi PS: j'aurais bien aimé vérifié si ya pas d'autres failles CSRF subtiles, mais j'ai un peu de mal à trouver ou c'est géré dans le code pour l'admin par exemple. Un petit coup de pouce ? -- Mathieu Pillard http://virgule.net/ -- Dev mailing list - [email protected] - http://ml.dotclear.org/listinfo/dev
