|
| 1 | +# Security Policy |
| 2 | + |
| 3 | +This document describes how to report security issues for projects in |
| 4 | +the JavaScriptSolidServer organisation. Individual repositories may |
| 5 | +publish their own `SECURITY.md` with project-specific contact paths or |
| 6 | +scope; when they do, that overrides this one. |
| 7 | + |
| 8 | +## Reporting a vulnerability |
| 9 | + |
| 10 | +Please report security vulnerabilities **privately**, not via public |
| 11 | +GitHub issues. |
| 12 | + |
| 13 | +**Preferred contact:** open a [private security advisory][advisory] on |
| 14 | +the affected repository. GitHub's Security Advisories let you discuss |
| 15 | +the issue with maintainers in a private channel and coordinate a fix. |
| 16 | + |
| 17 | +**Alternative:** email `melvincarvalho@gmail.com` with subject prefix |
| 18 | +`[JSS SECURITY]` and a description of the issue. PGP-encrypted email is |
| 19 | +welcome; key fingerprint available on request. |
| 20 | + |
| 21 | +[advisory]: https://docs.github.com/en/code-security/security-advisories/working-with-repository-security-advisories/creating-a-repository-security-advisory |
| 22 | + |
| 23 | +## What to include |
| 24 | + |
| 25 | +- Affected repository and version (commit SHA or release tag) |
| 26 | +- Description of the vulnerability and the threat model it enables |
| 27 | +- Steps to reproduce (proof of concept where applicable) |
| 28 | +- Suggested mitigation, if you have one |
| 29 | +- Whether you intend to disclose publicly, and on what timeline |
| 30 | + |
| 31 | +## Response expectations |
| 32 | + |
| 33 | +- **Acknowledgement:** within 7 days of receipt |
| 34 | +- **Initial assessment:** within 14 days |
| 35 | +- **Coordinated disclosure window:** typically 90 days from initial |
| 36 | + report, longer if the issue requires substantial protocol or |
| 37 | + infrastructure changes. Shorter windows are negotiable for low- |
| 38 | + complexity issues. |
| 39 | + |
| 40 | +We may publish an advisory crediting the reporter, with their consent. |
| 41 | + |
| 42 | +## Scope |
| 43 | + |
| 44 | +In scope for security disclosure: |
| 45 | + |
| 46 | +- **Authentication and authorisation** — Solid-OIDC, NIP-98, WAC, JWT |
| 47 | + verification, DID resolution, profile-side verification methods |
| 48 | +- **Server-side request forgery (SSRF)** — request paths that take |
| 49 | + user-controlled URLs or follow redirects |
| 50 | +- **Data integrity / WAC bypass** — paths that allow reading or |
| 51 | + writing resources without correct ACL evaluation |
| 52 | +- **Cryptographic correctness** — Schnorr signature verification, CID |
| 53 | + v1 multikey handling, hash usage |
| 54 | +- **Supply chain** — dependency confusion, malicious package |
| 55 | + publication, account compromise vectors |
| 56 | +- **Denial of service** — server-side resource exhaustion via crafted |
| 57 | + requests, oversized payloads, etc. |
| 58 | + |
| 59 | +Out of scope (please do not file as security): |
| 60 | + |
| 61 | +- Issues in third-party dependencies — file with the upstream project |
| 62 | + unless the issue is specific to how a JSS repository uses the |
| 63 | + dependency |
| 64 | +- Self-XSS in the data browser via pasting attacker-controlled content |
| 65 | + into the user's own pod (the user is the attacker) |
| 66 | +- Missing security headers on static asset paths where the asset |
| 67 | + itself is non-sensitive |
| 68 | +- Anything requiring physical access or root on the user's own machine |
| 69 | + |
| 70 | +## AGPL-3.0 §5(a) compliance |
| 71 | + |
| 72 | +License-compliance issues on downstream forks (missing modification |
| 73 | +notice on deployed modified versions) are **not** security issues. See |
| 74 | +the relevant repository's `CONTRIBUTING.md` *"Forks and downstream |
| 75 | +distribution"* section for the standard path, or open an issue against |
| 76 | +the upstream repository for compliance discussion. |
| 77 | + |
| 78 | +## Acknowledgements |
| 79 | + |
| 80 | +Researchers who report security issues responsibly will be credited in |
| 81 | +the relevant advisory unless they prefer to remain anonymous. We |
| 82 | +appreciate the work it takes to find and report these issues |
| 83 | +constructively. |
0 commit comments