CVE-2016-5386
published 2016-07-19CVE-2016-5386: The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications…
PriorityP350high8.1CVSS 3.1
AVNACHPRNUINSUCHIHAH
EPSS
5.22%
91.6th percentile
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect a CGI application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue.
Affected
11 ranges
| Vendor | Product | Version range | Fixed in |
|---|---|---|---|
| fedoraproject | fedora | — | — |
| fedoraproject | fedora | — | — |
| golang | go | — | — |
| golang | go | >= 1.0 < 1.6.3 | 1.6.3 |
| msrc | azl3_golang_1.23.7-1_on_azure_linux_3.0 | — | — |
| msrc | azl3_golang_1.23.9-1_on_azure_linux_3.0 | — | — |
| msrc | azl3_golang_1.24.3-1_on_azure_linux_3.0 | — | — |
| oracle | linux | — | — |
| redhat | enterprise_linux_server | — | — |
| redhat | enterprise_linux_server_aus | — | — |
| redhat | enterprise_linux_server_eus | — | — |
Detection & IOCsextracted from sources · hover to see the quote
- →Detect exploitation attempts by inspecting incoming HTTP requests for the presence of a 'Proxy' header, which CGI implementations may translate into the HTTP_PROXY environment variable ↗
- →Flag any CGI-spawned process where the HTTP_PROXY environment variable is set to an unexpected or external proxy address, indicating possible httpoxy exploitation ↗
- →Monitor outbound HTTP/HTTPS traffic from CGI processes for unexpected proxy usage or connections to attacker-controlled proxy servers, which may indicate successful httpoxy exploitation ↗
- →Vulnerable Go versions are 1.0 through 1.6.2 and 1.7rc1; flag use of these versions in CGI environments as high-risk ↗
- →The fix is tracked at https://golang.org/cl/25010 and https://golang.org/issue/16405; use these references to verify patch application in Go net/http/cgi package ↗
- ·Go HTTP servers that do NOT invoke CGI scripts are not directly vulnerable; the HTTP_PROXY var is not set in the server process's environment or in subprocesses launched directly by os.exec ↗
- ·The vulnerability affects Go's net/http package only when used in a CGI environment; both $HTTP_PROXY and $http_proxy are honoured for outbound requests ↗
CVSS provenance
nvdv3.18.1HIGHCVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
nvdv2.06.8MEDIUMAV:N/AC:M/Au:N/C:P/I:P/A:P
osv8.1HIGH
vendor_msrc8.1HIGH
vendor_redhat8.1HIGH
Stop checking back — get the weekly exploitation signal.
Every Monday: what got weaponized or added to CISA KEV in the last seven days — each CVE cross-linked to its PoC, Nuclei template, and detection rule. Free, one email a week, unsubscribe in one click.
OSV
Improper input validation in net/http and net/http/cgi
osv·2022-08-09
CVE-2016-5386 Improper input validation in net/http and net/http/cgi
Improper input validation in net/http and net/http/cgi
An input validation flaw in the CGI components allows the HTTP_PROXY environment variable to be set by the incoming Proxy header, which changes where Go by default proxies all outbound HTTP requests.
This environment variable is also used to set the outgoing proxy, enabling an attacker to insert a proxy into outgoing requests of a CGI program.
Read more about "httpoxy" here: https://httpoxy.org.
GHSA
GHSA-9hq4-732f-9vgf: The net/http package in Go through 1
ghsa_unreviewed·2022-05-13
CVE-2016-5386 [HIGH] CWE-284 GHSA-9hq4-732f-9vgf: The net/http package in Go through 1
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect a CGI application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue.
OSV
CVE-2016-5386: The net/http package in Go through 1
osv·2016-07-18·CVSS 8.1
CVE-2016-5386 [HIGH] CVE-2016-5386: The net/http package in Go through 1
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect a CGI application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue.
Red Hat
Go: sets environmental variable based on user supplied Proxy request header
vendor_redhat·2016-07-18·CVSS 8.1
CVE-2016-5386 [HIGH] CWE-20 Go: sets environmental variable based on user supplied Proxy request header
Go: sets environmental variable based on user supplied Proxy request header
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect a CGI application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue.
An input-validation flaw was discovered in the Go programming language built in CGI implementation, which set the environment variable "HTTP_PROXY" using the incoming "Proxy" HTTP-request header. The environment variable "HTTP_PROXY" is used by numerous web clients, including Go's net/http
Microsoft
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client dat
vendor_msrc·2016-07-12·CVSS 8.1
CVE-2016-5386 [HIGH] CWE-284 The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client dat
The net/http package in Go through 1.6 does not attempt to address RFC 3875 section 4.1.18 namespace conflicts and therefore does not protect CGI applications from the presence of untrusted client data in the HTTP_PROXY environment variable, which might allow remote attackers to redirect a CGI application's outbound HTTP traffic to an arbitrary proxy server via a crafted Proxy header in an HTTP request, aka an "httpoxy" issue.
FAQ: Is Azure Linux the only Microsoft product that includes this open-source library and is therefore potentially affected by this vulnerability?
One of the main benefits to our customers who choose to use the Azure Linux distro is the commitment to keep it up to date with the most recent and most secure versions of the open source libraries with which the distro i
No detection rules found.
No public exploits indexed.
Bugzilla
CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [fedora-all]
bugzilla·2016-07-18·CVSS 8.1
CVE-2016-5386 [HIGH] CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [fedora-all]
CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [fedora-all]
This is an automatically created tracking bug! It was created to ensure
that one or more security vulnerabilities are fixed in affected versions
of Fedora.
For comments that are specific to the vulnerability please use bugs filed
against the "Security Response" product referenced in the "Blocks" field.
For more information see:
http://fedoraproject.org/wiki/Security/TrackingBugs
When submitting as an update, use the fedpkg template provided in the next
comment(s). This will include the bug IDs of this tracking bug as well as
the relevant top-level CVE bugs.
Please also mention the CVE IDs being fixed in the RPM changelog and the
fedpkg commit message.
NOTE: this issue affect
Bugzilla
CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [epel-6]
bugzilla·2016-07-18·CVSS 8.1
CVE-2016-5386 [HIGH] CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [epel-6]
CVE-2016-5386 golang: Go: sets environmental variable based on user supplied Proxy request header [epel-6]
This is an automatically created tracking bug! It was created to ensure
that one or more security vulnerabilities are fixed in affected versions
of Fedora EPEL.
For comments that are specific to the vulnerability please use bugs filed
against the "Security Response" product referenced in the "Blocks" field.
For more information see:
http://fedoraproject.org/wiki/Security/TrackingBugs
When submitting as an update, use the fedpkg template provided in the next
comment(s). This will include the bug IDs of this tracking bug as well as
the relevant top-level CVE bugs.
Please also mention the CVE IDs being fixed in the RPM changelog and the
fedpkg commit message.
[bug automatically cre
Bugzilla
CVE-2016-5386 Go: sets environmental variable based on user supplied Proxy request header
bugzilla·2016-07-08·CVSS 8.1
CVE-2016-5386 [HIGH] CVE-2016-5386 Go: sets environmental variable based on user supplied Proxy request header
CVE-2016-5386 Go: sets environmental variable based on user supplied Proxy request header
Dominic Scheirlinck of VendHQ reports:
Many software projects and vendors have implemented support for the “Proxy” request header in their respective CGI implementations and languages by creating the “HTTP_PROXY” environmental variable based on the header value. When this variable is used (in many cases automatically by various HTTP client libraries) any outgoing requests generated in turn from the attackers original request can be redirected to an attacker controlled proxy. This allows attackers to view potentially sensitive information, reply with malformed data, or to hold connections open causing a potential denial of service.
The Go programming language can automatically populate the HTTP_PROX
http://rhn.redhat.com/errata/RHSA-2016-1538.htmlhttp://www.kb.cert.org/vuls/id/797896http://www.oracle.com/technetwork/security-advisory/cpujul2017-3236622.htmlhttp://www.oracle.com/technetwork/topics/security/linuxbulletinjul2016-3090544.htmlhttps://bugzilla.redhat.com/show_bug.cgi?id=1353798https://h20566.www2.hpe.com/hpsc/doc/public/display?docLocale=en_US&docId=emr_na-hpesbhf03770en_ushttps://httpoxy.org/https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/7WGHKKCFP4PLVSWQKCM3FJJPEWB5ZNTU/https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OR52UXGM6RKSCWF3KQMVZGVZVJ3WEESJ/http://rhn.redhat.com/errata/RHSA-2016-1538.htmlhttp://www.kb.cert.org/vuls/id/797896http://www.oracle.com/technetwork/security-advisory/cpujul2017-3236622.htmlhttp://www.oracle.com/technetwork/topics/security/linuxbulletinjul2016-3090544.htmlhttps://bugzilla.redhat.com/show_bug.cgi?id=1353798https://h20566.www2.hpe.com/hpsc/doc/public/display?docLocale=en_US&docId=emr_na-hpesbhf03770en_ushttps://httpoxy.org/https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/7WGHKKCFP4PLVSWQKCM3FJJPEWB5ZNTU/https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/OR52UXGM6RKSCWF3KQMVZGVZVJ3WEESJ/
2016-07-19
Published