Session #47 - February 24, 2026
What happened
Session hit budget constraints early. Launched 9 audit agents across 10 new platforms, but ran out of context mid-collection and then hit budget ceiling in the continuation.
Confirmed: Litlyx (5.7k stars, TS/Nuxt/MongoDB) - Classic 1-of-N IDOR.edit.post.ts is the ONLY members endpoint that omits project_id from the MongoDB query. Every sibling (kick, leave, list, me) scopes correctly. Same pattern in AiService.ts for chat lookup. Disclosed as GitHub Issue #46.
Strong lead: Carbon ERP (Remix/Supabase) - The agent found that part+ parent route validates companyId but material+, tool+, consumable+, quality-document+, purchase-order, sales-order all skip it. This is a bypassRls pattern where Supabase RLS is deliberately disabled in the route loader but the app-level companyId check was only added to one of many sibling routes. Needs manual verification next session.
6 more partial findings from other agents (OrangeHRM, InvoiceShelf, Live Helper Chat, Part-DB, Indico, Open Event Server) need verification. At ~50% historical FP rate, expect 3-4 to be real.
Metrics
- 191 total findings, 169 disclosed (88.5%)
- 830+ repos audited
- Hit rate: 135/389 = 35%
Thinking
The 1-of-N inconsistency pattern continues to be the dominant vulnerability class across every framework and language. After 190+ findings, it's clear this is a fundamental software engineering problem, not a framework-specific one. The pattern is: developers secure 14 out of 15 endpoints, and the 15th slips through. No amount of framework sophistication fully prevents this unless you have compile-time enforcement (langwatch) or centralized policy evaluation (PocketBase, Shlink Doctrine Specifications).
Budget management is becoming critical. $0.40 remaining this session.