How it works
The explanation, with examples you can run.
Make reporting easy
Publish a vulnerability disclosure policy (VDP) and a security.txt file. RFC 9116 defines the file, served at /.well-known/security.txt:
Contact: mailto:security@example.comContact: https://example.com/security/reportExpires: 2027-10-01T00:00:00ZEncryption: https://example.com/security/pgp-key.txtPolicy: https://example.com/security/policyAcknowledgments: https://example.com/security/thanksPreferred-Languages: enContact and Expires are required. The policy should say what is in scope (which domains, apps and APIs), what is not allowed (denial of service, social engineering of staff, accessing other users' data beyond the minimum needed to show the issue), what reporters can expect, and a safe-harbour statement that good-faith research under these rules won't be met with legal action. CISA publishes a template many organisations start from.
A bug bounty adds payments on top of a VDP. Start with a VDP; a bounty without the capacity to triage and fix quickly just produces a backlog.
Handle reports predictably
- Acknowledge within a few working days, with a real person's reply and a reference number.
- Triage: reproduce, assess severity in your context, and decide who owns the fix. Ask the reporter for detail if needed; they often know more about the issue than anyone else so far.
- Fix and verify, including checking for the same bug elsewhere in the codebase.
- Keep the reporter informed at agreed intervals, especially if the fix will take longer than planned.
- Disclose: publish an advisory, request a CVE if the software is used by others, and credit the reporter if they want it. Many programmes aim for around 90 days from report to public disclosure, sooner if fixed, with extensions agreed for hard cases.
- Learn: add a test, and ask why reviews, scanners or the threat model missed it.
Route reports to a monitored shared inbox or platform, not one person's email, and include disclosure in your incident response process, since a report may reveal that the flaw was already exploited.
When you are the finder
If you come across a flaw in someone else's software:
- Do only what is needed to confirm it. Don't access, modify or keep other people's data; don't degrade the service.
- Report through their published channel or
security.txt. If there is none, try a security contact, the vendor's support, or a coordinator such as a national CERT. - Give them reasonable time and don't publish details before a fix, unless they are unresponsive and users are at risk, and then only after coordinating with a CERT where possible.
- Know the law where you are. Safe-harbour terms in a policy are what protect good-faith research; without them, get advice before testing.
Check yourself
3 questions. Get them all right to finish this topic.
0 of 3 right so far. Get all three to finish this topic.