
Bug bounty hunting is full of emotional rollercoasters. One day you find a critical vulnerability, and the next day you receive the dreaded “Not Applicable” (N/A) status. This is the story of how I found a Priority 2 (P2) Denial of Service (DoS) bug on a managed cloud platform, got hit with an N/A, and successfully appealed to get it recognized, earning reputation points and proving the impact.
If you’ve ever had a valid bug rejected because it was an “upstream issue,” this article is for you.
The Target and The Recon
I was hunting on a public Bugcrowd program for a prominent Managed Cloud Database Provider. Their platform allows users to spin up various managed databases (let’s call the specific engine I was testing TargetDB, which acts as a modern, high-performance alternative to Redis).
While exploring the capabilities of TargetDB, I decided to test how it handles custom Lua scripts via the EVAL command. Lua scripting in Redis-like databases is a known attack surface, especially when it comes to resource exhaustion.
The Vulnerability: Uncontrolled Resource Consumption
During my research, I noticed that TargetDB implemented a custom Lua function let’s call it db.randstr(). This function was designed to generate random strings, presumably for testing or data generation.
However, I realized that this function lacked proper bounds checking. I asked myself: What happens if I ask the server to generate a string that is 1 Billion characters long?
Since the database operates entirely in-memory, forcing it to generate and return massive chunks of data could lead to extreme memory allocation, network congestion, and eventually, a full process crash.
The Exploit (Proof of Concept)
I quickly wrote a Python script to test my theory. Using a standard Redis client, I authenticated as a low-privileged database user and executed the following payload:
import redis
import time
# Connect to the managed database instance
r = redis.from_url("rediss://default:<password>@<target-host>:<port>")
print("[*] Triggering the payload...")
# Executing the custom function with an extremely large integer
# Payload: return db.randstr(1000000000)
start_time = time.time()
try:
r.execute_command("EVAL", "return db.randstr(1000000000)", "0")
except Exception as e:
print(f"[!] Exception caught: {e}")
print(f"[*] Response time: {time.time() - start_time} seconds")
The Impact was immediate and catastrophic:
- Latency Spike: The server latency shot up from a normal 0.17s to over 27 seconds.
- Network Exhaustion: The INFO STATS command revealed that total_net_output_bytes instantly spiked by approximately 1 GB in a single request.
- Process Crash: The most critical impact was the server uptime. The database engine couldn’t handle the memory allocation and crashed. The managed infrastructure automatically restarted the process, resetting the database uptime from 4761 seconds back to 1 second.
I had successfully found a single-command DoS that completely took down the managed instance. According to the Bugcrowd Vulnerability Rating Taxonomy (VRT), an Application-Level DoS with critical impact falls under P2.
The Plot Twist: “Not Applicable”
I recorded a video PoC, took screenshots of the INFO metrics, and submitted the report.
A few days later, the triage team responded. They confirmed that the bug was 100% reproducible and valid. However, they marked the report as Not Applicable (N/A).
Why? Because TargetDB is an open-source “upstream” project. The cloud provider’s policy stated that vulnerabilities existing in the upstream source code are not eligible for bounties, and researchers should report them directly to the open-source maintainers.
The Appeal: Knowing the Rules of the Game
Getting an N/A on a valid P2 bug is painful, especially because it doesn’t give you any reputation points for your hard work. But instead of giving up, I carefully read the program’s brief again.
I formulated an appeal based on their own rules:
- Material Impact: The program stated they cared about “real-world vulnerabilities with material security impact.” A 1GB network spike and a full instance crash definitely fit the bill.
- Platform Resilience: The provider marketed their service as having “high fault resilience.” A single authenticated user crashing the system directly contradicted this guarantee.
- Points over Bounty: I clarified that while I understood the bounty exclusion for upstream bugs, the finding was undeniably valid. I requested that the status be changed to Informational so I could at least receive the reputation points I earned.
Always be polite and professional when appealing. Use the program’s own terminology to make your case.
The Victory
A day later, the triage team got back to me. They agreed with my logic! Because the exploit had a demonstrable, severe impact on their managed infrastructure, they changed the status from “Not Applicable” to “Informational” and awarded me 20 Reputation Points.
Furthermore, having the cloud provider confirm the bug is “Reproducible” gave me incredible leverage when I subsequently reported the 0-day directly to the upstream open-source team.
Takeaways for Fellow Hunters
- Look beyond standard commands: Custom functions in databases (like Lua scripts or modules) are often less tested than core commands.
- Read the Policy: Knowing the difference between an Out-of-Scope target and an Upstream rule can save your report.
- Don’t be afraid to appeal: If your PoC is solid and proves real-world impact, politely argue your case. A “Not Applicable” isn’t always the end of the road.
- Take it upstream: If a cloud provider won’t pay you for an upstream bug, take that validated PoC straight to the vendor. You might get a CVE or a bounty from them directly!
Happy Hacking!
#BugBounty #CyberSecurity #EthicalHacking #Bugcrowd #Infosec #DoS #0day #PenetrationTesting #CloudSecurity #HackerCommunity

“Not Applicable” to Victory: How I Escalated a P2 DoS Vulnerability on Bugcrowd was originally published in InfoSec Write-ups on Medium, where people are continuing the conversation by highlighting and responding to this story.
SOCIAL SHARE CARD GENERATOR