[Pkg-erlang-devel] Bug#832433: Bug#832433: CVE-2016-1000108
Moritz Mühlenhoff
jmm at inutil.org
Mon Jul 25 21:18:58 UTC 2016
On Mon, Jul 25, 2016 at 06:04:50PM +0300, Sergei Golovan wrote:
> Hi Moritz,
>
> On Mon, Jul 25, 2016 at 5:03 PM, Moritz Muehlenhoff <jmm at debian.org> wrote:
> > Source: yaws
> > Severity: normal
> > Tags: security
> >
> > http://seclists.org/oss-sec/2016/q3/95 claims that yaws sets
> > HTTP_PROXY based a passed Proxy: header. I don't see any
> > evidence for that in the source, but maybe I'm missing something?
>
> Actually, it does set HTTP_PROXY if the Proxy: header is passed to it.
> You can see in src/yaws.erl (lines 2537-2542 in 2.0.3) it collects all
> unknown headers to the "other" headers collection:
>
> %% auxiliary headers we don't have builtin support for
> {ok, X} ->
> ?Debug("OTHER header ~p~n", [X]),
> http_collect_headers(CliSock, Req,
> H#headers{other=[X|H#headers.other]},
> SSL, Count+1);
>
> And in src/yaws_cgi.erl (lines 370-373 in 2.0.3) it passes all the "other"
> headers to the CGI script environment (with HTTP_ prepended, so Proxy
> becomes HTTP_PROXY, the tohttp function does exaclty that):
>
> {"HTTP_COOKIE", flatten_val(make_cookie_val(H#headers.cookie))}
> ]++lists:map(fun({http_header,_,Var,_,Val})->{tohttp(Var),Val} end,
> H#headers.other)
> )) ++
>
> So, YAWS is vulnerable. How do you think we should fix this?
Oh, you're right I missed that code section!
> Appears that this bug is already fixed upstream (in VCS, not in any
> release yet):
>
> https://github.com/klacke/yaws/commit/9d8fb070e782c95821c90d0ca7372fc6d7316c78#diff-54053c47eb173a90c26ed19bd9d106c1
>
> I could take this patch and prepare the fixes for sid and jessie.
The impact is still fairly limited, so I think it's sufficient if
we fix this through the next jessie point release.
Cheers,
Moritz
More information about the Pkg-erlang-devel
mailing list