👋 Hello Hackers,
I’m back again with something you’ll definitely find interesting.
We all expect to find vulnerabilities during a pentest — that’s normal.
But not every bug comes from complex payloads or deep exploitation chains. 🔍
Sometimes the most damaging issues come from features developers intentionally shipped — features that work exactly as designed… yet still leak sensitive information. ⚠️

This is one of those cases. 💥
Target Overview
The application was an LLM-powered platform — basically a RAG system — allowing users to upload documents into a Knowledge Base and query them using the integrated LLM.
One key feature:
Users could create Spaces (directories) to organize uploaded documents and collaborate with other users.
This collaboration feature is where the vulnerability started.

The Feature Behavior
When creating a new Space, I enabled Shared Space

The UI then allowed me to invite collaborators — but only by typing their exact username.
Key point:
You must enter the full, correct username to invite someone, as there’s no listing or suggestion feature.

At least that’s how it looked.
Under the Hood: The Real Logic
Once I intercepted the request, the backend logic became very clear.

The system wasn’t adding users based on their username.
It was adding them based on a numeric user ID, and usernames were just displayed on the frontend.
Sequential user IDs + no validation = enumeration goldmine.
Any logical tester would try the obvious next step:
Increment the user ID and observe the response.
So I captured the request, sent it to Intruder, set the payload range to 1–200, and used the user_id parameter as the injection point

and boom! I got all the usernames that existed in the database — each ID returned the valid username associated with it.


This turned the collaboration feature into a full username harvesting endpoint.
Why This Matters
Username disclosure alone isn’t always critical, but in this application it became dangerous because it already has some other security issues like :
- No rate limiting on Login endpoint
- Weak Password policy
Chained those together and I got:
- Enumerate every valid username
- Bruteforce weak credentials
- Achieve account takeover with very little effort
A feature meant to support collaboration ended up enabling system-wide reconnaissance.
Root Cause Breakdown
The actual mistake was simple:
The backend was relaying solely on numeric user IDs, which were easy to enumerate just by incrementing the numbers.
This is basic access control failure, wrapped inside normal functionality.
No exotic exploit.
No complex payload.
Just understanding how the feature is supposed to work — and using that understanding to break it.
Conclusion
This vulnerability is a perfect reminder that:
- Features can be attack surfaces.
- Predictable identifiers are dangerous.
- Security must be enforced on the backend — never delegated to the UI.
A collaboration option with good intentions became an entry point for enumeration, brute-forcing, and potential account takeovers.
More findings coming soon. Stay tuned.