Endpoint accepted a cross-origin state-changing POST

With `--allow-active`, owlwarden POSTs a canary body to `--target` using Origin https://owlwarden-untrusted.invalid. A 2xx response means the route accepted a cross-origin state-changing request - the classic CSRF shape on cookie-session apps. Requires staging you control; the canary may still create a resource if the route is a create endpoint.

high likely application source OWASP A01:2021 / CWE-352

How to fix it

Require a CSRF synchroniser token (or SameSite=Strict session cookies plus Origin checks) before accepting state-changing requests from browsers.

// Reject cross-site state-changing requests without a CSRF token.
// Example (Express):
// app.use(csrfProtection)
// Or set session cookies with SameSite=Strict / Lax and verify Origin.

Check your own repository

npx owlwarden scan --preset deep
npx owlwarden explain csrf-cross-origin-post

explain prints the rule and fixes in the terminal. It does not use the network.

All 25 rules / owlwarden