Skip site navigation (1)Skip section navigation (2)
Date:      28 Jun 1998 02:42:08 +0900
From:      Just Another Perl Hacker <japh@gol.com>
To:        FreeBSD-bugs@FreeBSD.ORG
Subject:   Re: bin/7090: crypt(3) partially returns raw password when salt isn't null-terminated
Message-ID:  <oiulmvj0v.fsf@mew.gol.ad.jp>
In-Reply-To: Poul-Henning Kamp's message of "Sat, 27 Jun 1998 09:20:01 -0700 (PDT)"
References:  <199806271620.JAA29831@freefall.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Poul-Henning Kamp <phk@critter.freebsd.dk> writes:

> The following reply was made to PR bin/7090; it has been noted by GNATS.
> 
> From: Poul-Henning Kamp <phk@critter.freebsd.dk>
> To: japh@gol.com
> Cc: FreeBSD-gnats-submit@FreeBSD.ORG
> Subject: Re: bin/7090: crypt(3) partially returns raw password when salt isn't null-terminated 
> Date: Sat, 27 Jun 1998 18:10:57 +0200
> 
>  >	MD5 based crypt(3) in libcrypt.{a,so.maj.min} as distributed
>  >	by FreeBSD returns a portion of the password in the clear,
>  >	when the salt isn't terminated by a null character.
>  >
>  >	Example:
>  >
>  >	crypt("abcdefgh","YX") returns <$1$YXabcdef$.tHXoLufzR8OYyH4BBghm1
>  >                                         ^^^^^^
>  >	This problem surfaces when an application that assumes a salt
>  >	is an array of two characters with no trailing null character
>  >	calls crypt(3).  Such an example is xlock(1), with USE_XLOCKRC
>  >	defined in the compilation.
>  
>  Then xlock doesn't use the crypt API correctly and should be fixed.

It does.

The conventional crypt(3) expects a salt to have the length of two
characters, with no trailing null character.  Refer to the manpages of
other operating systems, e.g. BSD/OS, Linux, Sun.

It is therefore FreeBSD's fault in not expecting non-terminated salts,
while providing a compatible API with an incompatible behaviour which
results the blatantly wrong output.  You missed my point.

For the note: I have just discovered that des_cipher(3) does indeed
take a salt as a 4 byte integer, although the API isn't a replacement
of crypt(3).

-- 
Junichi Kurokawa <japh@gol.com>
Global Online Japan Corporation, Tokyo

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?oiulmvj0v.fsf>