Skip to content

Security: contextlimit/cx

SECURITY.md

Security Policy

Supported Versions

CX is currently pre-1.0. Security fixes target the latest release and the current main branch. Older revision tags may not receive backports.

Report A Vulnerability

Use GitHub private vulnerability reporting. If that surface is unavailable, contact the maintainer privately through the contact method listed on the contextlimit GitHub profile.

Do not post exploit details, real commands containing credentials, a real ~/.cx/db.sqlite, or raw failure artifacts in a public issue or community channel.

Include:

  • CX version and build revision from cx --version;
  • operating system and architecture;
  • the smallest synthetic command that reproduces the issue;
  • expected native behavior and actual CX behavior;
  • whether passthrough or insights were enabled;
  • affected files, database rows, or artifact paths without secrets;
  • impact and any known workaround.

We will acknowledge a report, reproduce it against the current release, and coordinate disclosure after a fix is available.

High-Sensitivity Areas

Security reports are especially valuable for:

  • unintended shell execution or command injection;
  • argv rewriting that changes command behavior;
  • wrong exit codes or stderr loss;
  • secret leakage through command text, reports, exports, process summaries, or failure artifacts;
  • redaction bypasses;
  • path traversal or unsafe capture and artifact paths;
  • capture-file retention or permission issues;
  • destructive insights migrations or installer behavior;
  • evidence linked to the wrong invocation or report;
  • recursive CX execution or routing-policy bypass;
  • unsafe archive or SQLite input handling.

Local Data

Local invocation metrics and redacted command shapes are enabled by default. CX has no vendor analytics service or remote telemetry path. Readable command text and argv JSON, source labels, actionable failure details, and bounded failure responses are also recorded locally by default. General response previews remain disabled. Each recording category can be disabled separately. Redaction is conservative and cannot guarantee that all sensitive values are removed. Users can disable passive invocation recording with record_invocations=false or all insights writes for one process with CX_DISABLE_INSIGHTS=1. Failure artifacts and the local database can contain sensitive command output, so protect them like development logs.

Antivirus Opt-In

Automatic pre-execution scanning and blocking are disabled by default. Enable them explicitly with cx insights settings --set antivirus=true; use antivirus=false to disable them again. Recording settings do not enable antivirus, and an old firewall row does not count as opt-in. Manual cx security scan remains available independently. The scanner is a bounded static check, not a process sandbox or a guarantee that code is safe.

There aren't any published security advisories