Skip to content

fix(security): SUM-SEC-01 — reject deactivated users at session resolve - #87

Merged
CHINMAYVIVEK merged 3 commits into
devfrom
fix/SUM-SEC-01-session-active-check
Sep 7, 2026
Merged

fix(security): SUM-SEC-01 — reject deactivated users at session resolve#87
CHINMAYVIVEK merged 3 commits into
devfrom
fix/SUM-SEC-01-session-active-check

Conversation

@ATRIwOX

@ATRIwOX ATRIwOX commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Fix SUM-SEC-01: resolveSession JOINs sys.session with core.user and requires active = true; on failure deletes the session row, clears sumeru_session, and returns uid 0
  • Middleware clears the cookie when a session is invalidated; RPC returns 401 for deactivated cookie sessions
  • SUM-SEC-02 (partial): SetUserPasswordHash calls DestroySessionsForUser to revoke all DB sessions on password change
  • Harden session lifetime: browser-scoped session cookie, 24h DB ceiling, 8h idle slide; last-tab sendBeacon logout
  • Consolidate auth into auth.go + login.go; remove auth_session.go

Test plan

  • go test ./test/core/server/web/... -count=1
  • SUMERU_TEST_DSN='...' go test -tags integration ./test/core/server/web/... -run 'TestInactive|TestPassword|TestResolve' -v
  • Manual: log in → admin sets core.user.active = false → next /web request redirects to login; /api/rpc returns 401; cookie cleared
  • Manual: password change removes all sys.session rows for that user
  • Manual: closing last Sumeru tab triggers logout beacon

Session resolution now JOINs core.user and requires active=true; inactive
or expired sessions are deleted and the cookie is cleared on the next
request. Also revokes all sessions on password change, shortens session
TTL, ends browser sessions on last tab close, and consolidates auth code.
@ATRIwOX
ATRIwOX requested a review from CHINMAYVIVEK September 7, 2026 03:32
@ATRIwOX ATRIwOX self-assigned this Sep 7, 2026
@ATRIwOX
ATRIwOX requested a review from a team September 7, 2026 03:32
Session resolution JOINs core.user and requires active=true; inactive or
expired sessions are deleted and the cookie is cleared. Includes integration
tests and removes SUM-SEC-02 scope from this branch.
@CHINMAYVIVEK
CHINMAYVIVEK merged commit 2c81eaa into dev Sep 7, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants