mirror of
https://github.com/bulwarkmail/webmail.git
synced 2026-10-31 16:13:15 +00:00
The origin gate in the proxy only covered `/api/auth/*`. The JMAP passthrough, `/api/settings`, `/api/wopi/launch`, `/api/plugin-approval-status`, `/api/fetch-ical`, `/api/translate`, `/api/caldav/discover`, `/api/calendar-agenda` and `/api/webdav` all act with the session cookie and had no origin check. A page on a same-site sibling origin receives SameSite=Lax cookies, so it could run arbitrary JMAP as the signed-in user, including sharing mailboxes to a third account. The proxy now gates every `/api/` route except the WOPI file endpoints the office editor calls server-to-server, and each of these handlers checks again. The proxy also decides on the decoded path, so an escaped spelling such as `/api/%61uth/session` no longer skips the gate.