Bonjour à tous,
La faille a été rendue publique hier et ne concerne que les versions 1.5 du CMS.
Une personne mal intentionnée peut modifier le mot de passe de l'admin en quelques secondes, sans compétence particulière.
Liens:
Le blog officiel (explications et correction) http://developer.joomla.org/security/news/241-20080801-core-(...)
Les détails en français ici http://www.tux-planet.fr/faille-de-securite-dans-joomla-15x-(...)
Les updates là http://www.joomlafacile.com/telechargements/Patches-de-mise-(...)
# Erf
Posté par Snarky . Évalué à 5.
Je viens de tester sur un site trouvé sur google. Je suis actuellement face à un formulaire pour réinitialiser de mot de passe administrateur d'un site commercial...
Bon, je vais pas le faire, j'suis pas un salaud. C'était juste histoire de tester.
[^] # Re: Erf
Posté par ploum (site web personnel, Mastodon) . Évalué à 5.
[code]
if(strlen($token) != 32) {
$this->setError(JText::_(’INVALID_TOKEN’));
return false;
}
[/code]
Cela me semble très bête parce qu'un simple '''''''''''''''''''''''' (32 fois ') permettrait de continuer à utiliser la faille.
Enfin, ça ne me réconcilie pas avec Joomla parce ce que j'estime que ce genre d'erreur est vraiment évitable. (Bordel, on escape tous les formulaires qu'on reçoit avant de faire une requête quand même)
Mes livres CC By-SA : https://ploum.net/livres.html
[^] # Re: Erf
Posté par Nicolas Blanco (site web personnel) . Évalué à 2.
C'est le genre de choses qui arrive souvent dans les CMS qui ont été commencés y a des années, avec du code pas du tout objet, sans tests unitaires ni fonctionnels...
[^] # Re: Erf
Posté par Kerro . Évalué à 7.
qui ont été commencés y a des années
Je ne vois pas le rapport :-)
avec du code pas du tout objet
Là non plus.
sans tests unitaires ni fonctionnels
Là par contre, je vois :-)
[^] # Re: Erf
Posté par nanard . Évalué à -1.
Allez tous vous faire spéculer.
[^] # Re: Erf
Posté par ben (site web personnel) . Évalué à 0.
''''''''''''''''''''''''''''''''
(32*') je n'ai plus le formulaire Réinitialiser votre mot de passe. D'ailleurs, je me demande pourquoi ceci ne marche pas...[^] # Re: Erf
Posté par benoar . Évalué à 0.
Peut-être qu'un :
';xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
marchera ?...
[^] # Re: Erf
Posté par ben (site web personnel) . Évalué à 0.
'//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
[^] # Re: Erf
Posté par André Rodier . Évalué à 1.
Il est primordial d'utiliser une fonction de validation et d'épuration des données saisies par l'utilisateur, avant de les soumettre à une base de données.
[^] # Re: Erf
Posté par Zenitram (site web personnel) . Évalué à 2.
Bref, il est primordial d'utiliser une fonction de validation et d'épuration des données saisies par l'utilisateur correcte et non limitative.
[^] # Re: Erf
Posté par Psychofox (Mastodon) . Évalué à 0.
[^] # Re: Erf
Posté par mxt . Évalué à 7.
Les requêtes SQL sont correctement échappées dans Joomla et les saisies de formulaires sont vérifiés.
Le problème est que le fameux code qui être saisi est normalement composé que de lettres et de chiffres. Joomla nettoie ce code en supprimant tout ce qui n'est pas lettre ou chiffre puis effectue un échappement.
Le déroulé de la faille est le suivant:
o saisie par exemple du token: ###{{}{}
o nettoyage par Joomla: le token devient une chaîne vide
o échappement par Joomla de la chaîne vide
o Le code
SELECT id FROM #__users WHERE block = 0 AND activation = '.$db->Quote($token)
devientSELECT id FROM jos_users WHERE block = 0 AND activation = ''
o La colonne activation de la table SQL est vide pour un utilisateur n'ayant pas demandé la réinitialisation de son mot de passe, d'où le bug et son code de correction.
Donc oui, la faille aurait du être évitée, mais ce n'est pas non plus aussi trivial que ça.
[^] # Re: Erf
Posté par M . Évalué à 2.
Parce que bon on retrouve toujours le même genre d'erreur ; pas de validation des données entrantes...
[^] # Re: Erf
Posté par Victor STINNER (site web personnel) . Évalué à 2.
http://www.abelcheung.org/advisory/20071210-wordpress-charse(...)
Pour info, d'autres failles liées à Unicode :
http://www.haypocalc.com/blog/index.php/2008/01/26/124-faill(...)
Je pense que n'importe quelle application utilisant des fonctions haut niveau pour gérer l'accès à la base de données (MySQL ou autre), peut se protéger des injections SQL.
Euh... on parlait de PHP ? Ah mince.
Je pense que le « problème » de PHP est qu'il est trop facile à utiliser et que n'importe quel quidam sans aucune notion de sécurité peut écrire et publier son site web. La majorité des développeurs préfèrent réécrire leur CMS troué que d'utiliser un CMS testé et éprouvé.
http://blog.halon.org.uk/geek/debian/security/php_clippy.htm(...)
Au moins avec le C, on n'a pas ces problèmes.
[^] # Re: Erf
Posté par mxt . Évalué à 0.
Au moins avec le C, on n'a pas ces problèmes.
Tu as parfaitement raison ! Regarde le noyau, dont une bonne partie est écrite en C par des débutants qui ne font aucun test unitaire, on n'y a jamais découvert la moindre faille.
La morale est que toute application a des failles.
[^] # Re: Erf
Posté par ciol . Évalué à 4.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.