Hop-by-hop header vulnerability in Go Standard Library Reverse Proxy
Blog post from Ory
The blog post examines vulnerabilities associated with reverse proxies using hop-by-hop headers, contrasting them with end-to-end headers and highlighting issues within the Go standard library's httputil.ReverseProxy. The flaw stems from the improper handling of hop-by-hop headers, which are intended only for the next hop on the request path but may be retained if specified in the Connection header, leading to potential security risks. The Go team addressed this vulnerability by introducing a new Rewrite hook in version 1.20 to replace the Director hook, enhancing the proxy's security design. The post also discusses the practical application of these changes in Ory Oathkeeper, a reverse proxy affected by this issue, and suggests that while the vulnerability's impact is generally minor, it could be exploited under specific conditions, urging developers to assess the trustworthiness of their reverse proxies.