Who can read your data
An unauthenticated GET to /api/customers returned 3 full rows (email, plan, stripe_customer_id) with no session cookie and no API key. The endpoint has no auth middleware.
01 · Proof (before)
3 customer rows including email, plan — returned to an anonymous request. Nobody was logged in.
02 · The fix
fix/shipcheck-data_read-2026-07-24Adds session verification before the query and returns only the fields the signed-in customer owns.
03 · Proof (after)
Anonymous request now returns 401. Account A sees only Account A. ✓ verified on preview