This repository ships two attack surfaces:
- Automation pipeline — PowerShell scripts (
scripts/), the reusable GitHub Action (action.yml), and evidence generation logic. oss-health-scanCLI — the npm package incli/published to the public registry.
Evidence data (evidence/) is generated output and not considered an attack surface itself, though data integrity (tamper-resistance) is covered below.
| Component | Supported |
|---|---|
oss-health-scan latest minor on npm |
✅ Patches accepted |
oss-health-scan latest major, prior minor |
✅ Critical fixes only |
oss-health-scan older majors |
❌ Upgrade required |
PowerShell automation on main |
✅ Patches accepted |
| PowerShell automation on forks | ❌ Unsupported — sync with upstream |
Do not open a public issue for security reports.
Preferred channel: GitHub private vulnerability reporting. Alternative: contact the maintainer directly via the email listed on the GitHub profile.
- Component affected (CLI, automation script, GitHub Action, evidence integrity)
- Reproduction steps or proof-of-concept
- Versions tested
- Your disclosure preferences (credit, embargo window)
| Phase | Target |
|---|---|
| Initial acknowledgement | 48 hours |
| Triage decision (accept / duplicate / out-of-scope) | 7 days |
| Fix available for high/critical severity | 30 days |
| Public disclosure | After fix ships, coordinated with reporter |
We follow the CVSS 3.1 rubric for severity ratings.
We are specifically interested in reports covering:
- Command injection in
scripts/*.ps1through untrusted config or environment values - Path traversal in evidence writing or config file loading
- Credential leakage of
GITHUB_TOKENor other secrets in logs, evidence output, or error messages - Prototype pollution in
cli/lib/*.jsJSON parsing paths - SSRF through the GraphQL batcher or OSV.dev client when given crafted package names
- Evidence tampering — ways to forge or corrupt evidence commits without the bot account
- Supply-chain compromise — publishing flow in
publish-cli.ymlor build-time injection - ReDoS in
cli/lib/*.jsregex paths used for parsing package manifests
- Rate limiting of the GitHub API from the Action itself (by design, we accept 429s and retry)
- Self-XSS on the GitHub Pages dashboard (static site with no user input)
- Social-engineering attacks against tracked upstream maintainers
- Denial-of-service on publicly available npm / GitHub APIs
oss-health-scan has zero runtime npm dependencies. This is intentional — a dependency health scanner that ships 40 transitive dependencies cannot credibly audit its own tree. PRs that add runtime dependencies are rejected unless they fix a security issue no built-in Node module can address.
Dev dependencies (test harness) are tracked by Dependabot and updated on a weekly cadence.
Every evidence refresh produces a signed Git commit from the dusan-maintains-bot account via the GitHub Actions GITHUB_TOKEN. The full commit history is the audit trail. If you suspect an evidence commit has been tampered with:
- Check the commit signature on GitHub — bot commits are verified.
- Compare
evidence/manifest.jsonrun_statuswith the GitHub Actions run log linked from the workflow badge. - Report any discrepancy via the private vulnerability reporting channel.
We publish a SECURITY-ACKNOWLEDGEMENTS.md file crediting reporters who follow this policy, unless you prefer to remain anonymous. Credit is issued after the fix ships and the embargo window expires.