CVE-2026-77281 PUBLISHED

Caddy: rewrite placeholder re-expansion

Assigner: GitHub_M
Reserved: 20.08.2026 Published: 17.09.2026 Updated: 17.09.2026

Caddy is an extensible server platform that uses TLS by default. In version 2.11.3 and earlier, three configuration-dependent weaknesses affect the handler and placeholder layer. In modules/caddyhttp/rewrite/rewrite.go, Rewrite.Rewrite() can pass attacker-controlled replacement bytes through buildQueryString for a second placeholder expansion when a rewrite URI ends with a literal question mark, allowing injected environment or request-variable placeholders to disclose data and, when the file provider is registered, allowing injected file placeholders to disclose readable files. The issue is fixed in version 2.11.4.

Metrics

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L
CVSS Score: 6.5

Product Status

Vendor caddyserver
Product caddy
Versions
  • Version < 2.11.4 is affected

References

Problem Types

  • CWE-94: Improper Control of Generation of Code ('Code Injection') CWE
  • CWE-178: Improper Handling of Case Sensitivity CWE
  • CWE-770: Allocation of Resources Without Limits or Throttling CWE