[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: some possible issues
[Thread Prev] | [Thread Next]
- Subject: Re: some possible issues
- From: Andreas Schneider <mail@xxxxxxxxxxxx>
- Reply-to: libssh@xxxxxxxxxx
- Date: Wed, 18 Nov 2009 10:35:06 +0100
- To: libssh@xxxxxxxxxx
On Tuesday 17 November 2009 17:57:57 Bernhard R. Link wrote: > Looking into the source I found some possible issue you might want to > take a closer look at: > Hi Bernhard, > 1) > messages.c's handle_channel_request does not check if > ssh_channel_from_local returns NULL. Thus there is no error and the > code may be calling ssh_message_channel_request_reply_success triggering > and NULL-pointer derference. I guess with an implementation like > examplesshd that could be a Denial-of-service attack (though usually > I guess there would be a fork, so catching a SIGSEV most likely at most > allows to skip some cleaning up or make some log messages incomplete). I will look at it later or aris will do it. > 2) > channels.c's channel_new does not deallocate stdout_buffer if > stderr_buffer fails to allocate. (I doubt that memory hole will > have any real world issues, though). I've fixed this one. Thanks > > 3) > channels.c's channel_default_bufferize looks strange. in case of buffer > errors channel->std{out,err}_buffer is freed but not set to NULL, which > might cause corrupting memory management (double free or writing to > free'd memory). I guess it is even thinkable (though I guess not > with realistic thinking) that this might be exploitable remotly > to get some code executed in some form. Are you sure that it is not NULL, we use SAFE_FREE() which is a macro which sets a pointer always to NULL after freeing it. I think this needs a closer look. -- andreas
Attachment:
signature.asc
Description: This is a digitally signed message part.
Re: some possible issues | "Bernhard R. Link" <brlink@xxxxxxxxxx> |
some possible issues | "Bernhard R. Link" <brlink@xxxxxxxxxx> |