
Full Disclosure mailing list archives
lsh patch (was Re: new ssh exploit?)
From: Bennett Todd <bet () rahul net>
Date: Fri, 19 Sep 2003 09:31:49 -0400
2003-09-19T18:48:24 KF:
Well I messed with it a bit more and it seems to consistantly crash in the following areas...
Sorry for not following up sooner and saving you some effort; the author has analyzed this one, posted a patch to lsh-bugs, and is working on new releases that include the patch. I attach the email that went to lsh-bugs. Short version: simple, one line patch, _urgently_ needs to be applied by all users of lsh. -Bennett
--- Begin Message --- From: nisse () lysator liu se (Niels Möller)
Date: 18 Sep 2003 22:29:03 +0200
Summary: PLEASE DISABLE LSHD SERVICE. Apply below patch. Simon Josefsson <jas () extundo com> writes:FWIW, I can reproduce it: lshd: write_buffer: do_write length = 256 lshd: write_buffer: do_write closure->length = 293 lshd: garbage collecting... lshd: gc_mark: Memory corrupted! Aborted I think it has nothing to do with the actual bits sent, but rather that some earlier random data caused the code to take a rarely tested execution path, which has garbage collect bugs in it, which is discovered a while later.I'm afraid it's worse than that. It seems to be a genuine buffer overrun, on the heap. It's the buffer in read_line.c, /* GABA: (class (name read_line) (super read_handler) (vars (handler object line_handler) (e object exception_handler) ; Line buffer (pos . uint32_t) (buffer array uint8_t MAX_LINE))) */ The below patch should fix the bug. It's a case of checking for an error, reporting it, and then forgetting to return from the function. Instead the code just went on overwriting the buffer. Pretty embarrassing. diff -u -a -r1.31 read_line.c --- src/read_line.c 16 Feb 2003 21:30:11 -0000 1.31 +++ src/read_line.c 18 Sep 2003 20:02:48 -0000 @@ -100,6 +100,7 @@ /* Too long line */ EXCEPTION_RAISE(self->e, make_protocol_exception(0, "Line too long.")); + return available; } /* Ok, now we have a line. Copy it into the buffer. */ The buggy code was checked in a little more than four years ago, 1999-08-22, at about this time of day. I'm *not* going to bet that it isn't exploitable. I'll try to get new releases out within a few days, until then, I recommend that you apply the above patch to lshd and recompile, or disable lshd service. Thanks to Bennett Todd for reporting the problem. Sorry about the trouble. Regards, /Niels
--- End Message ---
Attachment:
_bin
Description:
Current thread:
- Re: new ssh exploit?, (continued)
- Re: new ssh exploit? Bennett Todd (Sep 16)
- Re: new ssh exploit? Blue Boar (Sep 16)
- Re: new ssh exploit? Bennett Todd (Sep 17)
- Re: new ssh exploit? Bennett Todd (Sep 18)
- Re: new ssh exploit? Damian Gerow (Sep 18)
- Re: new ssh exploit? Bennett Todd (Sep 18)
- Re: new ssh exploit? Damian Gerow (Sep 18)
- Re: new ssh exploit? Perry E. Metzger (Sep 18)
- Re: new ssh exploit? KF (Sep 18)
- Re: new ssh exploit? KF (Sep 18)
- lsh patch (was Re: new ssh exploit?) Bennett Todd (Sep 19)
- Re: lsh patch (was Re: new ssh exploit?) Carl Livitt (Sep 19)
- Re: lsh patch (was Re: new ssh exploit?) Niels Möller (Sep 19)
- Re: new ssh exploit? Shanphen Dawa (Sep 16)