Security

Source, issues, and security advisories: github.com/suzheng/k2f.

Security Policy

Reporting a vulnerability

Please report security issues through GitHub Security Advisories. Do not open public issues for undisclosed vulnerabilities.

We aim to acknowledge reports within five business days.

Threat model

No executable content

.K2F packages must not contain scripts, WASM, or other executable payloads. Viewers and SDKs must not evaluate code from package contents.

Integrity banners

Viewers must display an integrity banner on every open. Status codes BROKEN_INTEGRITY and SIGNED_BUT_BROKEN must not be presented to users as signed or trusted documents.

Hash verification covers semantic content (content_hash), appearance binding (appearance_hash), and engine identity (engine_version, engine_commit_sha).

Signing

Cryptographic signing is a deliberate human or organizational step. AI agents and automated pipelines produce UNSIGNED packages by default. A valid SIGNED banner requires both hash-chain validity and a verified Ed25519 signature over the canonical lock JSON.

PDF is not a source

PDF export draws the published lock. PDF files cannot be opened, edited, or re-imported as K2F sources (PDF_IS_NOT_A_SOURCE). Treat exported PDFs as read-only renderings, not authoritative document state.

Supported versions

VersionSupported
0.1.xyes