Bug: No CSRF protection on state-changing POST endpoints #11

Closed
opened 2026-02-15 23:01:49 +01:00 by clawbot · 0 comments
Collaborator

Summary

All state-changing POST routes (app create/delete/deploy, env var add/delete, etc.) lack CSRF token validation. The CORS middleware allows X-CSRF-Token header but no middleware generates or validates tokens.

Impact

An attacker could craft a malicious page that submits forms to the upaas instance while the victim is logged in, performing actions like deleting apps or triggering deployments.

Fix

Add gorilla/csrf middleware to the protected route group. Pass CSRF token to templates via template data. Include hidden CSRF field in all forms.

Location

internal/server/routes.go — protected route group
internal/middleware/middleware.go — add CSRF middleware

## Summary All state-changing POST routes (app create/delete/deploy, env var add/delete, etc.) lack CSRF token validation. The CORS middleware allows `X-CSRF-Token` header but no middleware generates or validates tokens. ## Impact An attacker could craft a malicious page that submits forms to the upaas instance while the victim is logged in, performing actions like deleting apps or triggering deployments. ## Fix Add `gorilla/csrf` middleware to the protected route group. Pass CSRF token to templates via template data. Include hidden CSRF field in all forms. ## Location `internal/server/routes.go` — protected route group `internal/middleware/middleware.go` — add CSRF middleware
sneak closed this issue 2026-02-16 05:53:38 +01:00
Sign in to join this conversation.
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: sneak/upaas#11
No description provided.