Qpopper v4.0.x poppassd local root exploit
|
Date de Publication: 2003-04-29
Titre: Qpopper v4.0.x poppassd local root exploit
K-Otik ID : 0041
Exploitable à distance : Non
Exploitable en local : Oui
* Description Technique - Exploit *
Qpopper poppassd est un programme qui qui sert à changer les mots de passe système, permettant de ce fait à des utilisateurs de changer leurs passe mail. Un problème de sécurité existe dans poppassd qui est inclus par défaut dans Qpopper v4.0.x. Cette faille de sécurité, l'élévation de privilèges utilisateur vers root (puisque poppassd est exécuté sous root "uid 0").
--------------------------- password/poppassd.c --------------------------
170 #define PASSWD_BINARY "/usr/bin/passwd" /* TBD: config.h */
171 #define SMBPASSWD_BINARY "/usr/bin/smbpasswd" /* TBD:config.h */
711 int dochild (int master, char *slavedev, char *userid, int smb)
712 {
781 if (!smb)
782 {
784 setregid ( pw->pw_gid, pw->pw_gid ); //
785 setreuid ( pw->pw_uid, pw->pw_uid ); //
786
787 execl ( pwd_binary, "passwd", NULL ); // executé par "user".
788
789 err_msg ( HERE, "can't exec %s", pwd_binary );
790 exit ( 1 );
791 }
792 else
793 {
794 TRACE ( trace_file, POP_DEBUG, HERE, "...changing smb password" );
795 execl ( smb_binary, "smbpasswd", userid, NULL ); // exécuté par "root"
796
797 err_msg ( HERE, "can't exec %s", smb_binary );
798 exit ( 1 );
799 }
800 }
--------------------------------------------------------------------------------
* Versions Vulnérables *
qpopper4.0.5
qpopper4.0.4
qpopper4.0.3
qpopper4.0.x
* Solution *
http://www.qualcomm.com
* Crédits *
Faille découverte par l'équipe de INetCop Security (Avril 2003).
|