[linux] bug v checkpassword ?
carcass
carcass na gmx.net
Čtvrtek Listopad 9 02:47:42 CET 2000
zdravim,
checkpassword sa pouziva hlavne s qmail-popup na skontrolovanie
login/hesla pri stahovani posty cez pop3, bug:
[root na omen bin]# cat /etc/shadow |grep nobody
nobody:*:9797:0:::::
[root na omen bin]# qmail-popup omen /usr/local/bin/checkpassword pwd
+OK <1064.973733057 na omen>
user nobody
+OK
pass hocico
-ERR aack, child crashed
par riadkov z checkpassword.c :
void doit(login)
char *login;
{
pw = getpwnam(login);
if (pw)
stored = pw->pw_passwd;
else {
if (errno == error_txtbsy) _exit(111);
_exit(1);
}
-=-=snip=-=-
encrypted = crypt(password,stored);
for (i = 0;i < sizeof(up);++i) up[i] = 0;
if (!*stored || strcmp(encrypted,stored)) _exit(1);
ak som to dobre pochopil, checkpassword zavola crypt() bez toho aby
skontroloval, ci "stored" obsahuje heslo s platnym salt-om. Takze ked
nejaky useri nemaju v /etc/shadov heslo so salt-om - ako napr. "*"
alebo "!", checkpassword pri overovani ich hesla segfaultne.
"*" v /etc/shadow miesto hesla maju defaultne systemove ucty ako
nobody, games, ftp, uucp atd.
"!" maju v /etc/shadow ucty, ktorym este nebolo pridelene ziadne heslo.
qmailisti - mohol by sa na to este niekto pozriet ? hlavne by ma
zaujimalo na kolko je tento bug nebezpecny, ci sa da vobec nejak
zneuzit...
este doplnim ze ide o checkpassword 0.81, slack 7.1 (2.2.17) zatial
este bez PAM
--
carcass
<*===============*>
carcass na gmx.net
Další informace o konferenci linux