Found a vulnerability? Email us first. We will respond within 3 business days.
You report. We acknowledge in 3 business days, assess in 10. We coordinate a fix on a 90-day default disclosure window. You get credit in the changelog unless you prefer not to.
One email. No public issue.
Write to security@kyeprotocol.com with a clear reproduction. Do not open a public GitHub issue for a suspected security problem.
- Include: affected component, version or commit SHA, reproduction steps, observed impact, your preferred credit name (or "anonymous").
- Encrypt sensitive details: the PGP key fingerprint is published at
/.well-known/security.txt. - We coordinate. Public disclosure happens on a mutually-agreed date. The default window is 90 days from the day you reported.
- No bug bounty yet. Credit in the changelog is the recognition we offer today. A paid program is on the roadmap.
Three commitments. Plain English.
We tell you we received the report. We tell you what we found. We tell you when to publish.
- Acknowledgement ≤ 3 business days. Receipt confirmed by a human, not a ticket bot.
- Initial assessment ≤ 10 business days. You get a severity rating, a triage owner, and an expected fix window.
- Coordinated disclosure on day 90, by default. Earlier if a fix ships sooner. Later only by mutual written agreement.
Public surface. Reference runtime. Official SDKs.
If you find a bug in our published code or running surface, we want to hear about it.
- In scope: everything under
public/in the GitHub mirror; the reference Gateway and PDP underinternal; the TypeScript, Python, and Go SDKs; the marketing site atkyeprotocol.com; the sandbox at/sandbox/. - Out of scope: our internal tooling, third-party services we do not operate, social-engineering attempts against staff, denial-of-service or rate-limit probing against the live perimeter.
- Proprietary mechanism content under
internalis intentionally not published. Speculative attacks against undisclosed mechanisms cannot be assessed and will be closed without action.
Seven controls. Run on every commit.
You can verify each control by reading the workflow files in the public GitHub mirror.
- Dependabot. Weekly PRs for
npm,pip, andgithub-actions. Thegithub-actionsecosystem is SHA-pinned. - Dependency review. Runs on every pull request to
main. Fails on any high-severity advisory. - Secret scan (gitleaks). Runs on every push and PR, plus a weekly scheduled scan.
- Signed-commit check. Every commit between PR base and head must carry a valid signature. Unsigned commits block the merge.
- SBOM (CycloneDX JSON). Generated on every push to
main. SHA-256 hashed and retained for 90 days. - IP-safety scan. Blocks mechanism keywords from leaking into
public/. - Webhook signing test vectors. Verify the public, vendor-documented primitives (HMAC, JWS (JSON Web Signature), COSE) round-trip on every PR. The KYE™ mechanism construction is proprietary and is not disclosed in this repository.
What we sign with. And how often we rotate.
You verify every webhook with the standard, vendor-documented HMAC recipe. Every signed envelope verifies with Ed25519 over the canonical bytes. KYE™-specific signing constructions are proprietary and are not disclosed in this repository.
- Webhook signing. Standard HMAC-SHA-256 (RFC 2104), 256-bit shared secret per publisher — the KYE™ mechanism construction is proprietary and is not disclosed in this repository. Use a constant-time comparison; the official SDKs ship a
verifyWebhookSignature(...)helper that does so. - Envelope signing. Ed25519 (Edwards-curve Digital Signature Algorithm) over JCS (JSON Canonicalization Scheme, RFC 8785) canonical bytes.
- Key rotation. Annual to monthly depending on key class. Compromise-driven rotations follow the post-compromise variant in the internal key-rotation runbook.
- Public registry. Per-tenant signing public keys are published at the publisher's
/.well-known/jwks.json. Any third party can verify any envelope without contacting us.
STRIDE matrix. Six named threats. Six mitigations.
The protocol surface threat model is maintained internally and reviewed each release. Six named threats — spoofing, tampering, repudiation, information disclosure, denial of service, elevation of privilege — each map to a named mitigation in the runtime.
- Spoofing → per-tenant Ed25519 signing keys; canonical bytes; offline verification from public registry.
- Tampering → append-only D1 with WORM (Write-Once-Read-Many) triggers; object-store immutability in compliance mode for every audit chain.
- Repudiation → signed Evidence Pack™ per privileged action; replayable from public keys alone.
- Information disclosure → tenant-scoped row keys; mTLS / OAuth2 client-credentials on every privileged surface; IP-safety scan against public mirror.
- Denial of service → edge-native rate limiting on every public endpoint; kill-switches per surface.
- Elevation of privilege → Purpose Permission™ gate in front of every irreversible operation; two-person rule for the highest-impact actions.
Want the procurement-grade summary?
The Trust Center lists every claim with a reproducible verification command.