Backport browser CSRF protection and gate automatic production rollout #19
No reviewers
Labels
No labels
bug
priority:high
status:active
status:inprogress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
erik/erikvancraddock.com!19
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "task-c6c678da-csrf"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Task:
task-c6c678da— Roll out Slugkit CSRF protection.4853d91b0a32b4a58eaf44e264ae929964bd9c8ainstead of replacing the site template, preserving branding, account/actor customizations and the existing federation TLS-proxy fix./cli/authentirely; make GET logout non-mutating and retain protected POST logout plus the single-use email callback exception.test:ci; release workflow no longer provisions a smoke-test container. Local image validation remains mandatory before publication and refuses CI execution.docs/csrf-rollout.md; strengthen release approval to explicitly cover automatic production deployment on Docker Hub publication.Verification
0.3.12, not published) passes public health, API health and the customized homepage checks; disposable fixture container removed./tmp/evc-csrf-{build,lint,local-tests,ci-tests,browser,image-build,image-check}.log.Production gates — intentionally still pending
This implementation PR does not complete the rollout task. Public HTTPS health currently reports
0.3.11; operator confirmed that Docker Hub publication auto-deploys production. No release tag, image publication, runtime configuration change, production mutation or deployment occurred.Before publication, require operator-owned evidence of actual proxy/backend topology, stored site URL and WebAuthn identity, replicas/restarts, signing-key secret-management mechanism, backup/restore and auto-deploy rollback control. A secret must only be provisioned through operator-owned management and never exposed in logs/source/chat. Require separate explicit production deployment approval and approved synthetic verification scope. Perform safe actual public positive/negative verification only after that approval. Task closure needs its own approval/close gate after rollout.
Related security-header rollout
task-dae6192bremains active and unchanged. This PR does not adopt header middleware/nonces or enable HSTS; later header adoption must retain token/meta/fetch wiring and avoid conflicting proxy/app policies. No CLI release, dependency audit remediation, OpenAPI changes, migration or legacy compatibility shim is included.Review update
608e9c27766ac7463365cc3200b201f653296353.task-c6c678da— Roll out Slugkit CSRF protection.Summary and security/quality assessment
4853d91b0a32b4a58eaf44e264ae929964bd9c8a; site branding, actor/profile forms and federation implementation are retained. Task comments and rollout documentation report the upstream prerequisite completed; this review did not independently re-query upstream.no-store.Acceptance criteria
Statuses apply to the original rollout task, not a reduced implementation-only substitute. Local evidence is identified explicitly.
.slugkit-site.jsonanddocs/csrf-rollout.md. This describes repository adoption, not deployment adoption./cli/authis removed without redirect/shim; GET logout is non-mutating; current credential guidance uses/settings/api-keysand API-only CLI login. Supported by implementation and local regression evidence, not a claim about the currently deployed image.0.3.12image build/validation./tmp/evc-csrf-ci-evidence.txtrecords successful Forgejo job #66 on the exact reviewed head. CI usestest:ci; release runtime smoke execution is removed; browser/federation/runtime testing stays local-only, with workflow-policy tests. Logs are historical evidence, not freshly rerun checks or public deployment verification.task-dae6192bremains active/unchanged; nonce/middleware coordination and separate HSTS decision are documented. Actual backup/restore readiness, auto-deployer rollback control and rollout evidence remain outstanding.Counts: 8 total; 4 met; 3 partial; 1 not-evident.
criteria_missing=4means all criteria not fully met (partial plus not-evident).Blocking issues (2)
Warnings (1)
Deployment-plan disposition and final verdict
0.3.11restores CSRF exposure. Safe synthetic verification and separate approval for destructive restore/rotation are appropriate. Operational evidence and approvals remain pending; the plan is not an executable production authorization yet.