{"id":"CVE-2026-77281","summary":"Caddy: rewrite placeholder re-expansion","details":"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.","aliases":["GHSA-j8px-rmrx-76h9"],"modified":"2026-09-19T03:47:29.197043867Z","published":"2026-09-17T21:04:58.400Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-178","CWE-770","CWE-94"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77281.json"},"references":[{"type":"WEB","url":"https://github.com/caddyserver/caddy/releases/tag/v2.11.4"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/77xxx/CVE-2026-77281.json"},{"type":"ADVISORY","url":"https://github.com/caddyserver/caddy/security/advisories/GHSA-j8px-rmrx-76h9"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-77281"},{"type":"FIX","url":"https://github.com/caddyserver/caddy/commit/176b043b0104cee3f894023cd5a598ac29e404bb"},{"type":"FIX","url":"https://github.com/caddyserver/caddy/pull/7761"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/caddyserver/caddy","events":[{"introduced":"0"},{"fixed":"176b043b0104cee3f894023cd5a598ac29e404bb"},{"fixed":"e2eee6a7fce366321294c9c2a79f3146891dcbdf"}],"database_specific":{"source":["AFFECTED_FIELD","REFERENCES"],"extracted_events":[{"introduced":"0"},{"fixed":"2.11.4"}]}}],"versions":["v2.11.3","v2.11.2","v2.11.1","v2.11.0","v2.11.0-beta.2","v2.11.0-beta.1","v2.10.2","v2.10.1","v2.10.0","v2.10.0-beta.4","v2.10.0-beta.3","v2.9.1","v2.10.0-beta.2","v2.10.0-beta.1","v2.9.0","v2.9.0-beta.3","v2.9.0-beta.2","v2.9.0-beta.1","v2.8.4","v2.8.3","v2.8.2","v2.8.1","v2.8.0","v2.8.0-rc.1","v2.8.0-beta.2","v2.8.0-beta.1","v2.7.5","v2.7.4","v2.7.3","v2.7.2","v2.7.1","v2.7.0","v2.7.0-beta.2","v2.7.0-beta.1","v2.6.4","v2.6.3","v2.6.2","v2.6.1","v2.6.0","v2.6.0-beta.5","v2.6.0-beta.4","v2.6.0-beta.3","v2.6.0-beta.2","v2.6.0-beta.1","v2.5.2","v2.5.1","v2.5.0","v2.5.0-rc.1","v2.5.0-beta.1","v2.4.6","v2.4.5","v2.4.4","v2.4.3","v2.4.2","v2.4.1","v2.4.0","v2.4.0-rc.1","v2.4.0-beta.2","v2.4.0-beta.1","v2.3.0-rc.2","v2.3.0","v2.3.0-rc.1","v2.3.0-beta.1","v2.2.3","v2.2.1","v2.2.0","v2.2.0-rc.3","v2.2.0-rc.2","v2.2.0-rc.1","v2.1.1","v2.1.0","v2.1.0-beta.2","v2.1.0-beta.1","v2.0.0","v2.0.0-rc.3","v2.0.0-rc.2","v2.0.0-rc.1","v2.0.0-beta.20","v2.0.0-beta.19","v2.0.0-beta.18","v2.0.0-beta.17","v2.0.0-beta.16","v2.0.0-beta.15","v2.0.0-beta.14","v2.0.0-beta.13","v2.0.0-beta12","v2.0.0-beta11","v2.0.0-beta10","v2.0.0-beta9","v2.0.0-beta8","v2.0.0-beta7","v2.0.0-beta6","v2.0.0-beta5","v2.0.0-beta4","v2.0.0-beta3","v2.0.0-beta2","v2.0.0-beta1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-77281.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:L"}]}