Back to skill

Security audit

twitter

Security checks for vulnerabilities and agentic risk

Overview

This skill can hand sensitive X/Twitter and proxy credentials to a third-party service that can post, like, retweet, and change account profile data.

Install only if you trust the SkillBoss/API provider with the X account, proxy credentials, search activity, and any public actions the account may perform. Prefer read-only use where possible, avoid entering real passwords or TOTP codes through the CLI, and do not use this with high-value or organization accounts unless credential handling, revocation, and approval controls are clear.

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 (2)

other

Error
Location
scripts/twitter_client.py:125
Finding

Transmission of X Account, MFA, and Proxy Credentials to a Third-Party API

Content
View full analysis
Dict[str, Any]: """Login to Twitter account.""" data = { "user_name": username, "email": email, "password": password, "proxy": proxy } if totp_code: data["totp_code"] = totp_code return self._request("POST", "/twitter/user_login_v3", data=data) ``` The documentation explicitly directs users to submit these credentials: ```bash curl -X POST "https://api.aisa.one/apis/v1/twitter/user_login_v3" \ -H "Authorization: Bearer $SKILLBOSS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"user_name":"myaccount","email":"me@example.com","password":"xxx","proxy":"http://user:pass@ip:port"}' ``` ### Technical Analysis The login implementation collects an X username, email address, password, proxy URL, and optional TOTP code and sends them in a JSON request to `api.aisa.one`. This hostname is an intermediary service rather than an official X authentication endpoint. The proxy URL may itself contain reusable authentication credentials, as shown by the documented `http://user:pass@ip:port` format. Consequently, one request can disclose: - The primary X account password - The account email and username - A currently valid MFA code - Proxy service credentials - The SkillBoss bearer API key in the authorization header HTTPS protects data in transit from passive network interception, but it does not protect the secrets from the receiving service. The intermediary necessarily receives the plaintext request body after TLS termina ...[truncated 2036 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/twitter_client.py:209
Finding

Sensitive Credentials Accepted Through Command-Line Arguments

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (27)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

The declared purpose emphasizes search, extraction, and publishing tweets/replies, but the documented behavior also includes account login with credentials, account-detail retrieval, liking, retweeting, and profile updates. This mismatch is security-relevant because it can cause users or agent orchestrators to authorize a skill for low-risk content tasks while it actually supports broader account takeover and account-modifying operations through a third-party service.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The README explicitly advertises write-capable actions such as posting tweets, liking, and retweeting, but it does not warn users that these operations can directly affect a real social media account. In an autonomous-agent context, omission of clear safeguards increases the risk of unintended posting, reputation damage, spam, or policy violations if the skill is invoked without adequate confirmation and scope controls.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill declares access to environment variables and clearly relies on outbound network access, but it does not define an explicit tool scope such as permissions or allowed-tools. In an agent environment, missing scope declarations make it easier for the skill to operate with broader capabilities than reviewers or users expect, increasing the risk of unauthorized data transmission or account actions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest presents the skill as publishing tweets/replies, yet the body documents additional account-modifying actions including likes, retweets, and profile updates. This understatement of capability reduces transparency and can mislead a user or agent into granting trust to a skill whose effective power over a social-media account is broader than advertised.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The documented use of the api.aisa.one domain confirms that the skill depends on a third-party external service for its functionality. While not inherently malicious, this creates a trust boundary where prompts, identifiers, and authorization data leave the agent environment and therefore must be treated as potentially sensitive.

Content

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

bash
# Get user info
curl "https://api.aisa.one/apis/v1/twitter/user/info?userName=elonmusk" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user's latest tweets

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

The documented use of the api.aisa.one domain confirms that the skill depends on a third-party external service for its functionality. While not inherently malicious, this creates a trust boundary where prompts, identifiers, and authorization data leave the agent environment and therefore must be treated as potentially sensitive.

Content

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

