]> git.ipfire.org Git - thirdparty/squid.git/commit - errors/templates/ERR_CONFLICT_HOST
Bug 3478: pt1: Host verify catching dynamic CDN hosted sites
authorAmos Jeffries <squid3@treenet.co.nz>
Fri, 3 Feb 2012 04:07:36 +0000 (21:07 -0700)
committerAmos Jeffries <squid3@treenet.co.nz>
Fri, 3 Feb 2012 04:07:36 +0000 (21:07 -0700)
commit2962f8b89cb4f73885a92e51d94814955e0f4ea4
treeb191db5fea5e1dd6ba7b4bbe49fe231e6c4b82f2
parente82ef8b87874cf9cbccd7c7f0476448e3177c624
Bug 3478: pt1: Host verify catching dynamic CDN hosted sites

This add a bit more leniency to the Host: header validation without
re-opening Squid to the cache poisoning risks involved.Resolving most
issues with websites using geo-based DNS results and/or short DNS TTL for
load balancing.

It alters host_verify_strict directive to allow requests which fail Host:
validation to continue through processing. The default remains OFF.

* blocks caching on the response to protect all other network clients
  against one compromised client spreading infections.

* forces the original (untrusted) destination IP to be used instead of
  any alternative Squid might find. Preventing Squid or peer DNS lookup
  being the point of vulnerability for the same-origin bypass. For any
  client to be vulnerable it must be vulnerable inside the browser agent
  where the original TCP connection is established.

Also add a new error template ERR_CONFLICT_HOST to replace the confusing
"invalid request" message with a clear explanation of the problem and
some client workarounds.

FUTURE WORK:
* adapt processing to allow these requests to safely be passed to peers.
* adapt caching to permit safe sharing between clients making identical
  requests to same sources.
errors/template.list
errors/templates/ERR_CONFLICT_HOST [new file with mode: 0644]
src/HttpRequest.cc
src/cf.data.pre
src/client_side_request.cc
src/err_type.h
src/forward.cc
src/structs.h