Re: libressl: crash in DES_fcrypt

2017-12-13 Thread Bob Beck
why AA? why not just choose two random ascii salt chars at that point? or since this is effectively a failure case encrypt a random ascii salt and random string? using AA will produce a usable result based on the original string. encrypting a random string with a random salt means the failure r

Re: libressl: crash in DES_fcrypt

2017-12-13 Thread Theo de Raadt
I still don't understand. This feels like fail-open. > I would like to commit this fix. I tried to avoid the crash in > libcrypto with least possible impact for the DES_fcrypt() API. > > ok? > > bluhm > > On Tue, Dec 05, 2017 at 05:20:49PM +0100, Alexander Bluhm wrote: > > On Fri, Oct 27, 201

Re: libressl: crash in DES_fcrypt

2017-12-13 Thread Alexander Bluhm
Hi, I would like to commit this fix. I tried to avoid the crash in libcrypto with least possible impact for the DES_fcrypt() API. ok? bluhm On Tue, Dec 05, 2017 at 05:20:49PM +0100, Alexander Bluhm wrote: > On Fri, Oct 27, 2017 at 01:50:26AM +0200, Jan Engelhardt wrote: > > #include > > int m

Re: libressl: crash in DES_fcrypt

2017-12-05 Thread Alexander Bluhm
On Fri, Oct 27, 2017 at 01:50:26AM +0200, Jan Engelhardt wrote: > #include > int main(void) { > char salt[3] = {0xf8, 0xd0, 0x00}; > char out[32]; > DES_fcrypt("foo", salt, out); > } This program produces a Segmentation fault in OpenBSD current. > openssl 1.1.x has it fix

Re: libressl: crash in DES_fcrypt

2017-10-29 Thread Brent Cook
Thank you Jan. This is a good thing to fix, but I had a hard time envisioning a security issue with it. Will see about backporting it though. Regards - Brent > On Oct 26, 2017, at 6:50 PM, Jan Engelhardt wrote: > > > libressl-2.6.2 is susceptible to an out-of-bounds read: > > #include > in

libressl: crash in DES_fcrypt

2017-10-26 Thread Jan Engelhardt
libressl-2.6.2 is susceptible to an out-of-bounds read: #include int main(void) { char salt[3] = {0xf8, 0xd0, 0x00}; char out[32]; DES_fcrypt("foo", salt, out); } Place in libressl's fcrypt.c: x=ret[0]=((salt[0] == '\0')?'A':salt[0]); Eswap0=con_salt[x]<<