[1.6.7] - 2026-05-29
Security
- AuthSessionService now enforces absolute + idle session expiration. Previously, server-side session entries in the in-memory
Maphad no TTL — they remained valid for the lifetime of the Node process, even after the 8-hour browser cookie expired or the user logged out. A captured session ID (via shared workstation, server-side log leak, future-XSS chain, etc.) could be replayed indefinitely until container restart.AuthSessionService.get()now lazily evicts on read, and a periodic sweep timer (5 min interval) bounds memory under steady-state. Defaults: 24h absolute lifetime + 8h idle (matches the cookiemaxAge). Configurable viaAUTH_SESSION_MAX_AGE_HOURSandAUTH_SESSION_IDLE_HOURS.onModuleDestroystops the timer on shutdown. Identified during the post-v1.6.6 codebase-wide security audit. 14 new unit tests cover lazy eviction, sweep behavior, env overrides, and the rolling-activity case.