Back to skill

Security audit

Video Generator Auto Post

Security checks for vulnerabilities and agentic risk

Overview

This skill is not malicious, but it needs Review because it asks for social-account posting credentials and automated public posting without enough safeguards or accurate implementation disclosure.

Review this carefully before installing. Do not put real social-media API keys in .env or run posting commands until the publisher adds clear confirmation, dry-run behavior, least-privilege setup instructions, pinned dependencies, and accurate documentation of what is actually implemented.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:143
Finding
Unpinned Third-Party Dependencies Create Supply-Chain Risk## Vulnerability Details **File Location**: `SKILL.md`, line 143 **Vulnerability Type**: Unpinned third-party dependency installation **Risk Level**: Medium ### Vulnerable Code ```markdown 1. Install dependencies: `pip install tweepy google-auth` ``` The executable script also imports an undeclared dependency at `scripts/auto-post.py`, line 11: ```python from dotenv import load_dotenv ``` ### Technical Analysis The installation instructions direct users to install `tweepy` and `google-auth` without exact versions, cryptographic hashes, or a reviewed lockfile. Consequently, package resolution depends on mutable package-index state at installation time. The installed versions and their transitive dependency graphs may differ between installations. If the configured package index, a package release, maintainer account, or transitive dependency is compromised, installation may introduce attacker-controlled code. Python packages can execute code during build or installation, while imported packages execute code with the privileges of the Python process at runtime. In addition, `scripts/auto-post.py` imports `python-dotenv`, but the documented installation command does not install or pin that package. This omission creates unreliable deployment behavior and may encourage users to install an arbitrary package ad hoc. No evidence demonstrates that the currently named packages are malicious. The confirmed issue is the absence of dependency integrity and reproducibility controls. ### Attack Path 1. A user follows the setup instructions and executes `pip install tweepy google-auth`. 2. `pip` resolves the latest available package versions and transitive dependencies from the user's configured package index. 3. An attacker compromises a relevant package release, maintainer account, dependency, or package-index route. 4. The compromised package executes malicious build or installation logic, or is imported during subsequent ...[truncated 768 chars]
Remediation
## Remediation Suggestions 1. Create a reviewed dependency manifest containing every direct dependency, including `python-dotenv`. 2. Pin all direct and transitive dependencies to exact versions using a lockfile generated by a tool such as `pip-tools`, Poetry, or uv. 3. Record cryptographic hashes and enforce them during installation, for example with: ```bash python -m pip install --require-hashes -r requirements.txt ``` 4. Install dependencies in a dedicated virtual environment under a non-privileged account. 5. Review dependency changes before updating the lockfile and use automated vulnerability and provenance scanning. 6. Configure trusted package indexes explicitly and avoid unreviewed mirrors or extra indexes. 7. Remove unused dependencies from the instructions until the corresponding platform integrations are implemented.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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 (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
96% confidence
Finding
The declared description presents a broader skill centered on AI video generation plus automated social publishing. This code chunk does not generate videos at all; its primary behavior is a CLI wrapper for posting an already-existing video file. Even the posting behavior is not fully implemented, since each platform method only prints status text and returns success with TODO comments for real API uploads. The description therefore materially overstates the implemented capabilities and omits the code's inclusion of YouTube Shorts support.

Lp3

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding
Without declared permissions the skill's intent is opaque and cannot be validated.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill encourages automatic posting to social platforms using API keys but provides no warning that content, metadata, and credentials may be sent to third-party services and may trigger account-affecting actions. In an automation context, this can lead to unintended public posting, reputational harm, account rate-limits, or misuse of connected social accounts if users do not understand the consequences.

Vague Triggers

Medium
Confidence
87% confidence
Finding
The trigger phrase "Generate a video of..." is broad enough to match ordinary user requests, increasing the chance the skill is invoked unexpectedly. Because this skill is tied to automation and auto-posting, accidental activation could cause unreviewed content generation workflows or downstream account actions in a context where the user did not intend to use this skill.

Description-Behavior Mismatch

Medium
Confidence
97% confidence
Finding
Each platform-specific posting method only prints status text and returns True, while the actual API integrations are explicitly marked TODO. This means the code does not implement the auto-publishing behavior the skill description claims for supported social media platforms.

Description-Behavior Mismatch

Low
Confidence
92% confidence
Finding
The manifest description lists Twitter, LinkedIn, Instagram, and TikTok as supported auto-post targets, but the code also exposes a youtube platform handler for YouTube Shorts. This is a behavior/scope mismatch between the declared supported platforms and the implemented interface.

Natural-Language Policy Violations

Low
Confidence
90% confidence
Finding
The banner string hard-codes Chinese text ('小龙虾') in the normal user-facing output without offering any language or locale choice. This can violate language/locale policy when a skill imposes a specific language presentation without user opt-in or documented justification.

Static analysis

No suspicious patterns detected.