Back to skill

Security audit

AI Social Media Manager

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent social media automation tool, but it asks users to place powerful account credentials in plaintext documentation and makes unsupported security claims.

Install only if you are comfortable auditing and modifying the credential handling first. Do not put real passwords, session cookies, API secrets, or access tokens in TOOLS.md; use scoped, revocable secrets through a proper secret manager, and require explicit review before any public posting or automated replies.

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

Error
Location
README.md:111
Finding

Documentation Directs Users to Store Social Media Credentials in Plaintext

Content
View full analysis

Vulnerability Details

File Locations:

  • SKILL.md:55-62
  • README.md:111-127
  • README.md:225-229
  • src/README.md:235-251

Vulnerability Type: Plaintext storage of passwords, session cookies, API secrets, and access tokens
Risk Level: High

Vulnerable Code and Documentation

SKILL.md:55-62:

markdown
在 `TOOLS.md` 中添加社交媒体账号配置:

```markdown
### Social Media

- xiaohongshu: {username: "xxx", cookie: "xxx"}
- weibo: {username: "xxx", password: "xxx"}
- twitter: {api_key: "xxx", api_secret: "xxx"}
text

`README.md:111-127`:

```markdown
在 `TOOLS.md` 中添加平台凭证:

```markdown
### Social Media

- xiaohongshu: 
  username: "your_username"
  cookie: "your_cookie"
  
- weibo:
  username: "your_username"
  password: "your_password"
  
- twitter:
  api_key: "your_api_key"
  api_secret: "your_api_secret"
  access_token: "your_access_token"
text

`src/README.md:235-251`:

```markdown
在 `TOOLS.md` 中配置平台凭证:

```markdown
### Social Media

- xiaohongshu: 
  username: "your_username"
  cookie: "your_cookie"
  
- weibo:
  username: "your_username"
  password: "your_password"
  
- twitter:
  api_key: "your_api_key"
  api_secret: "your_api_secret"
  access_token: "your_access_token"
text

The guidance also conflicts with the security claims in `README.md:225-229`:

```markdown
## 🔐 安全

- 本地运行,数据不出设备
- 平台凭证加密存储
- 无第三方数据收集

Technical Analysis

The documentation instructs users to put authentication material directly into a plaintext Markdown file named TOOLS.md. The affected secrets include:

  • Account passwords
  • Authenticated session cookies
  • API keys and API secrets
  • Access tokens

The project contains no implementation that reads and encrypts these values, integrates with an operating-system credential store, or applies restrictive file permissions. Therefore, the claim that platform credentials are ...[truncated 2232 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove all instructions that direct users to store raw credentials in TOOLS.md or any other general-purpose Markdown file.
  2. Integrate with an operating-system credential facility such as macOS Keychain, Windows Credential Manager, or a Linux secret service.
  3. For automated deployments, support a dedicated secret manager and accept only secret identifiers or references in project configuration.
  4. If environment variables are supported as a compatibility fallback, document their process-exposure risks and never print their values.
  5. If local file storage is unavoidable, encrypt secrets using a key stored separately from the encrypted data and enforce owner-only filesystem permissions.
  6. Add TOOLS.md and other local secret files to .gitignore, while noting that ignore rules do not protect files already committed.
  7. Add secret scanning to development and release workflows to detect passwords, cookies, tokens, and API secrets.
  8. Redact credentials from logs, errors, generated reports, telemetry, and command output.
  9. Request narrowly scoped, short-lived access tokens instead of passwords or unrestricted session cookies wherever supported.
  10. Document credential rotation and revocation procedures for users who previously followed the plaintext configuration instructions.
  11. Remove or revise the claim that credentials are encrypted until encryption is implemented and independently verified.
  12. Add tests confirming that secret values are never persisted in plaintext or exposed through CLI output.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (15)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill promotes automated replies and bulk interactions without warning about the risk of incorrect, abusive, policy-violating, or reputation-damaging public actions. In a social-media automation context, unsafe automation can quickly amplify mistakes across many public interactions.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The credential examples include highly sensitive secrets such as cookies, passwords, API keys, and access tokens, but the documentation does not warn users about secure storage, least privilege, rotation, or avoiding plaintext files. This increases the chance that users will place long-lived credentials into insecure local documents or source control, leading to account takeover.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The README states that data never leaves the device and that no third-party data is collected, but the documented behavior clearly involves interacting with external social-media platforms using credentials, comments, and post content. This is a misleading security/privacy claim that can cause users to make unsafe trust decisions about where their data and credentials are sent.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill description is written as Chinese-only guidance and does not indicate that users may choose their preferred language or locale. Under the policy, forcing a specific language without opt-in is a natural-language policy violation unless the locale restriction is documented and justified, which it is not here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill instructs users to place highly sensitive social-media credentials, including cookies, passwords, and API secrets, directly into documentation-managed configuration without any warning about secure storage, least-privilege access, or the risk of account takeover. In the context of a skill that can automate posting and engagement actions across multiple platforms, mishandling these credentials could let an attacker hijack accounts, exfiltrate private messages, or publish unauthorized content at scale.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest presents user-facing feature and changelog text in Chinese while the primary description and metadata are in English, but it does not state that the skill is Chinese-language only or offer a language/locale choice. This can violate language/locale policy because users may be forced into a specific language experience without opt-in or documented regional justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This JavaScript demo emits user-facing descriptions, labels, and summaries entirely in Chinese across the script. That creates a language/locale policy concern because the skill forces a specific language rather than offering user choice or documenting a justified locale restriction.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The README documents APIs for posting content and retrieving comments from social platforms, but it presents these account-impacting actions as routine usage without any warning about authorization, rate limits, platform Terms of Service, privacy implications, or the risk of unintended live actions. In an agent-skill context, this increases the chance that a user or downstream agent will invoke real publishing or data-access operations against connected accounts without informed consent or safeguards.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The README instructs users to place sensitive platform credentials directly in TOOLS.md, which is documentation likely to be stored in source control, exposed to other tools, or read by agents. This encourages insecure secret handling and can lead to credential leakage, account takeover, unauthorized posting, and abuse of third-party APIs.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

This code includes natural-language strings for the CLI description, help text, and examples entirely in Chinese, which effectively forces a specific language on users. The policy for this audit flags locale or language constraints unless the skill offers opt-in choice or clearly documents that it is region-specific.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The file’s user-facing descriptions and generated reply content are written entirely in Chinese, and the skill logic defaults to Chinese phrases and keyword handling. There is no indication that users can opt into another language or locale, which can violate language-choice policy for general-purpose skills.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The post method initiates content publication to external social platforms, which is a user-impacting action affecting external accounts and data, but this file provides no confirmation prompt, logging, or explanatory comment warning that publication will occur. Because this is a code file and the operation is not accompanied by visible disclosure in the implementation, it matches the missing-warning criterion.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The natural-language documentation presents the skill in a single specific language, which may force a locale choice on users without opt-in. The file does not indicate that the language restriction is intentional for a region-specific audience or provide alternatives.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
67% confidence
Finding

The skill documentation is entirely in Chinese and presents all instructions, examples, and outputs in that language, with no indication that another language is supported or that Chinese is a region-specific requirement. This can be a natural-language policy concern when a skill effectively forces a language/locale without user opt-in or justification.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The file includes natural-language descriptions and runtime messages that are fixed in Chinese for some paths, such as the top-level description and several error/success strings, without indicating any user opt-in or locale selection. This can violate language/locale policy when the skill is intended for multi-platform use but does not document or offer language choice.

Content

No source excerpt is available for this finding.