On Thursday, August 9th, research was published at Black Hat USA 2018 on hoard poisoning attacks against websites deployed behind caching infrastructure [ 1 ]. These attacks could allow an attacker to inject arbitrary subject into a victim ’ randomness cache .
Fastly service configurations that do not take into circumstance the interaction between headers that backends use to select content may be vulnerable. This hazard can be in full mitigated via a VCL spot or by modifying backend configurations .
If one or more of your backends uses the contents of the
X-Original-Url HTTP request headers to decide which of your users ( or which security sphere ) it sends an HTTP answer for, you may be impacted by this class of vulnerability. If your site ’ south Fastly shape passes this heading to your backend, and does not factor the contents of this header into the effective edge hoard samara ( for exemplar explicitly or via the
Vary HTTP reaction header ), an attacker could potentially cause the boundary to store a response with arbitrary contented inserted to a victim ’ second cache.
An attacker might be able to poison a Fastly customer URL by sending an HTTP request to the locate that causes the affect backend to respond with an attacker-controlled response. The malicious reply object would be stored in the site ’ s cache at a poison URL. An attacker could then potentially lure a victim locate exploiter into browsing to the poisoned URL, where they would be served malicious content .
If your origin uses special values to select content for users or to otherwise blue-ribbon between security domains, we suggest that you consider the follow mitigations :
- Reconfiguring your origin server 
- Applying corresponding security updates   
- Stripping or normalizing these special values in VCL
For VCL guidance, consider setting the vulnerable headers to a known-safe value or unsetting the header. For case, the
X-Forwarded-Host header can be set to the value of the
Host header via the follow VCL snip :
set req.http.x-forwarded-host = req.http.host;
X-Original-URL header can be unset via the keep up VCL snip :
X-Rewrite-URL can be unset via the follow VCL snip :
alternatively, these values could be included in your cache key [ 6 ] or
Vary header [ 7 ] to prevent hoard of message across security domains. Please see our software documentation [ 6 ] for steering on manipulating your edge hoard key.
Our hold teams are standing by to assist with any questions or with implement workarounds if you believe you may be at risk due to this feat .
Customer inquiries can be directed to :
- Marc Eisenbarth, Director of Application Security – firstname.lastname@example.org
- Dana Wolf, Senior Vice President of Product – email@example.com
- Laine Campbell, Senior Vice President of Engineering – firstname.lastname@example.org
Related Advisories and Issue Reports
hypertext transfer protocol : //cve.mitre.org/cgi-bin/cvename.cgi ? name=CVE-2018-14773
hypertext transfer protocol : //hackerone.com/reports/487
[ 1 ] hypertext transfer protocol : //portswigger.net/blog/practical-web-cache-poisoning
[ 2 ] hypertext transfer protocol : //github.com/rails/rails/issues/29893
[ 3 ] hypertext transfer protocol : //www.drupal.org/SA-CORE-2018-005
[ 4 ] hypertext transfer protocol : //symfony.com/cve-2018-14773
Read more: Medical Website Hosting | RemedyConnect
[ 5 ] hypertext transfer protocol : //framework.zend.com/security/advisory/ZF2018-01
[ 6 ] hypertext transfer protocol : //docs.fastly.com/en/guides/manipulating-the-cache-key
[ 7 ] hypertext transfer protocol : //themedipia.com/blog/best-practices-using-vary-header