ID CVE-2016-5386
Summary 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.
References
Vulnerable Configurations
  • Fedora 24
    cpe:2.3:o:fedoraproject:fedora:24
  • Fedora Project Fedora 23
    cpe:2.3:o:fedoraproject:fedora:23
  • Oracle Linux 7.0
    cpe:2.3:o:oracle:linux:7.0
  • Red Hat Enterprise Linux Server AUS 7.2
    cpe:2.3:o:redhat:enterprise_linux_server_aus:7.2
  • Red Hat Enterprise Linux Server EUS 7.2
    cpe:2.3:o:redhat:enterprise_linux_server_eus:7.2
  • RedHat Enterprise Linux Server 7.0
    cpe:2.3:o:redhat:enterprise_linux_server:7.0
  • Golang Go 1.6 -
    cpe:2.3:a:golang:go:1.6
CVSS
Base: 6.8 (as of 28-09-2016 - 09:58)
Impact:
Exploitability:
CWE CWE-284
CAPEC
  • Embedding Scripts within Scripts
    An attack of this type exploits a programs' vulnerabilities that are brought on by allowing remote hosts to execute scripts. The attacker leverages this capability to execute scripts to execute his/her own script by embedding it within other scripts that the target software is likely to execute. The attacker must have the ability to inject script into script that is likely to be executed. If this is done, then the attacker can potentially launch a variety of probes and attacks against the web server's local environment, in many cases the so-called DMZ, back end resources the web server can communicate with, and other hosts. With the proliferation of intermediaries, such as Web App Firewalls, network devices, and even printers having JVMs and Web servers, there are many locales where an attacker can inject malicious scripts. Since this attack pattern defines scripts within scripts, there are likely privileges to execute said attack on the host. Of course, these attacks are not solely limited to the server side, client side scripts like Ajax and client side JavaScript can contain malicious scripts as well. In general all that is required is for there to be sufficient privileges to execute a script, but not protected against writing.
  • Signature Spoofing by Key Theft
    An attacker obtains an authoritative or reputable signer's private signature key by theft and then uses this key to forge signatures from the original signer to mislead a victim into performing actions that benefit the attacker.
