Skip to content

v0.6.0 — secure mode by default

Choose a tag to compare

@sonirico sonirico released this 14 Jun 11:36
df02c8c

⚠️ Breaking change

Secure mode is now the default. With no config file, mcp-shell boots restricted to a narrow allowlist of read-only utilities. To restore the previous unrestricted behavior you must opt in explicitly:

MCP_SHELL_ALLOW_UNSAFE=true mcp-shell

Security fixes

Closes three advisories where "secure mode" did not deliver the advertised restriction:

  • GHSA-f5pj-2738-996m (critical) — security was disabled by default in the bare-binary install path.
  • GHSA-3x77-wg38-92r3 (high) — /bin/bash (and python3) in the default allowlist bypassed secure mode via bash -c.
  • GHSA-74hp-mggr-hv58 (high) — git shell-alias bypass (git -c alias.x=!cmd); ! was missing from the metacharacter blocklist.

What changed

  • Built-in secure defaults — no config file required.
  • Shell/language interpreters removed from the default security.yaml, with a startup warning if one is allowlisted.
  • ! / =! blocked as shell metacharacters.
  • Fixed the misleading "security disabled" startup log.

Thanks to @dodge1218, @EQSTLab and @useworld for the reports.