Skip to content

v0.4.1 — Security audit remediation

Choose a tag to compare

@mytrashcan mytrashcan released this 18 Jul 08:13
· 105 commits to main since this release

Security Fixes

🔴 Critical: Tracker authentication was documented but never implemented

The TRACKER_API_KEY env var existed in CORS headers and SECURITY.md since v0.3.0, but the tracker never validated it. Every REST and WebSocket endpoint was wide open.

Fix: Added constant-time API key comparison (tracker/src/api-key.ts) and middleware enforcing X-API-Key on REST POST/PUT/DELETE, stats, and dashboard SSE endpoints. WebSocket upgrades validate ?apiKey= query parameter. Backward compatible — when TRACKER_API_KEY is unset, auth is disabled (dev mode).

🟡 CI supply chain hardening

Replaced unpinned npx eslint . with npm run lint.

🟡 SDK WebSocket auth support

Browser SDK WsTrackerClient now appends ?apiKey= when configured.


Full audit report: Reviewed by Hermes Agent - deepseek-v4-flash