{"vuid":"VU#867593","idnumber":"867593","name":"Web servers enable HTTP TRACE method by default","keywords":["css","xss","xst","Cross-Site Tracing","HTTP TRACE"],"overview":"The HTTP TRACE method returns the contents of client HTTP requests in the entity-body of the TRACE response. Attackers could leverage this behavior to access sensitive information, such as cookies or authentication data, contained in the HTTP headers of the request.","clean_desc":"The HTTP TRACE method asks a web server to echo the contents of the request back to the client for debugging purposes. The HTTP TRACE method is described in the HTTP 1.1 standard (RFC 2616, section 9.8): <pre> 9.8 TRACE The TRACE method is used to invoke a remote, application-layer loop-\n   back of the request message. The final recipient of the request\n   SHOULD reflect the message received back to the client as the\n   entity-body of a 200 (OK) response. If the request is valid, the response SHOULD contain the entire\n   request message in the entity-body, with a Content-Type of\n   \"message/http\". Responses to this method MUST NOT be cached. </pre> As defined above, the complete request, including HTTP headers, is returned in the entity-body of a TRACE response. Using features that provide client-side HTTP protocol support, such as XMLHTTP ActiveX or XMLDOM scripting objects, a web site can cause browsers to issue TRACE requests. The site can read the TRACE response, including sensitive header information such as cookies or authentication data. When combined with cross-domain browser vulnerabilities (VU#244729, VU#711843, VU#728563), HTTP TRACE and client-side HTTP support can be leveraged by attackers to read sensitive header information from third-party domains. This technique has been termed \"Cross-Site Tracing,\" or XST, in a report published by WhiteHat Security. As noted in the report, the technique can be used to bypass the HttpOnly cookie attribute introduced in Microsoft Internet Explorer 6.0 SP1. HttpOnly blocks script access to the cookie property (document.cookie), but does not prevent a scripting object from reading the cookie out of an HTTP TRACE response.","impact":"Attackers may abuse HTTP TRACE functionality to gain access to information in HTTP headers such as cookies and authentication data. In the presence of other cross-domain vulnerabilities in web browsers, sensitive header information could be read from any domains that support the HTTP TRACE method.","resolution":"Disable HTTP TRACE support Based on site requirements and policy, consider disabling HTTP TRACE support in web servers. As a best practice, we recommend limiting input (\"whitelisting\") to the minimum set of methods required for proper operation of a given application. Apache HTTP Server To disable HTTP TRACE support, set TraceEnable Off. Alternatively, use the Apache mod_rewrite module to deny HTTP TRACE requests or to permit only the methods needed to meet site requirements and policy. TRACE requests can be disabled with the following mod_rewrite syntax: RewriteEngine On\nRewriteCond %{REQUEST_METHOD} ^TRACE\nRewriteRule .* - [F] Disabling HTTP TRACE with the TraceEnable directive is simpler, more direct, and requires less overhead than using mod_rewrite. Microsoft Internet Information Services (IIS) Use the URLScan tool to deny HTTP TRACE requests or to permit only the methods needed to meet site requirements and policy. The default configurations of Urlscan 2.5 (both baseline and SRP) only permit GET and HEAD methods.","workarounds":"","sysaffected":"","thanks":"This issue was researched and reported by Jeremiah Grossman of \nWhiteHat Security","author":"This document was written by Art Manion.","public":["http://www.ietf.org/rfc/rfc2616.txt","http://www.cgisecurity.com/whitehat-mirror/WH-WhitePaper_XST_ebook.pdf","http://www.microsoft.com/technet/security/tools/urlscan.asp","http://httpd.apache.org/docs/mod/mod_rewrite.html","http://msdn.microsoft.com/workshop/author/dhtml/httponly_cookies.asp","http://www.w3.org/DOM/","http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/dhtml_node_entry.asp","http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/cookie.asp","http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk/htm/xml_obj_ixmlhttprequest_8bp0.asp","http://www.apacheweek.com/issues/03-01-24#news","http://secunia.com/advisories/13090/","http://sunsolve.sun.com/search/document.do?assetkey=1-26-57670-1","http://sunsolve.sun.com/search/document.do?assetkey=1-66-200942-1","http://www-1.ibm.com/support/docview.wss?&uid=swg21201202"],"cveids":[""],"certadvisory":"","uscerttechnicalalert":null,"datecreated":"2002-12-06T21:30:28Z","publicdate":"2003-01-20T00:00:00Z","datefirstpublished":"2003-01-24T04:56:14Z","dateupdated":"2009-08-17T18:54:31Z","revision":48,"vrda_d1_directreport":"1","vrda_d1_population":"3","vrda_d1_impact":"2","cam_widelyknown":"17","cam_exploitation":"0","cam_internetinfrastructure":"5","cam_population":"15","cam_impact":"2","cam_easeofexploitation":"15","cam_attackeraccessrequired":"20","cam_scorecurrent":"3.7125","cam_scorecurrentwidelyknown":"4.21875","cam_scorecurrentwidelyknownexploited":"7.59375","ipprotocol":"","cvss_accessvector":"","cvss_accesscomplexity":"","cvss_authentication":null,"cvss_confidentialityimpact":"","cvss_integrityimpact":"","cvss_availabilityimpact":"","cvss_exploitablity":null,"cvss_remediationlevel":"","cvss_reportconfidence":"","cvss_collateraldamagepotential":"","cvss_targetdistribution":"","cvss_securityrequirementscr":"","cvss_securityrequirementsir":"","cvss_securityrequirementsar":"","cvss_basescore":"","cvss_basevector":"","cvss_temporalscore":"","cvss_environmentalscore":"","cvss_environmentalvector":"","metric":3.7125,"vulnote":null}