Turn off TRACE (Automated)
Description
The HTTP TRACE verb provides debugging and diagnostics information for a given request.
Rationale
Diagnostic information, such as that found in the response to a TRACE request, often contains sensitive information which may useful to an attacker. By preventing Tomcat from providing this information, the risk of leaking sensitive information to a potential attacker is reduced.
Audit Procedure
Perform the following to determine if the server platform, as advertised in the HTTP Server header, has been changed:
- Locate all Connector elements in
$CATALINA_HOME/conf/server.xml. - Ensure each Connector does not have an
allowTraceattribute or, if present, theallowTraceattribute is NOT set true.
Perform the following for each application hosted within Tomcat with a web-app root element in the web.xml:
- Locate each application instance of web.xml in
$CATALINA_HOME/webapps/<app_name>/WEB-INF/web.xml. - Ensure a
security-constraint/web-resource-collectionexists the child value pairings:web-resource-namewith a value of restricted methods.url-patternwith a value of/*.http-methodwith a value of TRACE.
Remediation
Perform the following to prevent Tomcat from accepting a TRACE request:
- Set the
allowTraceattribute for each Connector specified in$CATALINA_HOME/conf/server.xmlto false.
<Connector ... allowTrace="false" />
Alternatively, ensure the allowTrace attribute is absent from each Connector specified in $CATALINA_HOME/conf/server.xml.
- Add the following as a child of the web-app root element, if present, in each applications web.xml:
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted methods</web-resource-name>
...
<http-method>TRACE</http-method>
...
</web-resource-collection>
...
</security-constraint>
Default Value
Tomcat does not allow the TRACE HTTP verb by default. Tomcat will only allow TRACE if the allowTrace attribute is present and set to true.
References
CIS Controls
v8:
- 16.7 Use Standard Hardening Configuration Templates for Application Infrastructure
- Use standard, industry-recommended hardening configuration templates for application infrastructure components. This includes underlying servers, databases, and web servers, and applies to cloud containers, Platform as a Service (PaaS) components, and SaaS components. Do not allow in-house developed software to weaken configuration hardening.
v7:
- 13.2 Remove Sensitive Data or Systems Not Regularly Accessed by Organization
- Remove sensitive data or systems not regularly accessed by the organization from the network. These systems shall only be used as stand alone systems (disconnected from the network) by the business unit needing to occasionally use the system or completely virtualized and powered off until needed.
Profile Applicability
- Level 1