CVE-2023-28709
📋 TL;DR
This vulnerability allows attackers to bypass request size limits in Apache Tomcat by submitting exactly maxParameterCount query parameters, potentially causing denial of service. It affects Tomcat versions 11.0.0-M2 to M4, 10.1.5 to 10.1.7, 9.0.71 to 9.0.73, and 8.5.85 to 8.5.87. Only systems with non-default HTTP connector configurations that enable maxParameterCount are vulnerable.
💻 Affected Systems
- Apache Tomcat
📦 What is this software?
Tomcat by Apache
Tomcat by Apache
Tomcat by Apache
Tomcat by Apache
Tomcat by Apache
Tomcat by Apache
⚠️ Risk & Real-World Impact
Worst Case
Complete denial of service rendering Tomcat instances unavailable, potentially affecting multiple applications hosted on the server.
Likely Case
Degraded performance or temporary service disruption due to resource exhaustion from bypassed upload limits.
If Mitigated
Minimal impact with proper request filtering, rate limiting, and monitoring in place.
🎯 Exploit Status
Exploitation requires knowledge of specific non-default configuration and ability to send requests with exact parameter count matching maxParameterCount.
🛠️ Fix & Mitigation
✅ Official Fix
Patch Version: Tomcat 11.0.0-M5, 10.1.8, 9.0.74, 8.5.88
Vendor Advisory: https://lists.apache.org/thread/7wvxonzwb7k9hx9jt3q33cmy7j97jo3j
Restart Required: Yes
Instructions:
1. Download patched Tomcat version from Apache website. 2. Stop Tomcat service. 3. Backup current installation. 4. Replace with patched version. 5. Restart Tomcat service.
🔧 Temporary Workarounds
Disable maxParameterCount
allRemove or increase maxParameterCount setting in server.xml to prevent reaching the limit.
Edit $CATALINA_HOME/conf/server.xml and remove or modify maxParameterCount attribute from Connector configuration
Implement request filtering
allUse web application filters or reverse proxy to limit query parameter counts before reaching Tomcat.
🧯 If You Can't Patch
- Implement strict rate limiting and request size validation at network perimeter
- Monitor for unusual parameter counts in web server logs and implement alerting
🔍 How to Verify
Check if Vulnerable:
Check Tomcat version and server.xml configuration for maxParameterCount setting in vulnerable version ranges.
Check Version:
java -cp $CATALINA_HOME/lib/catalina.jar org.apache.catalina.util.ServerInfo
Verify Fix Applied:
Verify Tomcat version is patched (11.0.0-M5+, 10.1.8+, 9.0.74+, 8.5.88+) and test with parameter-heavy requests.
📡 Detection & Monitoring
Log Indicators:
- Requests with unusually high number of query parameters
- Error logs showing parameter limit bypass attempts
Network Indicators:
- HTTP requests with exactly configured maxParameterCount query parameters
- Sudden increase in large POST/PUT requests
SIEM Query:
source="tomcat_access.log" | where parameter_count >= [configured_maxParameterCount]
🔗 References
- http://www.openwall.com/lists/oss-security/2023/05/22/1
- https://lists.apache.org/thread/7wvxonzwb7k9hx9jt3q33cmy7j97jo3j
- https://security.gentoo.org/glsa/202305-37
- https://security.netapp.com/advisory/ntap-20230616-0004/
- https://www.debian.org/security/2023/dsa-5521
- http://www.openwall.com/lists/oss-security/2023/05/22/1
- https://lists.apache.org/thread/7wvxonzwb7k9hx9jt3q33cmy7j97jo3j
- https://security.gentoo.org/glsa/202305-37
- https://security.netapp.com/advisory/ntap-20230616-0004/
- https://www.debian.org/security/2023/dsa-5521