CVE-2026-27589
mediumpriority · track · 26EPSS 0.002 · 9 %ileEUUSEPSS · scored 2026-10-27
Caddy is an extensible server platform that uses TLS by default. Prior to version 2.11.1, the local caddy admin API (default listen `127.0.0.1:2019`) exposes a state-changing `POST /load` endpoint that replaces the entire running configuration. When origin enforcement is not enabled (`enforce_origin` not configured), the admin endpoint accepts cross-origin requests (e.g., from attacker-controlled web content in a victim browser) and applies an attacker-supplied JSON config. This can change the admin listener settings and alter HTTP server behavior without user intent. Version 2.11.1 contains a fix for the issue.
cvss
Technical severity, 0–10. One row per scoring source.
base score 0–10 · higher = more severe · hover a vector to decode
ssvc
A stakeholder decision — act, attend, or track — from exploitation and impact.
weaknesses
The CWE weakness classes this flaw belongs to.
affected products (3)
Products and version ranges known to be affected.
advisories (2)
Vendor and ecosystem advisories describing this.
- GHSA-879p-475x-rqh2Caddy is vulnerable to cross-origin config application via local admin API /load 2026-02-24ghsa · osvUS
commit: e0f8d9b2047af417d8faf354b675941f3dac9891 (as-of 2026-02-04) channel: GitHub security advisory (per SECURITY.md) ## summary The local caddy admin API (default listen `127.0.0.1:2019`) exposes a state-changing `POST /load` endpoint that replaces the entire running configuration. When origin enforcement is not enabled (`enforce_origin` not configured), the admin endpoint accepts cross-origin requests (e.g., from attacker-controlled web content in a victim browser) and applies an attacker-supplied JSON config. this can change the admin listener settings and alter HTTP server behavior without user intent. ## Severity Medium Justification: - The attacker can apply an arbitrary caddy config (integrity impact) by driving a victim’s local admin API. - Exploitation requires a victim running caddy with the admin API enabled and visiting an attacker-controlled page (or otherwise issuing the request from an untrusted local client). ## Affected component - `caddyconfig/load.go: adminLoad.handleLoad` (`/load` admin endpoint) - Pinned callsite: https://github.com/caddyserver/caddy/blob/e0f8d9b2047af417d8faf354b675941f3dac9891/caddyconfig/load.go#L73 ## Reproduction Attachment: `poc.zip` (integration harness) with canonical and control runs. ```bash unzip -q -o poc.zip -d poc cd poc/poc-F-CADDY-ADMIN-LOAD-001 make test ``` Expected output (excerpt): ``` [CALLSITE_HIT]: adminLoad.handleLoad [PROOF_MARKER]: http_code=200 admin_moved=true response_pwned=true ``` Control output (excerpt): ``` [NC_MARKER]: http_code=403 load_blocked=true admin_moved=false response_pwned=false ``` ## Impact An attacker can replace the running caddy configuration via the local admin API. Depending on the deployed configuration/modules, this can: - Change admin listener settings (e.g., move the admin listener to a new address) - Change HTTP server behavior (e.g., alter routes/responses) ## Suggested remediation Ensure cross-origin web content cannot trigger `POST /load` on the local admin API by default, for example by: - Enabling origin enforcement by default for unsafe methods, and/or - Requiring an unguessable token for `/load` (and other state-changing admin endpoints). [poc.zip](https://github.com/user-attachments/files/25079818/poc.zip) [PR_DESCRIPTION.md](https://github.com/user-attachments/files/25079820/PR_DESCRIPTION.md)
- GO-2026-4537Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v22026-02-26vendor · osvUS
Caddy is vulnerable to cross-origin config application via local admin API /load in github.com/caddyserver/caddy/v2
also known as (5)
Other names and identifiers for this entity.
sources
Which sources assert this record, and when.
references (13)
External citations — patches, advisories, analysis.
- https://github.com/caddyserver/caddy/releases/Patchcnnvd
- https://github.com/caddyserver/caddy/releases/tag/v2.11.1cnnvd
- https://github.com/caddyserver/caddy/security/advisories/GHSA-879p-475x-rqh2cnnvd
- https://github.com/user-attachments/files/25079818/poc.zipcnnvd
- https://github.com/user-attachments/files/25079820/PR_DESCRIPTION.mdcnnvd
- https://github.com/caddyserver/caddy/releases/tag/v2.11.1enisa_euvd
- https://github.com/caddyserver/caddy/security/advisories/GHSA-879p-475x-rqh2enisa_euvd
- https://github.com/user-attachments/files/25079818/poc.zipenisa_euvd
Attackers weaponise vulnerabilities like this against internet-exposed services. See what is exposed on your perimeter with a free passive scan.
Free scan