T09 · Insecure Skill Coding Practices
- Location
index.py:27- Finding
WordPress credentials may be transmitted to an untrusted or unencrypted endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a plausible WordPress publishing helper, but it handles publishing credentials and public post creation without enough destination or failure-handling safeguards.
Install only if you control the WordPress destination and can constrain usage to an HTTPS site you trust. Use a dedicated low-privilege WordPress application password, avoid passing secrets through shared command histories or logs, and keep backups of article JSON files because the failure fallback can overwrite an input file in some cases.
index.py:27WordPress credentials may be transmitted to an untrusted or unencrypted endpoint
index.py:87Failure handling may overwrite the source article file
The skill advertises capabilities that involve reading files, writing logs, and making network calls to an external WordPress API, but it does not declare any explicit tool scope or permissions boundary. This creates an authorization and transparency gap: an agent or operator may invoke the skill without a clear, least-privilege declaration of what resources it can access or exfiltrate to the network.
The skill explicitly relies on WordPress application credentials and publishes content to an external site, but it provides no warning about handling secrets or transmitting article data and media to a third-party endpoint. In practice, this can lead to accidental credential exposure, unsafe storage of application passwords, or unreviewed exfiltration of unpublished content and metadata to the configured WordPress instance.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
}
try:
response = requests.post(
f"{self.base_url}/posts",
headers=headers,
json=post_data,
This code sends article title, content, author, categories, and tags to an external WordPress endpoint using an authenticated HTTP request. Aside from an internal docstring, there is no confirmation prompt or user-facing notice at the point of transmission, so data leaves the local system without explicit disclosure.
On publish failure, the skill writes the rendered article content to a local HTML file automatically, which can leave sensitive or embargoed content on disk without the user's awareness. If the article contains confidential material or the output path is in a shared workspace, this fallback can create unintended local data exposure and persistence.
No suspicious patterns detected.