🌟 Excited to share! NASA has acknowledged and resolved a critical vulnerability (P1: Sensitive Data Exposure) that I reported through their Vulnerability Disclosure Program. 🚀
A big thank you to @GodfatherOrwa for your invaluable YouTube videos🙌
I stumbled across a simple IDOR yesterday after ordering something online. Here's how I found it:
After placing my order, I noticed the receipt URL contained two parameters:
`/order/receipt?orderId=12345&codeId={uuid}`
Opening this URL returned the full order details, including the shipping address and payment method.
Removing the `codeId` parameter returned an "invalid code" error.
Since the `codeId` was a UUID, it wasn't something I could simply increment.
But I wondered what would happen if I kept my valid UUID and changed the order ID.
My order:
`/order/receipt?orderId=12345&codeId={my-uuid}`
Another order:
`/order/receipt?orderId=12346&codeId={my-uuid}`
No luck. The request was rejected. Then I had another thought.
What if the backend wasn't validating the UUID properly? What if it accepted the order ID itself as the `codeId`?
So I tried:
`/order/receipt?orderId=12345&codeId=12345`
It worked. My full order details were returned, even though I hadn't supplied the UUID.
Now for the interesting part. I incremented both parameters:
`/order/receipt?orderId=12346&codeId=12346`
And there it was. Another customer's order details, shipping address, and payment method information. Because order IDs were sequential, this exposed thousands of customer records.
#BugBounty Tip:
Don't assume an endpoint is secure just because it uses UUIDs. When multiple parameters are involved, test how they're validated together, not just individually. A UUID is not an authorization check.
I found a critical auth bypass that resulted in a $10K bounty due to mass PII exfiltration. Here’s the technique:
The endpoint had 3 checks:
1. JWT auth at the gateway
2. Backend path validation
3. A trusted-client header check
The bypass came from defeating each one differently.
1. JWT check
Normal request:
`GET /api/employee/12345`
→ `401`
But paths ending in `.json` were treated as static resources and skipped JWT auth:
`GET /api/employee/12345.json`
→ Auth check bypassed
2. Path validation
Problem: The backend still needed a clean employee ID.
Payload:
`GET /api/employee/12345%23.json`
The gateway saw a `.json` path.
After decoding:
`12345#.json`
The downstream parser truncated at `#`, leaving:
`12345`
Same request, but different interpretation at each layer.
3. Trusted-client check
The endpoint also expected a client header:
`X-CLIENT-ID: WEBAPP`
Without it:
→ `400`
With it:
→ Request accepted
So the final chain was:
`.json` → bypass gateway auth
`%23` → preserve a valid backend ID
Client header → satisfy the final gate
#BugBounty tip:
When multiple layers handle the same request, map every security check and test whether the gateway, proxy, and backend interpret the URL differently.
Once you realize that anything can happen; sickness, death, lose your job... Literally, anything in the blink of an eye, you become very humble. Tables turn and that's how crazy life can get.
Always stay humble, and be grateful.
He was known as a teacher, yet on that occasion he proved himself a hero.
On 26 August 2026, Rajendra Dawadi, head of Tribhuvan Trishuli Secondary School in Nepal, obtained an urgent alert that a devastating sudden flood was advancing upon the Trishuli Valley.
He did not delay. Dawadi sounded the school bell, directed that the classrooms be emptied, instructed the drivers of the school buses to reverse their course, and conducted the pupils uphill to elevated ground. A few minutes thereafter the floodwaters passed through the locality and demolished the school structures.
Every one of the 1,643 pupils got away. Not one child from the school was carried off by the waters. Certain pupils and members of staff remained isolated on the higher ground for several days afterwards, yet they had avoided the immediate catastrophe.
A school principal in Nepal saved the lives of over 1,600 children with one decision.
He initially thought the school would be safe but made the last-minute call to evacuate instead. The entire school got destroyed by the flood minutes later, but every child lived.