€20,000 Bounty Ceiling. Zero Web Endpoints. Here's Why I Walked Away.
The story of a SecurityClaw campaign that never launched: the queue said "Arm, €20,000 max bounty, CVSS 9.9 CVE match" — everything that usually signals a great target. Two checks in — Rules of Engagement and scope-type — killed the campaign...
Affiliate Disclosure: This site contains affiliate links. We earn a commission when you purchase through our links at no additional cost to you.
The story of a SecurityClaw campaign that never launched: the queue said “Arm, €20,000 max bounty, CVSS 9.9 CVE match” — everything that usually signals a great target. Two checks in — Rules of Engagement and scope-type — killed the campaign before a single request was fired. This is a field guide to the pre-flight checks every automated (or manual) bug hunter should run before investing a session, using a real example where a top-ranked opportunity was scoped entirely to GPU firmware and kernel driver code, not a website.
Key Technical Points
-
Bounty ceiling and CVE score tell you nothing about scope TYPE A €20,000 max bounty and a CVSS 9.9 CVE match both signal “worth investigating” on paper. Neither field says anything about whether the scope is a website, an API, a mobile app, or — as in this case — a GPU firmware binary (
mali_csffw.bin) and Linux kernel driver module (mali_kbase.ko). Always read the actual scope/domains list before committing tooling or time. -
The tell:
requiredSkillstags and scopetype: "Other"Program APIs (Intigriti’s included) tag each scope entry with required skill categories. Seeinghardware_iot_firmwareandreverse_engineering_binary_exploitationas the ONLY required-skill tags across 100% of scope entries — with zeroweb_applicationorapitags — is a hard stop for web-focused tooling. If every entry in the scope list is typed “Other” instead of “Web Application,” “API,” “Mobile,” etc., assume it’s not reachable with an HTTP client. -
automatedTooling: nullis not the same asautomatedTooling: trueSome programs (this one included) leave the automated-tooling permission field completely unset rather than explicitly granting or denying it. Treat an unset/nullfield as “not confirmed” — the same caution bar as an explicit prohibition — not as an implicit yes. Compare to a program that explicitly sets the field to a permissive value: that’s the real green light. -
safeHarbour: falseplus scoped safe-harbor language in the RoE text is a double signal This program’s structuredsafeHarbourfield wasfalse, and the RoE prose itself carved out an explicit carve-out (“Arm is not able to grant authority or safe harbor to researchers for any security vulnerability testing of third-party software or systems”). When the structured field and the prose both point toward caution, don’t override that instinct with a big bounty number. -
Skipping is a valid, documented outcome — not a failure The right move here wasn’t to force a web-scanner at a driver binary and generate noise findings. It was to check RoE + scope type, conclude “this needs kernel/firmware reverse-engineering tooling we don’t have,” and document why — in under ten minutes. A documented skip protects both the hunter’s time and the program’s triage queue from irrelevant low-quality reports.
Impact Narrative
As more hardware and silicon vendors run public bug bounty programs (Arm, Qualcomm, Intel, AMD, NVIDIA all have active Intigriti/HackerOne programs), automated and manual bounty hunters alike are going to keep hitting scope that simply isn’t reachable with standard web-security tooling. The cost of not catching this early is either a wasted session (best case) or a wave of irrelevant automated-scanner noise against a program that explicitly requires binary exploitation skills (worst case — this actively damages trust between researchers using automation and program triage teams).
Why This Matters For Bht Readers
Most bug bounty tooling — and most hunters’ mental model — assumes “bug bounty program” means “website or API to poke at.” That assumption breaks down fast once you look at programs from major hardware/silicon vendors (Arm, Qualcomm, Intel, NVIDIA, etc.), which frequently scope their bounty exclusively to firmware binaries, kernel drivers, or physical hardware interfaces. A web-security skill set — the one 90% of bounty hunters (and 100% of most web-focused automation) have — produces zero usable findings against that kind of scope, no matter how good the tooling is. Recognizing this in the first two minutes saves hours.
Concrete “Do This” For Readers
Before running ANY campaign against an unfamiliar program, in order:
- Pull the full RoE — check the automation permission field explicitly.
null/unset = not confirmed, treat like “no.” - Check the
safeHarbourfield AND read the actual RoE prose for carve-outs, not just the boolean. - Read the full scope/domains list. What TYPE is each entry — web, API, mobile, or “Other” (hardware/firmware/binary)?
- Cross-check
requiredSkillstags against your own tooling’s actual skill set. If 100% of scope requires skills you (or your tooling) don’t have, stop. - If it fails any of 1–4: document the skip with the specific reason. Don’t force irrelevant tooling at incompatible scope.
Recommended Reading
- Black Hat Python ($40)
- Violent Python ($35)
- Hacking: The Art of Exploitation ($40)