Re: p1: additional security considerations

Amos Jeffries <> Tue, 23 April 2013 13:48 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 4158921F96E8 for <>; Tue, 23 Apr 2013 06:48:54 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -10.499
X-Spam-Status: No, score=-10.499 tagged_above=-999 required=5 tests=[AWL=0.100, BAYES_00=-2.599, RCVD_IN_DNSWL_HI=-8]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id eWSe10ZjRomm for <>; Tue, 23 Apr 2013 06:48:53 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 5DCB921F96E4 for <>; Tue, 23 Apr 2013 06:48:53 -0700 (PDT)
Received: from lists by with local (Exim 4.72) (envelope-from <>) id 1UUda6-0002Z9-It for; Tue, 23 Apr 2013 13:48:26 +0000
Resent-Date: Tue, 23 Apr 2013 13:48:26 +0000
Resent-Message-Id: <>
Received: from ([]) by with esmtp (Exim 4.72) (envelope-from <>) id 1UUda2-0002Wm-KV for; Tue, 23 Apr 2013 13:48:22 +0000
Received: from ([] by with esmtp (Exim 4.72) (envelope-from <>) id 1UUda1-000334-8m for; Tue, 23 Apr 2013 13:48:22 +0000
Received: from [] ( []) by (Postfix) with ESMTP id D1D84E6F39 for <>; Wed, 24 Apr 2013 01:47:58 +1200 (NZST)
Message-ID: <>
Date: Wed, 24 Apr 2013 01:47:54 +1200
From: Amos Jeffries <>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130328 Thunderbird/17.0.5
MIME-Version: 1.0
References: <> <> <> <>
In-Reply-To: <>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
Received-SPF: pass client-ip=;;
X-W3C-Hub-Spam-Status: No, score=-4.3
X-W3C-Hub-Spam-Report: AWL=-2.380, BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001
X-W3C-Scan-Sig: 1UUda1-000334-8m 332ec0e8681128d0ad2cc9d514f89abe
Subject: Re: p1: additional security considerations
Archived-At: <>
X-Mailing-List: <> archive/latest/17502
Precedence: list
List-Id: <>
List-Help: <>
List-Post: <>
List-Unsubscribe: <>

On 23/04/2013 6:55 p.m., Willy Tarreau wrote:
> On Tue, Apr 23, 2013 at 04:17:22PM +1000, Mark Nottingham wrote:
>> On 23/04/2013, at 4:15 PM, Willy Tarreau <> wrote:
>>> On Tue, Apr 23, 2013 at 04:02:22PM +1000, Mark Nottingham wrote:
>>>> Just wondering if we need to explicitly point out the security considerations
>>>> around the following:
>>>> * Message routing -- it's somewhat common AIUI for intermediaries to only
>>>> route on the Host header, for performance reasons; i.e., they do not
>>>> reconstruct the effective request URI (as required by p1 5.5). I know there's
>>>> a theoretical risk here, but is there a real-world risk that we should point
>>>> out?
>>> I see no particular risk since the Host header field is mandatory. Also in
>>> practice, intermediaries which "route" requests tend to be very close to
>>> the servers, at places where the security considerations are very specific
>>> to the environment and explicitly covered in this intermediary's configuration.
>> That's what I was wondering. What concerned me was that people deploy load
>> balancers in front of proxies, and virus scanners, etc. I don't have a
>> specific attack in mind, it just feels like there probably is one.
> At least in my experience, when deploying a load balancer in front of a proxy
> farm or anti-virus farm, parts of the URI are used more than the Host header
> field. For example, you can have an LB which decides that requests for file
> ending in ".mpg" do not pass through the virus scanner and go directly to the
> proxy, but in return the content-type must absolutely match "video/mpeg"
> otherwise they're blocked (it's just an example).
> That's why I think that the security considerations are much more of a global
> thing in such deployments than just a matter of correctly relying on the Host
> header field.
> Willy

Yes. There are several vulnerabilities which Host enables or enhances. 
But they are problems which the next-hop is best placed to deal with and 
should be protecting itself against regardless of the presence of a 
routing intermediary. Even that unicity issue Willy pointed at is 
something the origin server or a cache is best placed to reject.