docs: add a security policy and fix the reporting instructions - #23168
Open
bloxster wants to merge 1 commit into
Open
docs: add a security policy and fix the reporting instructions#23168bloxster wants to merge 1 commit into
bloxster wants to merge 1 commit into
Conversation
The repo has no SECURITY.md, so GitHub has no policy to surface, and the only security contact anywhere is a README line pointing at `security [at] torquem.ch` — the pre-rename domain. That leaves two paths that disagree: the private advisory channel is enabled and working but nobody is pointed to it, and the one written instruction points somewhere unverifiable. A test message to the torquem address went unanswered, so it is dropped rather than carried over. GitHub's private reporting is the sole documented route, which is the one channel confirmed to work. Whether to add an email fallback, and at which address, is left for maintainers to decide — a one-line addition once someone owns the mailbox. Advertising an address that did not answer a test would route reports into a void, which is the failure this change exists to fix. Shaped against the other clients' policies rather than written from scratch: Nethermind leads with the same GitHub-first route; Geth sends intake to the EF bounty instead; Reth is five lines of email address; Besu offers two tiered addresses. Deliberately skipped, because only Geth does them and both cost maintenance: an inline PGP key (redundant once the advisory channel is the primary route) and an audit-report table (Erigon has no external audits to publish). The supported-versions rule is stated as a rule rather than a version number so it doesn't go stale, which is more than any of the four commit to. Only `main` is touched: it is the default branch, so it backs both the repo landing page and the Security tab. release/3.5 and release/3.6 carry the same stale line and can pick up the fix in #22919 and the next backlog port. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
bloxster
force-pushed
the
docs/security-policy
branch
from
August 11, 2026 08:26
da7f654 to
0fa627a
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
The repo has no
SECURITY.md, so GitHub has no policy to surface, and the only security contact anywhere in the project is a README line near the bottom pointing atsecurity [at] torquem.ch— the pre-rename domain.That leaves two paths that disagree with each other:
A researcher who finds something serious spends about a minute looking for how to report it. If what they find looks abandoned, the realistic outcomes are emailing the old address and waiting, posting publicly instead, or dropping it. Two of those three are bad for node operators.
For the record: a test message to
security [at] torquem.chwent unanswered, so this PR drops the address rather than carrying it over. GitHub's private reporting is the sole documented route — the one channel confirmed to work. Advertising an address that did not answer a test would send reports into a void, which is the failure this PR exists to fix.❓ Two things to confirm before merging
1) "We aim to acknowledge a report within three business days." This is the only promise in the file and nobody has agreed to it yet — picked as a defensible default. Please confirm, change the number, or drop the sentence.
For context on where that sits among the other clients:
Nethermind is the only one that commits to a number, and theirs is tighter. The phrasing here follows their softer "we aim to" form rather than stating a guarantee.
2) Do we want an email fallback, and at which address? @yperbasis @AskAlexSharov — leaving this one to you. Options:
security@erigon.tech. The conventional choice, and what the original public-docs proposal asked for. Worth pointing at two or three people rather than one, so a report doesn't stall on a single inbox.security@torquem.chif someone still owns the domain and can confirm delivery.This doesn't block merging: the policy is correct and safe without an email, and adding one later is a one-line change.
What this does
SECURITY.md(new) — leads with Report a vulnerability, says what to include, sets expectations, and states which versions get fixes.README.md— the reporting section now points at the private route and the policy, instead of the bare stale address.Shaped acc. to industry best practice
Rather than writing this from scratch, other EVM clients have been compared.
Consequences for this file:
mainand the most recent release series. Geth's equivalent is "use the latest"; the other three say nothing.Scope
Only
mainis touched, since it is the default branch and therefore backs both the repo landing page and the Security tab — the two places this needs to be right.release/3.5andrelease/3.6carry the same stale README line, so anyone browsing tagv3.5.4still sees it. That needs no separate effort: #22919 is already rewriting release/3.5's README and can carry the fix, and 3.6 picks it up on the next backlog port.Testing
Docs-only; no code paths touched. Verified the GitHub links resolve and that no reference to the dropped address remains in either file.
🤖 Generated with Claude Code