Skip to content

Security: zama9729/codelock

Security

SECURITY.md

Security

CodeLock stores Argon2id password hashes in the per-user application data directory. Policy YAML never contains passwords, hashes, tokens, or keys.

Verification uses argon2-cffi. Failed attempts apply a short monotonic backoff. Empty and oversized passwords are rejected. There is no permanent lockout.

Audit logs and engine logs redact secret field names. Temporary unlock sessions live only in the engine process and use time.monotonic(). Restart clears them.

What this product protects

IDE-observed operations the extension can intercept (open/save/create/delete/rename) and CLI evaluations. The Python engine is the only decision-maker. Unknown actions and corrupt policies fail closed.

What it does not protect

NOT GUARANTEED: arbitrary OS processes, administrators, other editors, a compromised extension host, or unsigned policy-file tampering. See THREAT_MODEL.md.

IPC is JSON-RPC over child-process stdio. It does not bind TCP and never listens on 0.0.0.0. Frames larger than 1 MiB are rejected.

Policy integrity is not cryptographically signed. Anyone who can edit .codelock/policy.yaml can change rules.

Responsible disclosure

Open a private security advisory on the repository or email the maintainer listed on the GitHub project. Do not file public issues that include exploit details or secrets.

There aren't any published security advisories