Safeguard
Security Guides•

How do you report a vulnerability in an open source project?

Report privately, not in a public issue. Steps for GitHub private vulnerability reporting, what to include, and what to do if no private channel exists.

Safeguard Security Team
3 min read

Report privately, never in a public issue. On GitHub, open the repository's Security tab, choose Report a vulnerability, and fill in a summary, details, a proof of concept and an impact statement. If private reporting is off, follow the project's security policy or ask maintainers for a private contact.

Why private first

A public issue tells every reader about a flaw before users can update. Maintainers need time to understand, fix and release. The Open Source Guides even note that keeping communication public is the norm for ordinary contributions, with an explicit exception for security issues and serious conduct problems.

Steps on GitHub

GitHub documents this flow for private vulnerability reporting.

  1. Go to the repository's main page.
  2. Click the Security and quality tab. If it is not visible, open the dropdown menu and choose it from there.
  3. Click Report a vulnerability to open the advisory form.
  4. If the repository has a security policy, read it, since it appears above the form.
  5. Fill in the form.
  6. Optionally mark that you used AI assistance to find or write up the report.
  7. Submit the report.
  8. Optionally start a temporary private fork to begin a fix. GitHub states that the maintainer is the one who can merge changes from that fork.

What to include

By default the form asks for a summary, details, a proof of concept and an impact statement. GitHub's guidance is to give enough detail for maintainers to reproduce and assess the issue. A useful report answers:

  • Which versions are affected, as far as you can tell?
  • What are the exact steps to reproduce?
  • What can an attacker do, and under what conditions?
  • Do you have a suggested fix?

Keep the proof of concept minimal and safe. Demonstrate the flaw on your own test setup, not on someone else's deployment.

If there is no private channel

If private reporting is not enabled, GitHub says to follow instructions in the repository's security policy, or to create an issue asking maintainers for a preferred security contact. That issue must not contain any detail about the flaw. Say only that you have a security report and want to know where to send it.

After you submit

Expect a human on the other side with limited time. Be patient and professional, answer follow up questions, and do not publish details until the maintainer has had a reasonable chance to fix and release. Our post on responsible disclosure explains the timeline norms.

A short report template

Write four short parts. Summary: one sentence naming the component and the flaw class. Steps: numbered, so a stranger can repeat them on a clean install. Impact: what an attacker gains and what they need first. Suggested fix: optional, one or two sentences. Keep the tone neutral and factual, since maintainers read many reports and often work in spare time. Attach nothing that contains real user data.

Quick check

Can I get a CVE for what I found?

That is decided through the maintainer and the advisory process, not by the reporter alone. Ask in the private thread.

Should I post on social media while waiting?

No. Keep the details private until a fix is released and the maintainer agrees.

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.