Drawafish.com Postmortem: Whoops
9 months ago
- #postmortem
- #coding
- #security
- Incident Duration: ~6 hours (2AM–8AM EST)
- Impact: Username vandalism (slurs), offensive fish approved, safe fish removed
- Root Causes: Legacy 6-digit admin password exposed in past data breach, username update API lacked authentication, JWT not tied to specific user
- Mitigation: Manual reversal of mod actions, fixed authorization logic, backups reviewed
- Takeaway: Importance of security practices and code reviews, even in personal projects
- Vulnerabilities: Legacy admin password exposed, username update API without authentication, JWT not user-specific
- Recovery: Firebase backups (initially misconfigured), mod log used to undo changes, collaboration with a helpful user
- Reflection: Fun of high-velocity coding vs. necessity of security and reviews, LLMs as tools requiring oversight