Security Advisory Process
Short orientation for everyone involved — reporters and maintainers — covering the full lifecycle of a vulnerability report in WackoWiki.
For reporters
- Check the Security Policy — make sure the issue actually qualifies.
- Open a GitHub Security Advisory (preferred) or email the maintainer.
- Describe the problem: how to reproduce, what the impact is. A fix suggestion is welcome but not required.
- Wait for acknowledgement (target: 48 h). No response after 7 days? Follow up.
- Verify the fix when the maintainer asks you to.
- Get credited in the published advisory (or stay anonymous — just say so).
For maintainers
1. Receive & triage
- Acknowledge the report (even if it's just “got it, looking at it”).
- Confirm it qualifies under the Security Policy. If it doesn't, explain why and close it as a regular issue if appropriate.
2. Develop the fix
- Work on the fix. Keep the reporter in the loop if you need clarification.
- Commit the fix to
master. Reference the GHSA ID in the commit message body:
fix: <short description> <what was wrong and what the patch does> ref: GHSA-xxxx-xxxx-xxxx
3. Verify with the reporter
- Message the reporter: «Fix is committed — can you confirm it closes the issue?»
- Wait 48 h.
- Confirmed → proceed to publish.
- Not closed / bypass found → fix again, re-verify, then publish.
- No response → publish anyway. You've given them the chance.
4. Publish the advisory
Fill in the GHSA fields:
| Field | What to put |
|---|---|
| Severity | CVSS v3.1 score |
| Vulnerable versions | e.g. < 1.2.3 |
| Patched version | Leave blank or master if no release yet |
| Fix commits | The commit SHA from step 2 |
| Description | What the vulnerability is, the impact, the fix |
| Credit | Reporter name, or “anonymous” if requested |
Publish. The GHSA auto-link in the commit resolves immediately.
5. Release & update
- Cut the release tag (hotfix or regular, depending on severity).
- Update the published GHSA: set “Patched version” to the release tag.
- Link the advisory in the release notes / changelog.
Decision tree (quick reference)
Report received
│
├─ Qualifies?
│ ├─ No → explain, close, optionally open regular issue
│ └─ Yes ↓
│
├─ Fix developed & committed
│
├─ Reporter verifies?
│ ├─ Yes → publish
│ ├─ No (bypass) → fix again → verify → publish
│ └─ No response (48 h) → publish
│
├─ Advisory published
│
└─ Release cut
└─ Update GHSA "Patched version" field
What NOT to do
- Don't publish the advisory before the fix is in
master. - Don't open a public GitHub Issue for an undisclosed vulnerability.
- Don't request a CVE. The GHSA ID is the reference.
- Don't block publication on reporter silence.
- Don't leave the “Patched version” field blank indefinitely — update it when the release ships.
Maintainer-only — operational details
Appendix: Maintainer Operational Notes
Adding a GHSA reference to an already-committed fix
If the fix was committed before the GHSA ID was issued:
Latest commit on the branch:
Older commit (e.g., second-to-last):
If you don't want to rewrite history (shared branch, or just to keep it simple):
Force-push safety
--force-with-leaseonly overwrites the remote if its tip matches your localorigin/<branch>. If someone else pushed in the meantime, it's rejected. For a solo project this is a no-op safety check, but make it a habit.EGit caveat: EGit may run a background
git fetchbetween your rebase and your push, which updatesorigin/masterto the new remote tip and silently nullifies the lease. For solo work this doesn't matter. On a shared repo, disable EGit's auto-fetch or usegit push --force-if-includes(Git 2.30+).Dangling commits after rebase
After a reword rebase, the old commit becomes unreachable. On GitHub it shows the banner “This commit does not belong to any branch on this repository.”
git log, PRs, or clones. Ignore it.GHSA auto-link timing
The GHSA ID in a commit message only resolves to a clickable link after the advisory is published. While the advisory is in draft, it renders as plain text. No re-push needed after publishing.
Updating the advisory after release
When you cut the release tag:
v1.2.4).You can edit a published GHSA at any time — there's no “re-publish” step.