Skip to content

docs: add SECURITY.md (threat model + hardening posture)#61

Merged
sam-powers merged 1 commit into
mainfrom
docs/security-posture
Jun 13, 2026
Merged

docs: add SECURITY.md (threat model + hardening posture)#61
sam-powers merged 1 commit into
mainfrom
docs/security-posture

Conversation

@sam-powers

Copy link
Copy Markdown
Owner

Adds docs/SECURITY.md to make Quill's security posture legible to a reviewing engineer — not just a list of mitigations, but the reasoning behind what was and wasn't hardened.

What it documents

  • Threat model. Quill's shape (local single-user macOS app, no server) and the three places real risk concentrates: the webview, the IPC/filesystem boundary, and the quill:// deep link (the one attacker-influenced entry point — any web page can fire it).
  • The core finding both audit passes reached: Quill trusted deserialized data (sidecar, draft, deep-link target) more than rendered data. Hostile/corrupt annotation positions could reach doc.resolve() and white-screen the app on open.
  • The four merged hardening measures, with the load-bearing code quoted:
  • Two deliberate non-fixes, with rationale: asset-protocol $HOME/** scope (can't narrow without breaking the editor; <img> can't exfiltrate) and the remote-image beacon (inherent to Markdown, constrained by CSP).
  • What the posture does not cover, stated plainly.

Doc-only; no code change. All four referenced fixes are already merged to main.

🤖 Generated with Claude Code

Documents Quill's security posture for a reviewing engineer: the threat
model (deep link as the one attacker-influenced entry point; deserialized
data trusted more than rendered data), the four merged hardening measures
(#57 path confinement + deep-link validation, #58 annotation sanitization,
#59 URL scheme allowlists, #60 binary-resolution hardening), and the two
deliberate non-fixes left in place with rationale (asset-protocol $HOME/**
scope, remote-image beacon).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sam-powers sam-powers merged commit f5e1a3b into main Jun 13, 2026
3 checks passed
@sam-powers sam-powers deleted the docs/security-posture branch June 13, 2026 22:02
@sam-powers sam-powers mentioned this pull request Jun 15, 2026
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