diff --git a/projects/business/memory/bugs.md b/projects/business/memory/bugs.md index a9e5f75..733a33a 100644 --- a/projects/business/memory/bugs.md +++ b/projects/business/memory/bugs.md @@ -2,76 +2,25 @@ ## Open -### BUG-004: CORS allows requests from any origin (server-side) -- **Found by:** QA (Session 14) +### BUG-004: CSP blocks all inline JavaScript — CRITICAL ROOT CAUSE +- **Found by:** Hoid (QA via Playwright) - **Date:** 2026-02-14 -- **Severity:** MEDIUM -- **Description:** While the CORS headers correctly only return `Access-Control-Allow-Origin: https://docfast.dev` for requests from docfast.dev, requests from other origins (e.g., `https://evil.com`) still succeed server-side — the response just lacks the ACAO header. The browser will block the *response* from being read by JS, but the server still processes the request. This means an attacker can trigger signups from any origin (the key won't be readable in browser, but the signup side-effect still happens). For POST endpoints that cause state changes (signup, billing), consider adding server-side origin validation to reject non-allowed origins entirely. +- **Severity:** CRITICAL — blocks ALL frontend functionality +- **Description:** Helmet middleware sets Content-Security-Policy that blocks inline scripts (`script-src 'self'`). The landing page uses inline `