3531a6694c
The item said SameSite=Lax was "enough for modern browsers" but wrong "on a downgrade to an old browser or unusual proxies", which named the least likely scenario and missed the most likely one: SameSite is scoped to the registrable domain, not the origin. The panel runs on a subdomain, so any page anywhere under the operator's domain — the CMS on www, a stale CNAME, a neighbouring service — is same-site and its POST carries the session cookie. It also said nothing about what a successful CSRF would actually buy. Almost everything is a blind write the attacker cannot read, except POST /domains/import: multipart is a CORS-simple content type, and a domain export carries a DKIM key and working SASL passwords, so an attacker uploads credentials they already know and gains a sending identity on someone else's relay. That single endpoint, not the destructive ones, is what sets the bar. The options now carry their cost and their limits: an Origin/Sec-Fetch-Site check in the phase 14.A middleware closes the subdomain case for ~15 lines, while a naive double-submit token does not close it at all, since a same-site neighbour can write the parent domain's cookie. Route facts, cookie attributes, the export struct and the absence of any hx-post were checked against the code rather than assumed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>