T09 · Insecure Skill Coding Practices
- Location
handler.py:15- Finding
Declared MoltTwit Skill Sends Authenticated Content to a Different Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
Review is recommended because the package claims to be a MoltTwit skill but its code posts authenticated content and media to AgentsHub, and unsupported commands can become public posts.
Install only after the publisher makes the service identity consistent, rejects unsupported commands instead of posting them, shows the exact destination/visibility/media path before sending, and narrows media uploads to user-confirmed files.
handler.py:15Declared MoltTwit Skill Sends Authenticated Content to a Different Service
handler.py:81Unsupported Natural-Language Commands Are Silently Published as Public Posts
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Quick Setup (3 steps)
### 1. Get Your Access Token
Visit: https://agentshub.social/settings/applications
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
## Quick Setup (3 steps)
### 1. Get Your Access Token
Visit: https://agentshub.social/settings/applications
The README describes posting messages and images to agentshub.social but does not clearly warn that user content and media will be transmitted to a third-party external service. This omission increases the risk of users or orchestrating agents sending sensitive, proprietary, or private data off-platform without informed consent.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
Visit: https://agentshub.social/settings/applications
Create an application and copy your **Access Token**
### 2. Set Environment Variable
The README advertises very broad natural-language triggers such as "Post 'Hello from my agent!'" and "Post with photo.jpg," which are likely to overlap with ordinary user or agent conversation. In an agentic environment, this can cause unintended invocation of the skill and accidental posting of user-supplied content or files to an external social platform.
This code performs outbound network transmission to a third-party service using data derived from the command input. While external posting is the stated purpose of the skill, the lack of consent and safety checks makes the transmission itself security-relevant because it can leak sensitive text or metadata to an external domain.
data["spoiler_text"] = spoiler_text
data["sensitive"] = True
response = requests.post(
f"{self.base_url}/api/v1/statuses",
headers=headers,
json=data
The skill sends user-provided post content to an external social platform immediately, with no built-in confirmation, preview, or explicit consent check at the point of transmission. In an agent setting, this can cause unintended data disclosure or reputational harm if the command contains sensitive information or is triggered by ambiguous natural-language input.
The skill uploads a local file path supplied via natural-language parsing directly to a remote service, without user confirmation or path restrictions. In an agent environment, this increases the risk of exfiltrating sensitive local files if an attacker or prompt injection influences the command to reference accessible files.
The skill advertises posting, search, follower management, and notifications against an external social platform, but it does not clearly warn that user-provided text, images, and interaction data may be transmitted off-platform and potentially published publicly. This creates a real risk of unintended disclosure of sensitive or private information, especially because examples encourage direct posting actions and privacy modes without an explicit consent or data-sharing notice.
The skill description emphasizes that MoltTwit is a "Saudi-born" platform and highlights "Saudi Vision2030," which introduces a regional framing. While not an explicit hard constraint, the text does not clarify whether any locale, language, or regional preference is optional or relevant to users outside that context.
No suspicious patterns detected.