CVE-2026-27588 Overview
CVE-2026-27588 is an authorization bypass vulnerability in the Caddy web server platform. Caddy's HTTP host request matcher is documented as case-insensitive, but when configured with a large host list (more than 100 entries), it becomes case-sensitive due to an optimized matching path. This inconsistency allows an attacker to bypass host-based routing and any access controls attached to that route by simply changing the casing of the Host header.
Critical Impact
Attackers can bypass host-based access controls and routing rules by manipulating Host header casing, potentially gaining unauthorized access to protected resources or routes.
Affected Products
- Caddyserver Caddy versions prior to 2.11.1
Discovery Timeline
- 2026-02-24 - CVE CVE-2026-27588 published to NVD
- 2026-02-25 - Last updated in NVD database
Technical Details for CVE-2026-27588
Vulnerability Analysis
This vulnerability stems from an inconsistency in how Caddy handles host matching based on the size of the host list configuration. When administrators configure fewer than 100 host entries, Caddy performs case-insensitive matching as documented. However, when the host list exceeds 100 entries, Caddy switches to an optimized matching algorithm that inadvertently becomes case-sensitive. This behavioral difference creates a security gap where access controls can be circumvented.
The vulnerability is classified under CWE-178 (Improper Handling of Case Sensitivity), which describes scenarios where software fails to properly handle case differences in identifiers or data. In HTTP, the Host header is defined as case-insensitive per RFC specifications, making this a significant compliance and security issue.
Root Cause
The root cause lies in the performance optimization logic within Caddy's host matching implementation. When processing large host lists, the server uses a different code path designed for efficiency that fails to normalize the case of incoming Host headers before comparison. This results in a mismatch between documented behavior and actual implementation when scaling beyond 100 host entries.
Attack Vector
An attacker can exploit this vulnerability remotely over the network without requiring authentication or user interaction. The attack involves sending HTTP requests with modified Host header casing (e.g., EXAMPLE.COM instead of example.com) to bypass host-based routing rules and access controls. This is particularly dangerous in multi-tenant environments or where host-based routing is used to segregate access to different application areas.
For example, if a Caddy configuration restricts access to admin.example.com, an attacker could potentially access those resources by requesting Admin.Example.Com or similar case variations, effectively bypassing the intended access controls.
Detection Methods for CVE-2026-27588
Indicators of Compromise
- HTTP requests with unusual or mixed-case Host headers that don't match configured host entries
- Access log entries showing requests reaching backend resources that should be restricted by host-based routing
- Unexpected traffic patterns to protected routes from hosts with case-variant domain names
Detection Strategies
- Implement log analysis to identify Host headers with non-standard casing patterns
- Monitor for access to restricted routes that correlate with case-variant host requests
- Review Caddy configurations with more than 100 host entries for potential exposure
- Deploy web application firewall (WAF) rules to normalize or flag unusual Host header casing
Monitoring Recommendations
- Enable detailed access logging in Caddy to capture full Host header values
- Set up alerts for access to sensitive routes that may indicate bypass attempts
- Implement real-time traffic analysis to detect case manipulation in HTTP headers
- Periodically audit configurations to identify large host lists that may trigger the vulnerable code path
How to Mitigate CVE-2026-27588
Immediate Actions Required
- Upgrade Caddy to version 2.11.1 or later immediately
- Review access logs for evidence of exploitation attempts using case-variant Host headers
- Audit Caddy configurations to identify deployments with more than 100 host entries
- Consider implementing additional access controls at the application layer while patching
Patch Information
The vulnerability has been addressed in Caddy version 2.11.1. Users should upgrade to this version or later to remediate the issue. The fix ensures consistent case-insensitive host matching regardless of the size of the host list configuration.
For detailed information about the fix, refer to the GitHub Release v2.11.1 and the GitHub Security Advisory GHSA-x76f-jf84-rqj8.
Workarounds
- Reduce host list configurations to fewer than 100 entries where possible to avoid the optimized code path
- Implement an upstream reverse proxy or WAF that normalizes Host headers to lowercase before forwarding to Caddy
- Add application-layer access controls that do not rely solely on Caddy's host-based routing
- Use IP-based restrictions as an additional layer of protection for sensitive routes
# Example: Normalize Host headers using an upstream nginx proxy
# Add to nginx configuration before proxying to Caddy
set $normalized_host $host;
proxy_set_header Host $normalized_host;
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.


