You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
security: auth bypass via path-suffix matching in require_auth #329
require_auth (crates/trapfalld/src/auth.rs:244-250) decides public routes with path.ends_with("/setup"), ends_with("/auth/login"), ends_with("/auth/logout") and path.contains("/envelope/"). Dashboard routes embed user-controlled slugs (/api/0/projects/{slug}/...), and create_project does no slug validation.
Scenario
A project with slug setup or envelope makes GET/PATCH/DELETE /api/0/projects/setup and /api/0/projects/envelope/issues|search skip authentication.
Fix
Match exact paths (==) and /api/{id}/envelope/ by segment.
Reject reserved slugs on project create/update.
Preferably split public and protected routers instead of string matching in one middleware (protected_routes() already exists but is unused).
Add regression tests for slugs setup, envelope, login.
Activity
chore: merge develop into fix/327-query-param-auth