Repository navigation
v2.5.0
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)