Coontext is currently in pre-1.0 development. Only the latest release on the
main branch receives security updates. There is no LTS branch.
| Version | Supported |
|---|---|
0.1.x |
✅ |
< 0.1 |
❌ |
Once the project reaches 1.0.0 this table will be updated to reflect a
proper support window.
Please do not open public GitHub issues for security vulnerabilities.
If you believe you have found a security vulnerability in Coontext, report it privately via one of these channels:
- GitHub private security advisory (preferred) — open a draft advisory. This routes directly to the maintainers and creates a private discussion thread.
- Email —
adriandomc@gmail.comwith the subject line[coontext-security] <short title>. PGP encryption is welcome but not required.
When reporting, please include:
- A clear description of the vulnerability and its impact.
- Steps to reproduce, ideally with a minimal proof of concept.
- The version (or commit hash) of Coontext you tested against.
- Your operating system and version.
- Whether you intend to disclose the issue publicly, and on what timeline.
| Step | Timeline |
|---|---|
| Initial acknowledgment | Within 72 hours of receipt. |
| Triage and severity assessment | Within 7 days. |
Fix or mitigation in main |
Within 30 days for critical issues, longer for lower-severity bugs depending on scope. |
| Public disclosure | Coordinated with the reporter, typically after a fixed release is available. |
We follow a coordinated disclosure model. Reporters are credited in the release notes (and the security advisory) unless they prefer to remain anonymous.
In scope:
- The Coontext binary and its source code in this repository.
- The build, release, and CI workflows under
.github/workflows/. - Any first-party scripts under
scripts/.
Out of scope:
- Third-party dependencies (please report those upstream — we use
cargo-auditandcargo-denyto track them via RustSec). - The Rust toolchain itself, GitHub Actions runners, or other infrastructure Coontext relies on.
- Vulnerabilities that require attacker-controlled local code execution to begin with (we assume the user trusts the binary they ran).
- Issues affecting forks or modifications of Coontext that aren't present in the upstream code.
The following protections are baked into the codebase and verified by CI:
- No telemetry / no network access — Coontext is fully offline. The
binary makes no outbound connections, has no analytics SDK, and has no
crash-reporting service. Telemetry crates (
sentry,sentry-core,rollbar,bugsnag) are banned at the supply-chain level viacargo-deny. - Filename sanitization —
normalize_filenamerejects path traversal (.,.., leading.), control characters, Unicode bidi-override characters (the Trojan Source attack class), trailing dots, and Windows reserved names. - Markdown rewrite safety —
rename_filewalks markdown viapulldown_cmark's offset iterator and only rewrites image references outside fenced code blocks and inline code spans, so user content inside code blocks is preserved verbatim. - Secure temp directories — screenshot temp files go through
tempfile::Builder::new().tempdir(), which usesmkdtemp(3)(mode0700on Unix) — not the world-readablestd::env::temp_dir(). - Corrupt-config recovery — if
config.jsonorrecent.jsonfails to parse, it's renamed to.bakand defaults are used instead of silently overwriting the user's settings. - Static application security testing — every push and PR runs:
cargo-audit(RustSec advisory DB)cargo-deny(licenses, bans, sources)OSV-Scanner(Google's OSV DB, additional CVE coverage)CodeQL(static analysis for the project's language set)cargo clippy --all-targets -- -D warnings(treats lints as errors)
Security researchers who have responsibly disclosed vulnerabilities are listed here, with their permission:
(none yet — be the first!)