Back to skill

Security audit

WordPress MCP

Security checks for vulnerabilities and agentic risk

Overview

This is a legitimate WordPress management skill, but it gives an agent broad site-changing powers and recommends plaintext storage of powerful tokens.

Install only if you are comfortable giving the agent administrative control over the configured WordPress site. Keep Plugins, Themes, Database, Dynamic REST, WooCommerce, and Social features disabled unless needed, use least-privilege and revocable tokens, avoid storing real tokens in TOOLS.md, and require explicit review before deletes, refunds, SQL writes, plugin/theme edits, public posting, or site-wide configuration changes.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:17
Finding

Privileged WordPress MCP bearer tokens are stored in plaintext

Content
View full analysis
``` ``` The multi-site workflow repeats this practice: ```markdown Store multiple sites in `TOOLS.md` and select by name: ``` ### 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 Bearer tokens are authentication credentials: possession is generally sufficient to authenticate to the associated MCP endpoint. Storing real tokens directly in `TOOLS.md` exposes them as plaintext to every user, process, extension, backup system, synchronization service, source-control operation, or AI context that can read that file. The instructions do not prescribe restrictive filesystem permissions, secret-manager integration, environment-variable indirection, token expiration, token scoping, log redaction, or source-control exclusions. Storing credentials for multiple sites in one file also increases the impact of a single disclosure. The exposed privileges depend on the server configuration. Core capabilities include content, media, taxonomy, user, and option operations. Opt-in capabilities may permit plugin or theme source modification, arbitrary SQL modification, WooCommerce order and customer access, social publishing, or raw WordPress REST operations. ### Attack Path 1. A user follows the documented setup and stores a valid WordPress MCP bearer token in `TOOLS.md`. 2. The file is exposed through an accidental repository commit, shared workspace, backup, synchronization ser ...[truncated 1440 chars]
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (22)

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The feature list includes especially dangerous capabilities such as plugin/theme installation and modification, raw database SQL execution, and dynamic REST access, but provides no warnings about integrity, availability, or irreversible consequences. In context, these are privileged remote administration functions that could be abused to deface the site, exfiltrate data, execute arbitrary changes, or break the application entirely.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

wp_db_query exposes arbitrary SQL execution, allowing reads or writes across the WordPress database without narrow task constraints. This can be abused to exfiltrate secrets, reset credentials, create admin users, alter content/options, or destroy data, making it one of the highest-risk capabilities in the skill.

Content

No source excerpt is available for this finding.

Missing User Warnings

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

The plugin, theme, and database sections describe code-writing and SQL-execution capabilities without any warning that they can modify executable code, break the site, or create backdoors. Given this skill's WordPress admin context, the lack of explicit danger labeling makes highly sensitive operations easier to trigger through routine agent workflows.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Direct SQL execution gives the agent unrestricted low-level access to WordPress data, bypassing higher-level permission and safety controls built into purpose-specific tools. In this skill context, an attacker or erroneous prompt could alter users, options, content, or security settings, destroy data, or implant persistence through database changes.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill description is scoped so broadly that it may activate for nearly any WordPress-related request, including benign informational questions that do not require privileged site actions. This increases the chance the agent will reach for high-impact administrative capabilities unnecessarily, expanding the attack surface and raising the risk of accidental or unauthorized changes.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The description advertises broad administrative capabilities like editing content, media, taxonomy, and other WordPress admin tasks without any guardrails around confirmation, authorization, or impact. In an agent setting, that omission can cause destructive or privacy-sensitive actions to be performed too readily when a prompt is ambiguous or maliciously framed.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 29)May include surrounding context.

All calls use JSON-RPC 2.0 over HTTP POST:

