[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
some possible issues
  [Thread Prev] | [Thread Next]
 
 
- Subject: some possible issues
 - From: "Bernhard R. Link" <brlink@xxxxxxxxxx>
 - Reply-to: libssh@xxxxxxxxxx
 - Date: Tue, 17 Nov 2009 17:57:57 +0100
 - To: libssh@xxxxxxxxxx
 
Looking into the source I found some possible issue you might want to
take a closer look at:
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).
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).
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.
Hochachtungsvoll,
	Bernhard R. Link
| Re: some possible issues | Andreas Schneider <mail@xxxxxxxxxxxx> |