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

Répondre à