bash
curl -s -X POST <MCP_URL> \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"<tool_name>","arguments":{...}}}'

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown reference documents post deletion, including permanent deletion via force, but provides no warning about data loss or irreversibility. Under the markdown-file criteria, descriptions that omit warnings about behaviors affecting user data or system integrity should be flagged.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file lists wp_delete_media and notes a force option for permanent deletion, but it does not warn users that attachments may be permanently removed. This omits a user-facing warning for an action that can affect stored user data.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documented capabilities include arbitrary theme/plugin filesystem manipulation and direct database querying, which materially exceed ordinary content-editing and SEO workflows and enable full code execution or site compromise if misused. In the context of an AI-accessible admin skill, these primitives are especially dangerous because a prompt-induced action could modify executable PHP, delete site components, or alter sensitive data.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The theme operations include file creation, alteration, and deletion inside active themes, but the documentation lacks equivalent safety warnings and approval requirements for these destructive actions. Because theme files often contain executable PHP and templates, misuse can deface the site, introduce backdoors, or cause outages.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The plugin operations permit activation/deactivation, creation, renaming, deletion, and direct file edits without corresponding warnings or guardrails. Since plugins run server-side code and control privileged WordPress behavior, these actions can disable protections, deploy malicious code, or break site functionality.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · references/dev-tools.md (reported line 128)May include surrounding context.

md
- `query` (string, required): SQL query
- Returns results for SELECT queries, affected rows for UPDATE/INSERT/DELETE.

⚠️ **Safety**: Only use for read queries unless explicitly asked. Never DROP tables or modify core WP tables without confirmation.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The reference lists destructive content operations such as create, update, alter, and delete without any warning about irreversible changes, publication risk, or the need for confirmation. In an AI-operated admin tool, omission of these cautions increases the likelihood of accidental destructive actions from ambiguous prompts or model error.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The feature reference exposes plugin/theme file read-write, activation/install, and database execution capabilities that go well beyond ordinary content management and enable arbitrary site modification. In an AI-driven MCP context, these broad administrative primitives materially increase the blast radius of prompt injection, agent mistakes, or misuse, potentially leading to full site compromise or persistence.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The social posting and AI media features can publish content externally and store generated assets, but the reference does not warn about reputational impact, accidental publication, copyright/policy concerns, or storage of AI-generated media. In an agent-driven workflow, missing warnings can lead to unintended public actions or asset creation from unreviewed prompts.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
84% confidence
Finding

Raw REST access provides a generic escape hatch around the curated WordPress tools, enabling invocation of any reachable endpoint rather than only narrowly scoped management functions. In an MCP agent setting, this broadens the attack surface and can expose additional destructive or sensitive operations not anticipated by the skill description.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The reference exposes a write-capable mwseo_set_robots_txt operation that can alter site-wide crawler behavior, yet it provides no warning, constraint, or indication that this is a sensitive administrative action. In the context of a WordPress management skill, an agent could be induced to block indexing, hide content from search engines, or otherwise degrade discoverability across the entire site through a single action.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description scopes the skill around general WordPress administration and explicitly lists content editing, SEO, analytics, media, taxonomy, social media scheduling, and Polylang-based multilingual content. This file documents a broad separate capability set for WooCommerce store operations, including refunds, order updates, customer updates, stock management, and review moderation, which is not mentioned or justified in the stated purpose.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The reference exposes destructive and state-changing commerce actions such as deleting products, issuing refunds, changing order status, modifying stock, and updating customer records without any caution about confirmation, authorization, or operational risk. In an agent setting, this increases the chance of accidental or prompt-induced harmful actions that can directly affect store operations, revenue, inventory, and customer experience.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
78% confidence
Finding

wp_create_user includes a user_pass parameter, which involves credential handling, but the markdown provides no warning about securely managing passwords or avoiding unnecessary exposure. For markdown files, privacy- or security-relevant behaviors should be accompanied by appropriate warnings.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

wp_update_option can modify WordPress configuration and potentially impact site behavior, but the reference gives no warning about the consequences of changing options. This is a system-integrity-affecting operation lacking any cautionary language in the markdown description.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.