Skip to content

PGP key + fingerprint are still placeholders #146

Description

@dantaik

Context

The encrypted vulnerability-disclosure channel is non-operational:

  • SECURITY.md:20 contains the literal string <PICO_PGP_FINGERPRINT_TODO>.
  • pgp-key.asc.placeholder sits at the repository root; there is no pgp-key.asc.
  • SECURITY.md:22-25 already documents that PGP-encrypted email is "not yet accepted" until the placeholder is replaced.

Reporters with a confidential vulnerability are funnelled into the GitHub private advisory channel, which is fine as a fallback but should not be the only option for v1 GA.

Acceptance criteria

  • PGP key generated on an air-gapped host (4096-bit RSA or Ed25519, per common bug-bounty norms).
  • Public key committed at repo root as pgp-key.asc (replacing the .placeholder file in the same PR).
  • Real fingerprint substituted into SECURITY.md:20 in the same atomic commit.
  • docs/runbooks/security-disclosure.md updated with the operator key-custody location and rotation procedure.
  • CI gate security-md-lint.yml continues to pass (it enforces atomicity between fingerprint and key file presence).

Severity

Critical — GA blocker. Cheap to fix (operator hours, not engineering weeks); ungated reduces credibility for serious researchers.

Evidence pointers

  • final_readiness_report.html §10.3 DOC-01, §12.
  • SECURITY.md:20-25, pgp-key.asc.placeholder, .github/workflows/security-md-lint.yml.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions