Skip to content

0.2.3 — security hardening

Choose a tag to compare

@george-bobby george-bobby released this 09 Sep 07:21
· 10 commits to main since this release

security hardening

  • Redact secret values from ALL returned fields (command/stdout/stderr/error)
    and the log line, not just the happy-path command. Fixes plaintext leak on a
    failed modal secret create (e.g. secret exists without --force).
  • Add -- end-of-options before every user-supplied name/path so a value
    starting with - can't be parsed as a modal CLI flag (option injection).
    Also lets exec_modal_container pass the command's own flags through.
  • Bound ReDoS in log search: cap pattern length, clamp context/max_matches,
    match each line against a 16KB slice.
  • Close stdin (DEVNULL) on both subprocess runners so an unexpected prompt
    fails fast instead of hanging.
  • Add opt-in MCP_MODAL_ALLOWED_LOCAL_PATHS allowlist confining volume put/get
    local paths; document confused-deputy tools in a README Security section.

Install

uvx mcp-modal@0.2.3          # run this exact version
claude mcp add mcp-modal -- uvx mcp-modal@0.2.3

Also on PyPI: mcp-modal 0.2.3. The .whl and
.tar.gz attached below are the exact artifacts published to PyPI for this version.

Full changelog: v0.2.2...v0.2.3