TMAegisBeta
More rules for tomcat

Apache Tomcat

TMA-TOMCAT-10.10

Configure maxHttpHeaderSize

LowLevel 2Automatedtomcat

Description

The maxHttpHeaderSize limits the size of the request and response headers defined in bytes. No Connector may raise maxHttpHeaderSize above 8192 bytes (unset means the default 8192). Reads $CATALINA_BASE (default /opt/tomcat) and $CATALINA_HOME (default: $CATALINA_BASE); set them for packaged installs (e.g. CATALINA_BASE=/var/lib/tomcat10, CATALINA_HOME=/usr/share/tomcat10). XML comments are ignored.

How it is checked

Audit method: Shell command

shell
B=${CATALINA_BASE:-/opt/tomcat}; H=${CATALINA_HOME:-$B}; O=${TOMCAT_OWNER:-tomcat_admin}; G=${TOMCAT_GROUP:-tomcat}; x(){ [ -r "$1" ] || return 1; awk 'BEGIN{RS="<!--"} NR==1{print;next} {i=index($0,"-->"); if(i) print substr($0,i+3)}' "$1" | tr '\n\t\r' '   ' | tr '<' '\n'; }; s=$(x "$B/conf/server.xml") || exit 1; printf '%s\n' "$s" | awk 'function at(n,  r){if(match($0,"[[:space:]]" n "[[:space:]]*=[[:space:]]*[\"\047][^\"\047]*")){r=substr($0,RSTART,RLENGTH); sub(/^[^=]*=[[:space:]]*./,"",r); return r} return "-unset-"} /^Connector[[:space:]]/{v=at("maxHttpHeaderSize"); if(v!="-unset-" && (v+0<1 || v+0>8192)) bad=1} END{print bad?"noncompliant":"compliant"}'
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Set maxHttpHeaderSize="8192" on each <Connector> in server.xml. Restart Tomcat afterwards.

Properties

Operating systems
Any
Tags
tomcatdos
Reference
CIS Apache Tomcat 10.1 Benchmark v1.0.0 - 10.10 Configure maxHttpHeaderSize

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target tomcat --level 2