Wordpress OAuth

Security checks across static analysis, malware telemetry, and agentic risk

Overview

The skill is coherent for WordPress OAuth, but it stores a reusable posting token and can publish to a WordPress site without an explicit confirmation safeguard.

Only install this if you are comfortable giving the skill WordPress OAuth access for posting. Use the narrowest OAuth scope possible, keep posts as drafts unless you explicitly approve publication, protect credentials.json, and review the complete script before use.

Static analysis

No static analysis findings were reported for this release.

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Risk analysis

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

An agent using this skill could create public or draft WordPress content with the stored token; accidental public posting could affect the user's website or reputation.

Why it was flagged

Publishing posts to a WordPress site is a high-impact external account action. The documentation describes the action but does not require explicit user confirmation before posting, especially for non-draft status.

Skill content
Publishes a post via `POST /rest/v1.1/sites/$site/posts/new` using the stored token.
Recommendation

Require explicit user approval before any non-draft publish action, default to draft, and clearly show the target site, title, status, and content preview before posting.

What this means

Anyone or anything that can read the stored credentials file may be able to use the WordPress token for actions allowed by the OAuth scope.

Why it was flagged

The skill persistently stores a reusable OAuth bearer token that can authorize WordPress posting. This is disclosed in the skill text, but registry metadata says there is no primary credential and no required environment variables.

Skill content
Credential store: `{baseDir}/credentials.json` ... This skill stores state and credentials in files inside this skill directory.
Recommendation

Declare the credential requirement in metadata, document token scope and retention, provide a cleanup/revoke command, and remind users to protect or remove credentials.json when no longer needed.

What this means

If an error or transcript includes the full token-info URL, the OAuth token could be revealed to someone who can see that output.

Why it was flagged

The token-info command sends the stored access token in a URL query string to the WordPress token-info endpoint. This appears purpose-aligned, but query strings can be exposed in local logs or error messages.

Skill content
query = urlencode({"client_id": client_id, "token": access_token})
info = request_json("GET", f"{TOKEN_INFO_ENDPOINT}?{query}")
Recommendation

Avoid printing full URLs containing tokens, redact token query parameters in error messages, and prefer a POST body if the provider supports it.

What this means

The visible code is mostly consistent with the stated purpose, but incomplete source visibility reduces assurance.

Why it was flagged

The supplied source artifact is marked truncated, so the reviewer cannot fully inspect the end of the script, including parser defaults and main execution handling.

Skill content
...[truncated]
Recommendation

Review the complete wp_oauth_skill.py before installing or running the skill, especially defaults for publish status and error handling.