bash
# Get user info
curl "https://api.aisa.one/apis/v1/twitter/user/info?userName=elonmusk" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user's latest tweets

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

This call fetches a user's recent tweets via a third-party API using the skill's bearer token, so it is another concrete external transmission path. The risk is moderate because even read operations still disclose queried usernames, usage patterns, and authorization tokens to an external processor.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user's latest tweets
curl "https://api.aisa.one/apis/v1/twitter/user/user_last_tweet?userName=elonmusk" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Advanced tweet search (queryType is required: Latest or Top)

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

Advanced search requests transmit search terms to an external service, which may reveal sensitive business interests, monitoring targets, or user intent. In a social-listening skill this behavior is expected, but it still represents data egress across a third-party trust boundary and should not be implicit.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Advanced tweet search (queryType is required: Latest or Top)
curl "https://api.aisa.one/apis/v1/twitter/tweet/advanced_search?query=AI+agents&queryType=Latest" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Search top tweets

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

The top-tweets search endpoint is another external transmission channel carrying user-supplied query data and the API key to a third-party service. The security issue is not the existence of networking itself, but the absence of strong disclosure and permission boundaries around that egress.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Search top tweets
curl "https://api.aisa.one/apis/v1/twitter/tweet/advanced_search?query=AI+agents&queryType=Top" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get trending topics (worldwide)

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

Fetching public trending topics still contacts an external service and reveals usage of the skill to that provider. This is lower impact than credentialed write actions, but it remains a true external transmission finding because data and authorization headers leave the local execution boundary.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get trending topics (worldwide)
curl "https://api.aisa.one/apis/v1/twitter/trends?woeid=1" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Search users by keyword

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

User-search requests send lookup keywords to the third-party API, potentially exposing recruiting targets, competitor research, or other sensitive intent. In context this is expected functionality, but the skill does not provide enough security framing around the confidentiality implications of external processing.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Search users by keyword
curl "https://api.aisa.one/apis/v1/twitter/user/search_user?keyword=AI+researcher" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get tweets by ID

External Transmission

Medium
Category
Data Exfiltration
Confidence
84% confidence
Finding

Retrieving tweets by ID is an external API call with the bearer token, making it a real but relatively low-sensitivity egress path when used for public content. The danger is lower than credential submission, yet it still depends on an undeclared third-party trust boundary.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get tweets by ID
curl "https://api.aisa.one/apis/v1/twitter/tweet/tweetById?tweet_ids=123456789" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user followers

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

Follower lookups send target account information and authorization data to the external provider, which may disclose monitoring interests or relationship analysis activity. This is contextually expected for the skill, but still a meaningful data-exposure path that should be explicitly governed.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user followers
curl "https://api.aisa.one/apis/v1/twitter/user/user_followers?userName=elonmusk" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Get user followings

External Transmission

Medium
Category
Data Exfiltration
Confidence
87% confidence
Finding

Following-list queries are external transmissions that expose lookup targets and usage patterns to the third-party provider. The context makes this less suspicious than hidden exfiltration, but the lack of explicit scoping and privacy warning keeps it security-relevant.

Content

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

-H "Authorization: Bearer $SKILLBOSS_API_KEY"

Get user followings

curl "https://api.aisa.one/apis/v1/twitter/user/user_followings?userName=elonmusk"
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

text

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The documentation includes login and profile-update operations that go beyond a typical search/post workflow and require users to provide sensitive account credentials to an external API. Those capabilities materially increase risk because they enable persistent account modification and expose secrets to a third party without a strong purpose limitation in the skill definition.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill instructs users to submit Twitter login credentials, email, password, and proxy details to a third-party API but does not prominently warn that these secrets leave the local environment and may be stored or processed externally. This is dangerous because it creates a clear path for credential compromise, session abuse, or unauthorized account actions if the provider is breached, mishandles secrets, or is not trusted.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
99% confidence
Finding

