Wer einen Caddy-Server als Reverse-Proxy laufen hat, sollte heute Abend noch updaten. Caddy 2.11.2 bringt eine ganze Reihe Bugfixes — aber zwei davon haben es richtig in sich: ein Forward-Auth-CVE, das fremde Identitäten in geschützte Backends injizieren lässt, und ein Glob-Bypass im File-Matcher, der gezielte Pfade ausschleusen kann.
SCHOCK: Forward-Auth wird zur Privilege-Escalation
Die kritische Schwachstelle steckt im forward_auth-Directive. In bestimmten Konfigurationen lässt sich der Identity-Header so manipulieren, dass der Auth-Service einen falschen User zurückmeldet — und Caddy diese Identität ungefiltert ans Backend reicht. Das öffnet die Tür für Privilege Escalation in jedem Stack, der hinter Authelia, Authentik oder einem Custom-OIDC-Setup hängt.
UNGLAUBLICH: Glob-Bypass im File-Matcher
Die zweite CVE betrifft das File-Matching. Glob-Zeichen wurden nicht sauber gesäubert, sodass Angreifer mit kreativen URL-Pfaden Sicherheitsregeln umgehen konnten. Wer Static-File-Hosting kombiniert mit Pfad-basierten Restrictions betreibt, sollte den Patch direkt einspielen.
FEATURES: Zstd-Logrolling und Host-Rewrites
Funktional bringt 2.11.2 ein paar lang gewünschte Verbesserungen. Das Logrolling unterstützt jetzt zstd-Kompression — gz wird parallel deprecated und fliegt in einer der nächsten Versionen raus. Außerdem schreibt der Reverse-Proxy den Host-Header automatisch um, wenn das Upstream-Ziel HTTPS spricht. Damit verschwinden tausend kleine Tickets, in denen TLS-Backends nach einem korrekten SNI gemeckert haben.
GEFAHR! Dynamic Upstreams mit Health-Check
Wer dynamische Upstreams (etwa via SRV-DNS) nutzt, profitiert von einem stillen, aber wichtigen Fix: Caddy trackt dynamische Upstreams jetzt korrekt, sodass Passive Health Checking endlich auch dort greift. Vorher konnten ausgefallene Backends still weiter Requests bekommen, bis das nächste DNS-Refresh kam.
So patchst du Caddy in 4 MINUTEN!
Im Docker-Setup reicht ein docker pull caddy:2.11.2-alpine (oder direkt 2.11.3, das den Patch-Stand fortschreibt) und ein Restart. Bei nativen Installationen die Binary aus dem GitHub-Release austauschen und caddy reload aufrufen. Wer Caddy als systemd-Dienst betreibt, kann den Reload elegant ohne Verbindungs-Drop fahren — das ist einer der Gründe, warum man Caddy überhaupt nimmt.
EXTRA-TIPP: Forward-Auth-Konfig auditieren
Nach dem Update solltest du jede forward_auth-Directive einmal manuell prüfen. Caddy hat im Patch klargestellt, welche Header der Auth-Service liefern darf, und der neue Default ist strenger. Wer Custom-Header eingebaut hat, muss sie evtl. explizit in copy_headers aufnehmen.
FAZIT: Pflicht-Update für jeden Caddy-Frontend-Server
Caddy 2.11.2 ist nicht optional. Die Forward-Auth-Lücke trifft genau die Setups, die viele Selfhoster gerade als „sichere SSO-Schicht“ vor ihren Diensten haben. Update, kurzer Auth-Test mit einem fremden Account, und du bist durch.
Häufige Fragen
Welche Versionen sind betroffen?
Wie merke ich, ob mein Caddy angreifbar ist?
caddy version zeigt die installierte Version. Liegt sie unter 2.11.2, gilt dein Setup als verwundbar. Besonders kritisch: Caddyfile-Configs mit aktivem forward_auth-Directive zu einem Auth-Service. Ein simpler Test ist, mit einem fremden Auth-Token einen geschützten Endpoint aufzurufen — wenn er ohne Logout-Detection durchgeht, bist du betroffen.Wie behebe ich das Problem konkret?
Gab es schon aktive Angriffe?
Quellen: Caddy v2.11.2 Release, Caddy GitHub Releases.