Safeguard
Developer Tools•

How do you turn on private vulnerability reporting on GitHub?

Steps to enable GitHub private vulnerability reporting, who gets notified, what reporters see, and how to customise the report form for your project.

Safeguard Security Team
3 min read

Open the repository's Settings, go to Advanced Security under Security and quality, and click Enable next to Private vulnerability reporting. Researchers then see a Report a vulnerability button on the Advisories page. Check that the right people get notified, or reports will sit unseen.

Steps

  1. Open the repository's main page, then Settings. If you cannot see it, use the More dropdown.
  2. In the sidebar under Security and quality, click Advanced Security.
  3. Next to Private vulnerability reporting, click Enable.

GitHub's documentation describes these steps, and menu labels can change, so check the current page if yours looks different.

Who gets notified

Per the GitHub documentation, repository administrators and security managers are notified of new private reports if they watch the repository for all activity or subscribe to Security alerts, and have notifications enabled for the repository. To receive email, select email in your personal notification settings.

This is the step teams miss. Enabling the feature without checking notifications means reports arrive in a place nobody looks. Test it: submit a dummy report from a second account, and confirm who is alerted and how fast.

What reporters see

When enabled, researchers see a Report a vulnerability button on the repository's Advisories page. The default form asks for a summary, details, a proof of concept and an impact statement. Reporters can also submit through the REST API using a Markdown description.

Customise the form

You can add a VULNERABILITY_REPORT.yml or .yaml file to the repository's .github directory to change the form. You can also set a default form in the owner's .github repository, and the repository level form takes precedence. If GitHub cannot parse or validate the custom form, reporters see the default form.

Good fields to add: affected version, whether the issue was tested on the latest release, how the reporter wants to be credited, and a confirmation that they have not disclosed it elsewhere.

Pair it with a policy

The feature is a channel, not a policy. Add a SECURITY.md that says what you cover, how fast you aim to respond, and what reporters can expect. The documentation page I fetched does not cover that file, so check GitHub's separate guidance on it. For help on wording, see security.md or security.txt, which to publish.

After a report arrives

A private report can be turned into a draft security advisory, where you collaborate on a fix and later publish. The steps after that are in the post on fixing a vulnerability privately with a temporary private fork.

Quick check

Do we need to be a big project to use it?

No. It is a repository setting. Small projects benefit because it gives reporters a private route and a form without needing an email address on show.

Is this enough for a vulnerability disclosure process?

It covers intake. You still need triage, a fix process, advisory publishing and a policy. The other posts in this series cover those.

Safeguard's SBOM and dependency scanning, plus policies and gates, can help ensure that fixes you publish for your own project do not ship with other known vulnerable dependencies. The free scan is at gold.safeguard.sh/scan.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.