blob: e11ffc6b345a37b423cf5282b62ec859797c4f9f [file] [log] [blame]
modules:
- module: std
versions:
- fixed: 1.17.12
- introduced: 1.18.0
fixed: 1.18.4
vulnerable_at: 1.18.3
packages:
- package: net/http
symbols:
- Header.Clone
description: |
Client IP adresses may be unintentionally exposed via X-Forwarded-For
headers.
When httputil.ReverseProxy.ServeHTTP is called with a Request.Header map
containing a nil value for the X-Forwarded-For header, ReverseProxy sets
the client IP as the value of the X-Forwarded-For header, contrary to
its documentation.
In the more usual case where a Director function sets the
X-Forwarded-For header value to nil, ReverseProxy leaves the header
unmodified as expected.
published: 2022-07-28T17:23:05Z
credit: Christian Mehlmauer
references:
- fix: https://go.dev/cl/412857
- fix: https://go.googlesource.com/go/+/b2cc0fecc2ccd80e6d5d16542cc684f97b3a9c8a
- report: https://go.dev/issue/53423
- web: https://groups.google.com/g/golang-announce/c/nqrv9fbR0zE
cve_metadata:
id: CVE-2022-32148
cwe: 'CWE-200: Information Exposure'
description: |
Improper exposure of client IP addresses in net/http before Go 1.17.12
and Go 1.18.4 can be triggered by calling
httputil.ReverseProxy.ServeHTTP with a Request.Header map containing a
nil value for the X-Forwarded-For header, which causes ReverseProxy to
set the client IP as the value of the X-Forwarded-For header.