T09 · Insecure Skill Coding Practices
- Location
SKILL.md:17- Finding
Plaintext Storage and Command-Line Exposure of WordPress MCP Bearer Tokens
- Content
View full analysis
``` ```bash curl -s -X POST \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"","arguments":{...}}}' ``` ```markdown ### Multi-Site Management Store multiple sites in `TOOLS.md` and select by name: ``` ```markdown ### My Blog - **URL:** https://blog.example.com/wp-json/mcp/v1/http - **Token:** abc123 ### My Shop - **URL:** https://shop.example.com/wp-json/mcp/v1/http - **Token:** xyz789 ``` ### Technical Analysis The Skill instructs users to persist WordPress MCP bearer tokens directly in a plaintext `TOOLS.md` file. Although the displayed token values are examples rather than real embedded credentials, users following these instructions would place live administrative credentials in a workspace documentation file. Such a file may be exposed through repository commits, backups, shared workspaces, overly broad filesystem permissions, diagnostic bundles, or other agents and tools that ingest project documentation. The provided `curl` example also places the bearer token in a command-line argument. Depending on the operating system and execution environment, command arguments may be visible through process inspection, shell history, command telemetry, debug logs, or CI/CD logs. The bearer token authenticates calls to the WordPress MCP endpoint. Its practical privileges depend on which MCP features the site administrator has enabled. The documented capabilities include content a ...[truncated 2240 chars]- Remediation
View remediation
