Skip to content

v2.5.0

Choose a tag to compare

@cyyever cyyever released this 28 Feb 08:10
· 374 commits to main since this release
89dbcca

Highlights

  • MCP Gateway β€” New stdio proxy for MCP servers (crust mcp-gateway), intercepting tools/call and
    resources/read requests with full rule engine evaluation
  • Auto-detect Proxy β€” New crust wrap command that inspects both MCP and ACP methods in both directions,
    automatically detecting the protocol
  • Response DLP Scanning β€” Bidirectional inspection: DLP now scans server/agent responses before they reach
    the client, catching leaked secrets in MCP/ACP output
  • Cryptocurrency Wallet Protection β€” BIP39 mnemonics, xprv/WIF private keys (checksum-validated), and wallet
    directory blocking for 16 chains
  • DLP Expansion β€” From 19 to 34 hardcoded token patterns (HuggingFace, Groq, Vercel, Supabase, DigitalOcean,
    Vault, Linear, Postman, Replicate, Twilio, Doppler, Firebase, and more)
  • Hybrid Shell Extraction β€” Interpreter + AST hybrid mode for higher path coverage in mixed shell scripts
  • 17-Step Evaluation Pipeline β€” Reordered pipeline with symlink resolution before all hardcoded checks,
    closing symlink bypass vectors

New Features

  • crust mcp-gateway β€” Stdio proxy for MCP servers (filesystem, database, custom)
  • crust wrap β€” Auto-detect proxy supporting both MCP and ACP protocols
  • Response DLP scanning in all stdio proxy modes (MCP, ACP, auto-detect)
  • DLP scanning of JSON-RPC error response fields
  • Crypto wallet DLP: BIP39 mnemonic detection (sliding window, embedded 2048-word wordlist)
  • Crypto wallet DLP: Extended private key detection (xprv/yprv/zprv/tprv with base58check validation)
  • Crypto wallet DLP: WIF private key detection (checksum + version byte validation)
  • Hardcoded wallet path protection for 16 chains (Bitcoin, Ethereum, Solana, Cardano, etc.)
  • 15 new DLP token patterns (34 total)
  • Hybrid interpreter+AST shell extraction for higher coverage
  • E2E test suite with real MCP filesystem server
  • E2E CI job in GitHub Actions

Security Fixes

  • Close 3 MCP gateway security bypasses (notification bypass, batch bypass, syntax quoting)
  • Fix /proc symlink bypass β€” hardcoded check moved after symlink resolution
  • Fix crypto wallet symlink bypass β€” check runs on resolved paths
  • Reject deeply nested JSON to prevent stack overflow
  • AST-based command builder in shellutil for safe argument handling

Refactoring

  • Unified internal/jsonrpc shared package for all stdio proxies (MCP, ACP, auto-detect)
  • Deduplicated proxy entry points in main.go
  • Replaced btcutil.AppDataDir() with Go stdlib for wallet path discovery
  • Delegated prefilter evasion checks to shell parser
  • User-friendly evasive command error messages
  • Replaced old demo scripts with unified TUI demo

Documentation

  • New: docs/mcp.md β€” MCP gateway setup guide
  • Updated docs/how-it-works.md β€” 17-step pipeline, crypto DLP, shell analysis, evasion detection
  • Updated README.md β€” crypto wallet protection, pipeline step count, new DLP patterns

Testing

  • E2E tests against real MCP filesystem server (532 lines)
  • Response DLP E2E tests
  • Crypto DLP tests (27 cases: detection, false positives, wallet paths, OS-specific, wordlist count)
  • Hybrid shell extraction tests
  • Shell fuzz tests (453 lines)
  • False positive regression tests (156 lines)
  • Shared test helper package (internal/testutil)