Post
Post
V12 on X: "Changing one letter bypassed an entire admin API in @huggingface chat. One request could trigger bulk internal exports of every user’s private chats, completely unauthenticated. Here’s how. 🧵"
Conversation
V12 @v12sec Changing one letter bypassed an entire admin API in @huggingface chat. One request could trigger bulk internal exports of every user’s private chats, completely unauthenticated. Here’s how. 🧵 8:35 PM · Nov 5, 2026 · 136.5K Views 29
V12 @v12sec Nov 5 Some bugs almost explain themselves. Every `/admin/**` endpoint relied on a single check: if (event.url.pathname.startsWith("/admin/")) -> requireAdminSecret() Bypass this string comparison, and the entire administrative API became exposed. 4 V12 @v12sec Nov 5 Take a request: `POST /%61dmin/export` The authentication hook compared `/%61dmin/` to `/admin/` SvelteKit decoded `%61` to `a` before routing and matched `/admin/export` Authentication check is skipped, but the admin handler still executes. Fully unauthenticated. 1 V12 @v12sec Nov 5 `/admin/export` would aggregate conversations from every session for a chosen model, including prompts and replies. Stored in /tmp/ then uploaded to the host’s dataset destination. The attacker doesn’t directly receive the exported data, but can trigger this aggregation 1 V12 @v12sec Nov 5 Found by @RenwaX23 using V12. V12 is our autonomous AI hacker. Find bugs like this in your code: v12.sh From v12.sh 1
Misha @misha_130 Nov 5 This shit has to be vibe coded hard 4