This MCP server implements multiple security measures to protect WordPress credentials and prevent attacks:
- SecretStr Storage: All credentials (passwords) are stored as Pydantic
SecretStrtypes - No Logging: Credentials are never written to logs or debug output
- Safe Repr:
__repr__and__str__methods never expose sensitive data - Error Sanitization: Error messages automatically replace any credential values with
***
- Hardcoded API Path: The REST API path (
/wp-json/wp/v2/) is hardcoded and cannot be overridden - URL Validation: WordPress URL is validated and normalized on startup
- No URL Parameters: Users cannot specify arbitrary URLs in tool calls
- Pydantic Models: All tool inputs are validated through Pydantic models
- Type Enforcement: Strict type checking prevents injection attacks
- Length Limits: String fields have maximum length limits
- Enum Validation: Status fields restricted to valid values only
- TLS Enforced: All requests use HTTPS with certificate validation
- Timeout: 30-second timeout on all requests
- Size Limits: 10MB response size limit prevents memory exhaustion
- Application Passwords: Uses WordPress Application Passwords (not user passwords)
- Basic Auth: Credentials sent via Authorization header, not URL
- No Token Storage: Tokens are not persisted to disk
If you discover a security vulnerability, please report it via email to the repository maintainers. Do not open a public issue.
Please include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
We will respond within 48 hours and work to release a fix promptly.
- Credential exposure
- SSRF vulnerabilities
- Injection attacks
- Authentication bypass
- Information disclosure
- WordPress core vulnerabilities
- Vulnerabilities in dependencies (report to upstream)
- Social engineering attacks
- Physical access attacks
- Use Application Passwords: Never use your main WordPress password
- Limit Permissions: Create a WordPress user with only necessary capabilities
- HTTPS Only: Always use HTTPS for your WordPress site
- Environment Variables: Store credentials in environment variables, not config files
- Rotate Passwords: Periodically generate new application passwords
- Monitor Access: Review WordPress login logs regularly