Nikolai Gorchilov created TS-2954:
-------------------------------------

             Summary: cache poisoning due to 
proxy.config.http.use_client_target_addr = 1
                 Key: TS-2954
                 URL: https://issues.apache.org/jira/browse/TS-2954
             Project: Traffic Server
          Issue Type: Bug
          Components: Cache, DNS
            Reporter: Nikolai Gorchilov


Current implementation of proxy.config.http.use_client_target_addr opens a very 
simple attack vector for cache poisoning in transparent forwarding mode.

An attacker (or malware installed on innocent end-user computer) puts a fake IP 
for popular website like www.google.com or www.facebook.com in hosts file on PC 
behind the proxy. Once an infected PC requests the webpage in question, a 
cacheable fake response poisons the cache.

In order to prevent such scenarios (as well as [some 
others|http://www.kb.cert.org/vuls/id/435052]) Squid have implemented a 
mechanism known as [Host Header Forgery 
Detection|http://wiki.squid-cache.org/KnowledgeBase/HostHeaderForgery].

In short, while requesting an URL from origin server IP as hinted by the 
client, proxy makes independent DNS query in parallel in order to determine if 
client supplied IP belongs to requested domain name. In case of discrepancy 
between DNS and client IP, the transaction shall be flagged as non-cacheable to 
avoid cache poisoning, while serving the fake response to the client.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to