Skip to content

docs(security): OWASP Top 10:2025 assessment; private vulnerability reporting - #47

Merged
carbon-evolution merged 1 commit into
mainfrom
docs/owasp-assessment
Oct 18, 2026
Merged

carbon-evolution merged 1 commit into
mainfrom
docs/owasp-assessment

Conversation

@carbon-evolution

Copy link
Copy Markdown
Owner

Summary

Adds a rated OWASP Top 10:2025 assessment to SECURITY.md and fixes the vulnerability-reporting section.

Ratings (residual risk after current mitigations)

# Category Risk
A01 Broken Access Control 🟠 Medium
A02 Security Misconfiguration 🟠 Medium
A03 Software Supply Chain Failures 🟢 Low
A04 Cryptographic Failures 🟢 Low
A05 Injection 🟢 Low
A06 Insecure Design 🟠 Medium
A07 Authentication Failures 🟢 Low
A08 Software or Data Integrity Failures 🟢 Low
A09 Security Logging and Alerting Failures 🟠 Medium
A10 Mishandling of Exceptional Conditions 🟢 Low

0 High · 4 Medium · 6 Low. Each category lists evidence (what's in place, with PR references) and what's still open.

Evidence gathered for this assessment

  • OWASP ZAP baseline (production build, 2026-10-18): 0 High, 5 Medium (all CSP), 5 Low (missing Permissions-Policy / COOP / COEP / CORP, X-Powered-By), 5 Informational; 60 rules passed.
  • OpenSSF Scorecard: 6.2/10 on main.
  • CodeQL (0 open of 34), npm audit (0 prod), npm audit signatures (842/842 verified), ClamAV (0 infected), secret scanning (0).

Notable open findings (documented, not fixed here)

  • A06: src/middleware.ts sends every page view with the visitor's IP to a hardcoded http://umami-umami-1:3000 analytics host, with a default site ID inherited from upstream.
  • A01: /api/scanner lets any visitor trigger scans when SCANNER_KEY is set (mitigated by the SSRF guard, scan-type allowlist and rate limiting); rate limiting trusts forgeable X-Forwarded-For.
  • A02: permissive CSP and missing hardening headers (ZAP).
  • A04: 7 routes use HTTP-only ip-api.com.

Reporting a vulnerability

The old text said "don't disclose publicly" but told reporters to open an issue. It now points to GitHub private vulnerability reporting with response timelines.
⚠️ Private reporting is currently disabled on the repo, so the link needs it switched on (repo setting).

🤖 Generated with Claude Code

- Rate OSIRIS against each OWASP Top 10:2025 category (residual risk
  after mitigations, with evidence and recommendations): 0 High,
  4 Medium (A01, A02, A06, A09), 6 Low. Based on code review, CodeQL
  triage, an OWASP ZAP baseline scan, OpenSSF Scorecard, npm audit /
  audit signatures, ClamAV and secret scanning.
- List the automated controls and where they run.
- Reporting: the old text asked for no public disclosure but told
  reporters to open an issue. Point to GitHub private vulnerability
  reporting instead, with response timelines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@carbon-evolution
carbon-evolution merged commit 0276376 into main Oct 18, 2026
7 checks passed
@carbon-evolution
carbon-evolution deleted the docs/owasp-assessment branch October 18, 2026 04:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant