Repository navigation
zn-gate 1.4.1
Security
1.4.0: with ZN_API_KEY set, tool results and tool-call arguments were sent to api.usezn.com for analysis without redaction. 1.4.1 removes that path entirely; cloud analysis is now opt-in (ZN_CLOUD=1), prompt-only and redacted.
- Affected: the Node package up to and including 1.4.0, when
ZN_API_KEYwas set andZN_LOCAL_ONLYwas nottrue. Inputs blocked by the local rules were never sent. WithoutZN_API_KEYnothing was sent. - Python up to 1.4.0: only
analyze()andzn-gate analyzesent data, whenZN_API_KEYwas set.guard,check_tool_*,sanitize_tool_resultand the integrations were always local. - Recommended action: upgrade to 1.4.1. If you used 1.4.0 with
ZN_API_KEY, consider rotating any credential that could have appeared in tool output. A security advisory with the full details follows.
Changed
- Tool results, tool-call arguments and tool descriptions are evaluated only locally, under every configuration (MCP server,
shield, library API). - Cloud analysis is opt-in: it requires both
ZN_API_KEYandZN_CLOUD=1, applies only to prompt analysis, and the text is passed through the secret redactor before sending.ZN_LOCAL_ONLY=truestill overrides everything. - Secret redaction now runs on the real code path:
check_tool_resultalways returns sanitized content,check_tool_callreturnssanitized_arguments, andshieldforwards allowed tool output with secrets redacted. zn_status/zn-gate statusreport what leaves the machine. The self-test never uses the network.
Fixed
- Python CLI:
zn-gate testprintedBLOCKwhen the verdict wasallowand only the secret detector had fired. It now prints the real verdict and the DLP alert on its own line. zn-gate initconfig locations verified against the official docs: Codex CLI (~/.codex/config.toml), OpenCode (~/.config/opencode/opencode.json), Claude Desktop on Linux (~/.config/Claude/). Files that cannot be rewritten safely are reported instead of modified.
Documentation
- READMEs for GitHub, npm and PyPI rewritten around one path: what it is, one-command install per agent, a reproducible redaction check, what each piece does today, "What leaves your machine", measured numbers only.
- Removed figures without a public method. One latency table remains, with hardware, date and the script to reproduce it.
- Known limitation documented: false positives on whole source files in
check_tool_result(not fixed in this release).