This repository is experimental. Security fixes are applied on a best-effort
basis to the latest published crates.io versions on main. Older versions may
not receive patches.
Do not open a public GitHub issue for security vulnerabilities.
Please report suspected vulnerabilities privately to the maintainers:
- Email: security@starknet.org (and/or the repository owner listed in the GitHub security advisories UI)
- Prefer GitHub Private vulnerability reporting on this repository when enabled: Security → Report a vulnerability
Include:
- A clear description of the issue and impact (key leakage, signature forgery, proof soundness, ABI memory safety, etc.).
- Affected crate(s) and versions.
- Steps to reproduce or a proof-of-concept (non-destructive).
- Any suggested fix, if you have one.
We will acknowledge receipt as soon as practical and coordinate disclosure.
Treat changes in these areas with extra scrutiny:
- Key derivation, mnemonics, keystore encryption (
krusty-kms) - Secret wrappers (
SecretFelt) and anyexpose_secret*call sites - Proof generation / verification (
krusty-kms-crypto,krusty-kms-sdk) - FFI and WASM boundaries (
krusty-kms-cabi,krusty-kms-wasm) - Transaction hashing and typed-data hashing
- Never log or
Displayraw secret key material. - Prefer
SecretFelt/zeroizefor secret scalars. - Use checked arithmetic for amounts, balances, and range bounds. The root
Cargo.tomladditionally keepsoverflow-checkson in release builds ofkrusty-kms-common,krusty-kms-crypto, andkrusty-kms-sdk; that profile override applies to builds driven from this workspace only, so downstream consumers' own profiles govern their builds. - Production crates declare
#. Expanding those exceptions requires adocs/design/*.mdnote for baseline/surface changes — a PR-body## Designheading alone is not enough for FFI/WASM/file-size baseline updates. - Dependency advisories are gated by
cargo audit(rust.yml) andcargo-deny(guardrails.yml).