SECURITY.md generator — a vulnerability reporting policy for your repo

Enter your contact email, supported versions and the response times you can keep, and the tool writes a SECURITY.md that tells people how to report a vulnerability privately instead of in a public issue.

Live demo · real result from this tool

SECURITY.md

# Security policy ## Supported versions | Version | Supported || ------- | --------- || 2.x | Yes || 1.x | No | ## Reporting a vulnerability Please do not report security vulnerabilities through public issues, discussions or pull requests. - Use GitHub's private vulnerability reporting: [report a vulnerability](https://github.com/asharao/invoice-parser/security/advisories/new).- Email **security@example.com**. Please include: - the affected version(s) and component- steps to reproduce, or a proof of concept- the impact you believe it has

## What to expect

- We aim to acknowledge your report within 3 days.
- We aim to send an initial assessment within 10 days and keep you updated until it is resolved.
- We follow coordinated disclosure: please give us up to 90 days to release a fix before any public disclosure. We will credit you in the advisory unless you prefer otherwise.

Thank you for helping keep invoice-parser and its users safe.

Only promise response times you can keep. Private vulnerability reporting must be enabled in the repository's security settings.

Processed on your device — nothing is uploaded.

How to use the SECURITY.md generator

  1. Enter the Project name and the Security contact email. Use a shared address if more than one person handles reports.
  2. Keep Offer GitHub private vulnerability reporting ticked and fill in GitHub repository (owner/name) to add a link to the private report form.
  3. In Supported versions, write one line per release line, such as 2.x: yes or 1.x: no. Leave it empty if only the latest release gets fixes.
  4. Set Acknowledge within, Assessment within and Coordinated disclosure window, all in days.
  5. Optionally add a PGP key URL, then save the Markdown as SECURITY.md.

What it does and when to use it

Without a security policy, someone who finds a flaw in your project may report it in a public issue, where attackers can read it before a fix exists. SECURITY.md gives them a private route and sets expectations on both sides. Any public project with users should have one, and GitHub’s community profile checklist looks for it.

It sits alongside the other community files. The CONTRIBUTING.md generator handles ordinary contributions, the issue template generator can steer bug reports into a form, and the CODEOWNERS generator makes sure security fixes reach the right reviewers.

How it works

Each version line is split at : or |. Yes, true, ✓ and supported mark a version as supported; no, false, ✗ and unsupported do not; a line with neither is marked Unknown. The table is written in that order.

The reporting section lists the GitHub form (when ticked and a repository is given) and the email address with the PGP link. If both are missing, a placeholder asks you to add a private contact method. A fixed checklist asks reporters for the affected version, steps to reproduce and the impact. The “What to expect” section repeats your three time limits and promises credit in the advisory. GitHub explains where the file is shown in adding a security policy.

Worked examples

The defaults give this table and timeline:

| Version | Supported |
| ------- | --------- |
| 2.x | Yes |
| 1.x | No |

followed by “We aim to acknowledge your report within 3 days” and a 90-day disclosure window.

Email only, latest release only. Versions empty, GitHub option off, acknowledge within 1 day, PGP key URL set. The versions section says “Only the latest release receives security fixes.” and the only route is Email **security@example.com** (PGP key: https://example.com/pgp.asc). The timeline reads “within 1 day”.

Limits and tips

  • A line without a yes or no word, such as 3.0 beta, is marked Unknown in the table and a warning asks you to add yes or no.
  • The tool does not set up the email address or the PGP key; test that both work.
  • The file is a promise to reporters, not legal advice. Have someone review it if your organisation runs a formal bug bounty.

Frequently asked questions

Where should SECURITY.md live?
In the repository root, in .github, or in docs. GitHub then links it from the repository's Security tab and shows a link to it when someone opens a new issue.
What is GitHub private vulnerability reporting?
A form that lets a researcher send a report that only maintainers can see, and that can later become a published security advisory. The maintainer must switch it on in the repository's security settings; the link in the file does not work until then.
Which response times should I promise?
Only ones you can keep, including during holidays. A solo maintainer might choose a week to acknowledge. Changing the numbers later is fine, but missing them repeatedly damages trust with researchers.
What is a coordinated disclosure window?
The time you ask a reporter to wait before publishing details, so users can update first. 90 days is a common choice and the default here; you can set anything from 7 to 365 days.
Can I use this for a project that is not on GitHub?
Yes. Untick the GitHub option and the policy lists only your email address. The Markdown works on GitLab, Codeberg or a documentation site too.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close