Friday, May 19, 2006

squirrel mail - plugin Change_passwd : security patch for v4.0

Pour ceux qui utiliserait squirrelmail...

Voici un patch concernant un plugin ChangePassword ...
http://www.squirrelmail.org/plugin_view.php?id=117

... qui comme dit dans la description ...
"This plugin is to allow your users to change his/her system password in
/etc/passwd or /etc/shadow "

... permet de changer le mot de passe des utilisateurs par l'interface
web directement en modifiant les fichiers /etc/passwd /etc/shadow.

La version 4.0, qui comble de l'horreur est sensé corriger des problèmes
de sécurités ...
"Description: This version includes important security fixes,
so it should be considered high priority to upgrade this plugin
ASAP."

... en ajoute aussi un de taille!

A savoir que les hashs construit sont au format md5crypt et ne calcul
aucun cypher... la variable utilisé n'est même pas initialisée, par
contre son contenu est bien utilisé!!!
A noter aussi que tout le code de génération et calcul est présent mais
n'était pas utilisé.

En plus d'être totalement moche et sécuritairement horrifiant, ca
produit des hash avec un cypher dans un format inhabituel et
inexploitable pour la plus part des autres logiciels.

Voici donc un tout petit fix corrigeant la création du cypher (je ne
suis pas un fan de C, mais ca peut difficilement être pire que le code
original!).

<pre>
$ cat chpasswd.c-v4.0.fixmd5salt.diff
--- change_passwd/chpasswd.c 2004-04-25 20:00:13.000000000 +0200
+++ chpasswd.c+fixmd5salt 2006-03-20 12:33:02.418221260 +0100
@@ -163,8 +163,9 @@
}

(void)srand((int)time((time_t *)NULL));
+ to64(&salt[0],rand(),8);
//cpw = (char *)crypt(New_pw,salt);
- cypher = (char *)xmalloc(12); //MD5
+ cypher = (char *)xmalloc(13); //MD5
strcpy(cypher, "$1$"); //MD5
strcat(cypher, salt); //MD5
cpw = (char *)crypt(New_pw, cypher); //MD5
</pre>

Le patch a été soumis par 2 fois aux mainteneurs, qui n'a toujours pas
sorti de version l'incluant.

A bientot pour de nouvelles aventures...


Update:

I uploaded it to the patch forum to make it available to people not using this
list (http://www.qv90.de?sqm&F8=1&CI=1&FI=25).

Please note there is already another patch there available for change_passwd
4.0 (http://www.qv90.de?sqm&F8=1&CI=1&FI=4).

Live long and prosper
Florian
Squirrelmail patch forum
http://www.qv90.de/sqm

0 Comments:

Post a Comment

<< Home