| Version | Supported |
|---|---|
| 0.1.x | ✅ |
If you discover a security vulnerability in rskit, please report it privately using one of the following channels:
- Preferred: GitHub Security Advisories — opens a private disclosure thread visible only to maintainers.
- Alternative: Email the maintainers (see MAINTAINERS.md)
with subject prefix
[SECURITY].
Do not open a public GitHub issue for security reports.
- A clear description of the issue and its potential impact.
- Steps to reproduce, including a minimal proof-of-concept if possible.
- The affected version(s) and
rustctoolchain. - Any suggested mitigations or fixes.
| Step | Target |
|---|---|
| Acknowledgment | 48 hours |
| Triage & severity | 5 business days |
| Fix available | 30 calendar days (critical), 90 days (high/medium) |
| Public disclosure | 90 days after report (coordinated with reporter) |
- Acknowledgment within 48 hours of your report.
- Status update within 5 business days with an assessment.
- Fix timeline communicated once the issue is confirmed.
- CVE assignment for confirmed vulnerabilities affecting released versions, requested via GitHub Security Advisories. Where applicable, a matching RUSTSEC advisory is also filed.
- Credit in the release notes and the advisory (unless you prefer to remain anonymous).
- We follow coordinated disclosure.
- Please allow a reasonable embargo period (typically 90 days) before any public disclosure, extendable by mutual agreement when a fix requires coordination across downstream consumers.
- Once a fix is released, the advisory is published and CVE / RUSTSEC IDs are made public.
When using rskit in production:
- Keep dependencies up to date (
cargo update && cargo deny check). - Use the
rskit-encryptioncrate for sensitive data at rest. - Configure TLS via the
rskit-server/rskit-httpclientcrates for all network communication — never disable certificate verification in production. - Never commit secrets — use environment variables or secret managers
(
rskit-configintegrates withdotenvyand env-var layering). - Review
cargo auditandcargo deny check advisoriesfindings regularly. CI runs both on every push. - Avoid
unwrap()/expect()in library code — see CONTRIBUTING.md. - Any
unsafeblock must carry a// SAFETY:comment justifying the invariant.
- All GitHub Actions used in CI are pinned to commit SHAs (see
.github/workflows/). - Dependency updates are automated via Dependabot
(
.github/dependabot.yml). - The Rust toolchain is pinned via
rust-toolchain.toml; CI enforces this invariant. TheCargo.lockis committed and checked viacargo update --locked. - Releases are signed with Sigstore (cosign)
via the release workflow. SBOMs (CycloneDX, generated by
cargo-cyclonedx) are attached to each release. - Supply-chain policy is enforced by
cargo-denyviadeny.toml: banned crates, license allowlist, advisory database, and source allowlist.