Skip to content

docs(security): add SECURITY.md and a private reporting channel - #298

Merged
eaitbrahim merged 1 commit into
mainfrom
docs/security-policy
Aug 16, 2026
Merged

docs(security): add SECURITY.md and a private reporting channel#298
eaitbrahim merged 1 commit into
mainfrom
docs/security-policy

Conversation

@eaitbrahim

Copy link
Copy Markdown
Contributor

Closes #279

keel holds exchange API credentials and places live orders. Once strangers read the source,
someone will eventually find a way to make it misbehave — and until now the only options were
a public issue (disclosing to everyone simultaneously) or nothing.

What

  • SECURITY.md at the repo root:
    • Private channel: GitHub private vulnerability reporting — the Report a
      vulnerability
      button under the Security tab. Enabled in repo settings (verified:
      gh api .../private-vulnerability-reporting{"enabled":true}); the file alone gives
      no channel, per the issue's note.
    • Scope: the defining class — a rail that can be bypassed is a security issue, not
      merely a bug
      (allowlist, caps, drawdown breakers, kill-switch), credential/secret
      exposure, and corruption of the attestation/audit trail.
    • Out of scope: strategy performance and market losses, a user's own key handling, the
      exchange's own outages.
    • Response expectations, honestly sized for one maintainer: acknowledge within 3 days,
      severity + plan within 14, coordinated disclosure, credit by default.
  • tests/test_security_policy.py (written first, red, then green): pins the channel, the
    day-count commitment, the rail-bypass scope line, and the out-of-scope list. The
    GitHub-side setting is outside the tree and was verified against the live repo instead.

Gates (rebased on main after #297): pytest 2782 passed / 1 skipped, ruff check clean,
mypy clean.

keel holds exchange credentials and places live orders; once the repo is
discoverable, the only routes were a public issue or silence (#279).
SECURITY.md names the private channel (GitHub private vulnerability
reporting, now enabled in repo settings), an honest solo-maintainer SLA,
and the scope: a bypassable rail is a security issue, not merely a bug.
tests/test_security_policy.py pins all of it.
@eaitbrahim
eaitbrahim merged commit 90da918 into main Aug 16, 2026
1 check passed
@eaitbrahim
eaitbrahim deleted the docs/security-policy branch August 16, 2026 22:32
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.

Add SECURITY.md and a private vulnerability reporting channel

1 participant