Access
VectorComplexityAuthentication
NETWORK MEDIUM NONE
Impact
ConfidentialityIntegrityAvailability
PARTIAL PARTIAL PARTIAL
nessus via4
  • NASL family Oracle Linux Local Security Checks
    NASL id ORACLELINUX_ELSA-2016-1538.NASL
    description From Red Hat Security Advisory 2016:1538 : An update for golang is now available for Red Hat Enterprise Linux 7. Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. The golang packages provide the Go programming language compiler. The following packages have been upgraded to a newer upstream version: golang (1.6.3). (BZ#1346331) Security Fix(es) : * 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 package, to specify a proxy server to use for HTTP and, in some cases, HTTPS requests. This meant that when a CGI-based web application ran, an attacker could specify a proxy server which the application then used for subsequent outgoing requests, allowing a man-in-the-middle attack. (CVE-2016-5386) Red Hat would like to thank Scott Geary (VendHQ) for reporting this issue.
    last seen 2019-02-21
    modified 2018-09-05
    plugin id 92687
    published 2016-08-03
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92687
    title Oracle Linux 7 : golang (ELSA-2016-1538) (httpoxy)
  • NASL family Fedora Local Security Checks
    NASL id FEDORA_2016-EA5E284D34.NASL
    description Security fix for CVE-2016-5386 AKA https://httpoxy.org/ Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen 2019-02-21
    modified 2016-10-24
    plugin id 92622
    published 2016-07-29
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92622
    title Fedora 24 : golang (2016-ea5e284d34) (httpoxy)
  • NASL family CentOS Local Security Checks
    NASL id CENTOS_RHSA-2016-1538.NASL
    description An update for golang is now available for Red Hat Enterprise Linux 7. Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. The golang packages provide the Go programming language compiler. The following packages have been upgraded to a newer upstream version: golang (1.6.3). (BZ#1346331) Security Fix(es) : * 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 package, to specify a proxy server to use for HTTP and, in some cases, HTTPS requests. This meant that when a CGI-based web application ran, an attacker could specify a proxy server which the application then used for subsequent outgoing requests, allowing a man-in-the-middle attack. (CVE-2016-5386) Red Hat would like to thank Scott Geary (VendHQ) for reporting this issue.
    last seen 2019-02-21
    modified 2018-11-10
    plugin id 92680
    published 2016-08-03
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92680
    title CentOS 7 : golang (CESA-2016:1538) (httpoxy)
  • NASL family Red Hat Local Security Checks
    NASL id REDHAT-RHSA-2016-1538.NASL
    description An update for golang is now available for Red Hat Enterprise Linux 7. Red Hat Product Security has rated this update as having a security impact of Moderate. A Common Vulnerability Scoring System (CVSS) base score, which gives a detailed severity rating, is available for each vulnerability from the CVE link(s) in the References section. The golang packages provide the Go programming language compiler. The following packages have been upgraded to a newer upstream version: golang (1.6.3). (BZ#1346331) Security Fix(es) : * 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 package, to specify a proxy server to use for HTTP and, in some cases, HTTPS requests. This meant that when a CGI-based web application ran, an attacker could specify a proxy server which the application then used for subsequent outgoing requests, allowing a man-in-the-middle attack. (CVE-2016-5386) Red Hat would like to thank Scott Geary (VendHQ) for reporting this issue.
    last seen 2019-02-21
    modified 2018-11-10
    plugin id 92693
    published 2016-08-03
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92693
    title RHEL 7 : golang (RHSA-2016:1538) (httpoxy)
  • NASL family Scientific Linux Local Security Checks
    NASL id SL_20160803_GOLANG_ON_SL7_X.NASL
    description The following packages have been upgraded to a newer upstream version: golang (1.6.3). Security Fix(es) : - 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 package, to specify a proxy server to use for HTTP and, in some cases, HTTPS requests. This meant that when a CGI-based web application ran, an attacker could specify a proxy server which the application then used for subsequent outgoing requests, allowing a man-in- the-middle attack. (CVE-2016-5386)
    last seen 2019-02-21
    modified 2018-12-28
    plugin id 92722
    published 2016-08-04
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92722
    title Scientific Linux Security Update : golang on SL7.x x86_64 (httpoxy)
  • NASL family Misc.
    NASL id ORACLE_ENTERPRISE_MANAGER_JUL_2017_CPU.NASL
    description The version of Oracle Enterprise Manager Grid Control installed on the remote host is missing a security patch. It is, therefore, affected by multiple vulnerabilities : - A flaw exists in the Bouncy Castle Java library due to improper validation of a point within the elliptic curve. An unauthenticated, remote attacker can exploit this to obtain private keys by using a series of specially crafted elliptic curve Diffie-Hellman (ECDH) key exchanges, also known as an 'invalid curve attack.' (CVE-2015-7940) - A flaw exists in the PathTools module for Perl in the File::Spec::canonpath() function that is triggered as strings are returned as untainted even when passing tainted input. An unauthenticated, remote attacker can exploit this to pass unvalidated user input to sensitive or insecure areas. (CVE-2015-8607) - An overflow condition exists in Perl in the MapPathA() function due to improper validation of user-supplied input. An unauthenticated, remote attacker can exploit this to cause a denial of service condition or the execution of arbitrary code. (CVE-2015-8608) - A remote code execution vulnerability exists in the Apache Struts component due to improper handling of multithreaded access to an ActionForm instance. An unauthenticated, remote attacker can exploit this, via a specially crafted multipart request, to execute arbitrary code or cause a denial of service condition. (CVE-2016-1181) - A flaw exists in Perl that is triggered during the handling of variables that appear twice in the environment (envp), causing the last value to appear in %ENV, while getenv would return the first. An unauthenticated, remote attacker can exploit this to cause variables to be incorrectly propagated to subprocesses, regardless of the protections offered by taint checking. (CVE-2016-2381) - A denial of service vulnerability exists in the Apache Commons FileUpload component due to improper handling of boundaries in content-type headers when handling file upload requests. An unauthenticated, remote attacker can exploit this to cause processes linked against the library to become unresponsive. (CVE-2016-3092) - A man-in-the-middle vulnerability exists in various components, known as 'httpoxy', due to a failure to properly resolve namespace conflicts in accordance with RFC 3875 section 4.1.18. The HTTP_PROXY environment variable is set based on untrusted user data in the 'Proxy' header of HTTP requests. The HTTP_PROXY environment variable is used by some web client libraries to specify a remote proxy server. An unauthenticated, remote attacker can exploit this, via a crafted 'Proxy' header in an HTTP request, to redirect an application's internal HTTP traffic to an arbitrary proxy server where it may be observed or manipulated. (CVE-2016-5385, CVE-2016-5386, CVE-2016-5387, CVE-2016-5388) - A carry propagating error exists in the OpenSSL component in the x86_64 Montgomery squaring implementation that may cause the BN_mod_exp() function to produce incorrect results. An unauthenticated, remote attacker with sufficient resources can exploit this to obtain sensitive information regarding private keys. Moreover, the attacker would additionally need online access to an unpatched system using the target private key in a scenario with persistent DH parameters and a private key that is shared between multiple clients. For example, this can occur by default in OpenSSL DHE based SSL/TLS cipher suites. (CVE-2017-3732) - An unspecified flaw exists in the UI Framework component that allows authenticated, remote attacker to have an impact on integrity. (CVE-2017-10091)
    last seen 2019-02-21
    modified 2018-07-16
    plugin id 101837
    published 2017-07-20
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=101837
    title Oracle Enterprise Manager Grid Control Multiple Vulnerabilities (July 2017 CPU) (httpoxy)
  • NASL family Amazon Linux Local Security Checks
    NASL id ALA_ALAS-2016-731.NASL
    description 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 package, to specify a proxy server to use for HTTP and, in some cases, HTTPS requests. This meant that when a CGI-based web application ran, an attacker could specify a proxy server which the application then used for subsequent outgoing requests, allowing a man-in-the-middle attack.
    last seen 2019-02-21
    modified 2018-04-18
    plugin id 93009
    published 2016-08-18
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=93009
    title Amazon Linux AMI : golang (ALAS-2016-731) (httpoxy)
  • NASL family Web Servers
    NASL id HTTP_HTTPOXY.NASL
    description The web application running on the remote web server is affected by a man-in-the-middle vulnerability known as 'httpoxy' due to a failure to properly resolve namespace conflicts in accordance with RFC 3875 section 4.1.18. The HTTP_PROXY environment variable is set based on untrusted user data in the 'Proxy' header of HTTP requests. The HTTP_PROXY environment variable is used by some web client libraries to specify a remote proxy server. An unauthenticated, remote attacker can exploit this, via a crafted 'Proxy' header in an HTTP request, to redirect an application's internal HTTP traffic to an arbitrary proxy server where it may be observed or manipulated.
    last seen 2019-02-21
    modified 2018-11-15
    plugin id 92539
    published 2016-07-25
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92539
    title HTTP_PROXY Environment Variable Namespace Collision Vulnerability (httpoxy)
  • NASL family Fedora Local Security Checks
    NASL id FEDORA_2016-340E361B90.NASL
    description Security fix for CVE-2016-5386 AKA https://httpoxy.org/ Note that Tenable Network Security has extracted the preceding description block directly from the Fedora update system website. Tenable has attempted to automatically clean and format it as much as possible without introducing additional issues.
    last seen 2019-02-21
    modified 2016-10-24
    plugin id 92615
    published 2016-07-29
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92615
    title Fedora 23 : golang (2016-340e361b90) (httpoxy)
  • NASL family SuSE Local Security Checks
    NASL id OPENSUSE-2016-979.NASL
    description This update addresses a security issue affecting code statically linked with go : - CVE-2016-5386: A remote attacker could set the HTTP_PROXY environment variable via Proxy header (bsc#988487)
    last seen 2019-02-21
    modified 2016-10-24
    plugin id 92933
    published 2016-08-12
    reporter Tenable
    source https://www.tenable.com/plugins/index.php?view=single&id=92933
    title openSUSE Security Update : go (openSUSE-2016-979) (httpoxy)
redhat via4
advisories
bugzilla
id 1353798
title CVE-2016-5386 Go: sets environmental variable based on user supplied Proxy request header
oval
AND
  • OR
    • comment Red Hat Enterprise Linux 7 Client is installed
      oval oval:com.redhat.rhba:tst:20150364001
    • comment Red Hat Enterprise Linux 7 Server is installed
      oval oval:com.redhat.rhba:tst:20150364002
    • comment Red Hat Enterprise Linux 7 Workstation is installed
      oval oval:com.redhat.rhba:tst:20150364003
    • comment Red Hat Enterprise Linux 7 ComputeNode is installed
      oval oval:com.redhat.rhba:tst:20150364004
  • OR
    • AND
      • comment golang is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538015
      • comment golang is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538016
    • AND
      • comment golang-bin is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538009
      • comment golang-bin is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538010
    • AND
      • comment golang-docs is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538011
      • comment golang-docs is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538012
    • AND
      • comment golang-misc is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538005
      • comment golang-misc is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538006
    • AND
      • comment golang-src is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538007
      • comment golang-src is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538008
    • AND
      • comment golang-tests is earlier than 0:1.6.3-1.el7_2.1
        oval oval:com.redhat.rhsa:tst:20161538013
      • comment golang-tests is signed with Red Hat redhatrelease2 key
        oval oval:com.redhat.rhsa:tst:20161538014
rhsa
id RHSA-2016:1538
released 2016-08-02
severity Moderate
title RHSA-2016:1538: golang security, bug fix, and enhancement update (Moderate)
rpms
  • golang-0:1.6.3-1.el7_2.1
  • golang-bin-0:1.6.3-1.el7_2.1
  • golang-docs-0:1.6.3-1.el7_2.1
  • golang-misc-0:1.6.3-1.el7_2.1
  • golang-src-0:1.6.3-1.el7_2.1
  • golang-tests-0:1.6.3-1.el7_2.1
refmap via4
cert-vn VU#797896
confirm
fedora
  • FEDORA-2016-340e361b90
  • FEDORA-2016-ea5e284d34
misc https://httpoxy.org/
Last major update 28-09-2016 - 11:40
Published 18-07-2016 - 22:00
Last modified 24-08-2017 - 21:29
Back to Top