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## 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"} ``` ``` `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" ``` ``` `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" ``` ``` 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
## 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
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.

Missing User Warnings

Medium
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.

Intent-Code Divergence

Medium
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.

Natural-Language Policy Violations

Medium
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.

Missing User Warnings

Medium
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.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Medium
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.

Missing User Warnings

Medium
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.

Missing User Warnings

Medium
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.

Natural-Language Policy Violations

Medium
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.

Natural-Language Policy Violations

Medium
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.

Missing User Warnings

Medium
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.

Natural-Language Policy Violations

Low
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.

Natural-Language Policy Violations

Low
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.

Natural-Language Policy Violations

Low
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.

Static analysis

No suspicious patterns detected.