Iron Manus MCP implements enterprise-grade security measures to protect against common web application vulnerabilities, particularly Server-Side Request Forgery (SSRF) attacks.
Iron Manus includes built-in SSRF protection that:
- Blocks private IP ranges: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
- Blocks localhost: 127.0.0.1, localhost, ::1
- Blocks metadata endpoints: 169.254.169.254 (AWS/cloud metadata)
- Validates protocols: Only HTTP/HTTPS allowed
- Enforces allowlist: When configured, only specified hosts allowed
# Enable/disable SSRF protection
ENABLE_SSRF_PROTECTION=true
# Define allowed hosts (empty = allow all public hosts)
ALLOWED_HOSTS="api.github.com,*.httpbin.org,jsonplaceholder.typicode.com"
# Rate limiting
RATE_LIMIT_REQUESTS_PER_MINUTE=5
RATE_LIMIT_WINDOW_MS=60000
# Content limits
MAX_CONTENT_LENGTH=2097152 # 2MB
MAX_BODY_LENGTH=2097152 # 2MBimport { ssrfGuard, validateAndSanitizeURL } from './src/security/ssrfGuard.js';
// Check if URL is safe
const isSafe = ssrfGuard('https://api.example.com/data');
// Validate and sanitize URL
const cleanUrl = validateAndSanitizeURL('https://api.example.com/data?callback=evil');Always configure SSRF protection for production:
# Production settings
ENABLE_SSRF_PROTECTION=true
ALLOWED_HOSTS="api.trusted.com,*.safe-domain.org"
KNOWLEDGE_MAX_CONCURRENCY=2
KNOWLEDGE_TIMEOUT_MS=4000All inputs are validated using Zod schemas:
import { MessageJARVISSchema } from './src/validation/schemas.js';
// Validate input
const validatedInput = MessageJARVISSchema.parse(input);Built-in rate limiting prevents abuse:
- Default: 5 requests per minute per hostname
- Configurable via environment variables
- Automatic backoff on rate limit exceeded
Prevent memory exhaustion:
- Default: 2MB max response size
- Automatic truncation of large responses
- Configurable limits via environment
If you discover a security vulnerability in Iron Manus MCP, please:
- Do not create a public GitHub issue
- Email security issues to: security@iron-manus.dev
- Include:
- Description of the vulnerability
- Steps to reproduce
- Impact assessment
- Suggested fix (if any)
We take security seriously and will:
- Acknowledge receipt within 24 hours
- Provide an initial assessment within 72 hours
- Release security patches as soon as possible
- Credit researchers (with permission)
| Version | Supported |
|---|---|
| 1.1.x | ✅ Yes |
| 1.0.x | |
| < 1.0 | ❌ No |
Before deploying Iron Manus MCP:
- SSRF protection enabled
- Allowed hosts configured (if using external APIs)
- Rate limits configured appropriately
- Content size limits set
- Regular dependency updates scheduled
- Security monitoring in place
Keep dependencies updated:
# Check for vulnerabilities
npm audit
# Update dependencies
npm update
# Check for outdated packages
npm outdated