severity 405197 grave found 405197 2.2.3-2 tag 405197 + security thanks Le lundi 01 janvier 2007 à 18:17 +0100, Roland Lezuo a écrit : > Package: libsoup2.2-8 > Version: 2.2.98-1 > Severity: normal > > There is a segfault in rhythmbox which can be triggered by running > nessus 2.2.8 against a box running rhythmbox with daap plugin. > I've built a debug version of libsoup from debian sources, here is the > trace: > > #0 0x00002b7566eb7d69 in strstr () from /lib/libc.so.6 > #1 0x00002b7562642f76 in soup_headers_parse (str=0x2aaaae5f1800 "GET > /", len=261, dest=0x1296e00) at soup-headers.c:38
Thanks for your detailed report. This is definitely a remote DoS for any
server code using libsoup2.2-8, but it is not remotely exploitable for
anything else than crashing it. The affected code is the following:
key = strstr (str, "\r\n");
key += 2;
/* join continuation headers, using a comma */
while ((key = strstr (key, "\r\n"))) {
I'm attaching a fix. The sarge version is vulnerable as well.
> #2 0x00002b7562643537 in soup_headers_parse_request (str=0x2aaaae5f1800
> "GET /", len=261, dest=0x1296e00, req_method=0xd441a8,
> req_path=0x7fff4976b860, ver=0xd44238)
> at soup-headers.c:160
> #3 0x00002b7562647b3b in parse_request_headers (msg=0xd44190,
> headers=0x2aaaae5f1800 "GET /", headers_len=261,
> encoding=0x2aaaae5b6038, content_len=0x2aaaae5b6058, sock=0x951bb0)
> at soup-message-server-io.c:34
> #4 0x00002b7562646c15 in io_read (sock=0x951bb0, msg=0xd44190)
> at soup-message-io.c:578
> #5 0x00002b75663df479 in g_closure_invoke () from
> /usr/lib/libgobject-2.0.so.0
> #6 0x00002b75663eeae1 in g_signal_chain_from_overridden () from
> /usr/lib/libgobject-2.0.so.0
> #7 0x00002b75663efd95 in g_signal_emit_valist () from
> /usr/lib/libgobject-2.0.so.0
> #8 0x00002b75663eff73 in g_signal_emit () from
> /usr/lib/libgobject-2.0.so.0
> #9 0x00002b75626509a2 in socket_read_watch (chan=<value
> optimized out>, cond=0, user_data=<value optimized out>) at
> soup-socket.c:1073
> #10 0x00002b7566a8bc73 in g_main_context_dispatch () from
> /usr/lib/libglib-2.0.so.0
> #11 0x00002b7566a8eabd in g_main_context_check () from
> /usr/lib/libglib-2.0.so.0
> #12 0x00002b7566a8eda6 in g_main_loop_run () from
> /usr/lib/libglib-2.0.so.0
> #13 0x00002b75643ed6b2 in IA__gtk_main () at gtkmain.c:1003
> #14 0x000000000042e151 in main ()
>
> The problem seems to be caused by a binary 0 in the request, i've
> extracted the following string:
>
> "GET /\0x00.jsp HTTP/1.1\r\n"
> ^^^^^
> binary 0
--
.''`.
: :' : We are debian.org. Lower your prices, surrender your code.
`. `' We will add your hardware and software distinctiveness to
`- our own. Resistance is futile.
--- libsoup/soup-headers.c~ 2006-11-05 22:52:59.000000000 +0100 +++ libsoup/soup-headers.c 2007-01-02 18:29:44.973388500 +0100 @@ -32,6 +32,8 @@ int offset = 0, lws = 0; key = strstr (str, "\r\n"); + if (!key) + return FALSE; key += 2; /* join continuation headers, using a comma */
signature.asc
Description: Ceci est une partie de message numériquement signée