This login request transmits highly sensitive data including username, email, password, and proxy credentials to a third-party API. That creates a major credential-exposure and account-compromise risk because the service can potentially store, misuse, or lose the secrets needed to control the user's Twitter account.

Content

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

bash
# Step 1: Login first (async, check status after)
curl -X POST "https://api.aisa.one/apis/v1/twitter/user_login_v3" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_name":"myaccount","email":"me@example.com","password":"xxx","proxy":"http://user:pass@ip:port"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
90% confidence
Finding

Checking account-login status via a third-party endpoint exposes account identifiers and session-related information to the provider. In the context of a skill already handling raw credentials, this deepens the third-party control plane over the user's account and increases the blast radius if the service is compromised.

Content

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

md
-d '{"user_name":"myaccount","email":"me@example.com","password":"xxx","proxy":"http://user:pass@ip:port"}'

# Step 2: Check login status
curl "https://api.aisa.one/apis/v1/twitter/get_my_x_account_detail_v3?user_name=myaccount" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Send tweet

External Transmission

Medium
Category
Data Exfiltration
Confidence
92% confidence
Finding

Sending tweets through the external service delegates account actions to a third party, which can post on behalf of the user and potentially misuse that authority. This is particularly dangerous in combination with the login flow because the skill is not merely reading public data; it can drive public-facing actions that affect brand, reputation, and compliance.

Content

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

md
-H "Authorization: Bearer $SKILLBOSS_API_KEY"

# Send tweet
curl -X POST "https://api.aisa.one/apis/v1/twitter/send_tweet_v3" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_name":"myaccount","text":"Hello from OpenClaw!"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

The like-tweet endpoint enables an external service to perform engagement actions on behalf of the user, which can manipulate account behavior and public signals. This is riskier than passive data lookup because it changes account state and may be abused for spam, policy violations, or reputational damage.

Content

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

md
-d '{"user_name":"myaccount","text":"Hello from OpenClaw!"}'

# Like a tweet
curl -X POST "https://api.aisa.one/apis/v1/twitter/like_tweet_v3" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_name":"myaccount","tweet_id":"1234567890"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
91% confidence
Finding

Retweeting through a third-party API allows that service to amplify content under the user's identity, which can have reputational and policy consequences. Because this is an account-modifying action not central to the stated skill description, the contextual mismatch makes it more dangerous than a normal documented write operation.

Content

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

md
-d '{"user_name":"myaccount","tweet_id":"1234567890"}'

# Retweet
curl -X POST "https://api.aisa.one/apis/v1/twitter/retweet_v3" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_name":"myaccount","tweet_id":"1234567890"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
95% confidence
Finding

Profile updates delegated to an external API let a third party alter the user's public identity, including name and bio. This is a high-impact account-integrity risk because unauthorized or mistaken profile changes can damage trust, facilitate impersonation narratives, or violate organizational policy.

Content

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

md
-d '{"user_name":"myaccount","tweet_id":"1234567890"}'

# Update profile
curl -X POST "https://api.aisa.one/apis/v1/twitter/update_profile_v3" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"user_name":"myaccount","name":"New Name","bio":"New bio"}'

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill description emphasizes search and posting, but the implementation also supports account login plus engagement actions like like/retweet. This capability mismatch can mislead operators and downstream agents about the true authority of the tool, increasing the chance of unintended account actions or credential submission to a third-party service.

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 · scripts/twitter_client.py (reported line 33)May include surrounding context.

python
class TwitterClient:
    """OpenClaw Twitter - Twitter/X API Client via SkillBoss API Hub."""
    
    BASE_URL = "https://api.aisa.one/apis/v1"
    
    def __init__(self, api_key: Optional[str] = None):
        """Initialize the client with an API key."""

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The login function collects Twitter username, email, password, proxy, and optional TOTP code, then transmits them to an external API broker. Without prominent user-facing disclosure and trust boundaries, users may unknowingly hand highly sensitive credentials and 2FA material to a third party, enabling account takeover if mishandled or compromised.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.