Skip to content

v2026.5.10 — Security hardening patch

Choose a tag to compare

@rosschurchill rosschurchill released this 24 May 11:16
· 33 commits to main since this release

Security hardening patch — five fixes from external security review

Fixed

  • VS Code extension command injectionexec() replaced with execFile throughout scanner.ts. Binary path and args passed as argv array, never interpolated into a shell string. Shell metachar validation added on medusaPath (rejects ;|&\$()<>`).
  • --fail-on ignored cached findingstotal_issues now counts cached scan results. Previously a re-scan with --fail-on high would silently pass if findings were cached.
  • --fail-on crashed on dict-backed findings_get_severity() helper handles both object (.severity) and dict (.get('severity')) issue shapes.
  • Tool cache returned stale dummy path_find_tool() calls shutil.which() to verify the cached tool exists before trusting it. Stale entries are evicted.
  • Full-file hash when --fail-on active — cache previously hashed only first 8 KB. Changes beyond that were invisible to threshold checks.
  • User-home MCP configs opt-in~/.config/Claude/claude_desktop_config.json and ~/.cursor/mcp.json now require --include-user-mcp-configs (were silently included in every scan).

Security

  • VS Code extension: eliminated OS command injection vector in all three scan entry points. CVSS 3.1 estimate: 8.8 (High) → 0.
  • Scanner core: --fail-on threshold now reliable in CI pipelines regardless of caching state.

Full changelog: https://github.com/Pantheon-Security/medusa/blob/main/CHANGELOG.md