Back to skill

Security audit

AI Influencer

Security checks for vulnerabilities and agentic risk

Overview

This skill is framed as a real AI video-generation pipeline, but its bundled script only simulates the work and reports success without creating the claimed output.

Review this skill before installing. Do not rely on it to produce a real video in its current form, and do not provide API keys, face images, voice material, or scripts unless the implementation is corrected, privacy handling is clearly documented, and outputs are verified.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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
Findings (2)

T08 · Insecure Dependencies

Warning
Location
scripts/influencer_pipeline.py:1
Finding
Unpinned and Unused Third-Party Dependencies## Vulnerability Details **File Location**: `scripts/influencer_pipeline.py`, lines 1-7 **Vulnerability Type**: Unpinned dependency resolution and unnecessary supply-chain exposure **Risk Level**: Medium ### Evidence ```python # /// script # requires-python = ">=3.12" # dependencies = [ # "pyjwt", # "requests", # ] # /// ``` The documented invocation in `SKILL.md`, line 27, uses `uv run`: ```bash uv run {baseDir}/scripts/influencer_pipeline.py \ --image "/path/to/reference.png" \ --prompt "A man sitting at a desk looking at the camera, subtle natural movement, calm, talking head" \ --text "This is the script that the AI avatar will speak." \ --voice-id "YOUR_ELEVENLABS_VOICE_ID" ``` ### Technical Analysis The inline dependency metadata declares `pyjwt` and `requests` without exact versions, integrity hashes, or a reviewed lockfile. Running the script through `uv run` can therefore resolve and install dependency releases available from the configured package index at execution time. Neither package is imported or used by the current script, so this supply-chain exposure serves no functional purpose. The effective dependency set can also change between executions without any modification to the audited repository. If a package release, transitive dependency, configured package index, or source distribution is compromised, dependency resolution or build processing may expose the host to attacker-controlled code. ### Attack Path 1. An attacker compromises a declared package, one of its transitive dependencies, or a package source trusted by the runtime environment. 2. The attacker publishes a malicious release that satisfies the unconstrained dependency declaration. 3. A user or Agent invokes the documented `uv run` command. 4. `uv` resolves the unpinned dependency set and may download or build the attacker-controlled release. 5. Malicious build or package behavior executes ...[truncated 654 chars]
Remediation
## Remediation Suggestions 1. Remove `pyjwt` and `requests` from the inline metadata while they remain unused. 2. When API integration is implemented, pin each direct dependency to an exact, reviewed version. 3. Maintain a committed lockfile and use frozen or locked dependency resolution in automated execution. 4. Verify package integrity through trusted indexes and hashes where the package workflow supports them. 5. Review transitive dependencies and reject unexpected source distributions or package-index overrides. 6. Run the pipeline as a minimally privileged account and provide API credentials only for the duration of the operation. 7. Add automated dependency scanning and controlled update review to the release process.

T07 · Tool Hijacking and Spoofing

Note
Location
scripts/influencer_pipeline.py:36
Finding
Pipeline Spoofs Successful API Operations and Output Generation## Vulnerability Details **File Location**: `scripts/influencer_pipeline.py`, lines 36-54 **Vulnerability Type**: API and output-result spoofing **Risk Level**: Low ### Evidence ```python print("\n[Step 2] Voice Cloning (ElevenLabs)") print(f"Generating speech for: '{args.text[:30]}...' using Voice ID {args.voice_id}") time.sleep(1) print("✅ Audio track generated (audio.mp3).") print("\n[Step 3] Kling AI Lip-Sync & Animation") print("Uploading assets to Kling API and requesting Avatar generation...") # This represents the identify-face + advanced-lip-sync workflow we built time.sleep(1) print("⏳ Waiting for Kling rendering (this usually takes 5-10 minutes)...") time.sleep(2) print("\n🎉 SUCCESS! Your AI Influencer video has been generated.") print("Output saved to: ./final_influencer_video.mp4") ``` ### Technical Analysis The script reports that speech was generated, assets were uploaded to Kling, rendering completed, and a final video was saved. However, the audited implementation contains no HTTP requests, image processing, audio generation, file creation, or output validation. It only checks whether credential environment variables exist, prints status messages, and waits using `time.sleep`. Consequently, the command exits successfully and presents simulated activity as completed API work. This contradicts the operational behavior described in `SKILL.md` and can mislead an Agent or downstream workflow into treating nonexistent artifacts as valid results. This finding does not demonstrate credential theft or malicious replacement of an installed system tool. It concerns the script's spoofing of API activity and successful tool output. ### Attack Path 1. A user or Agent follows `SKILL.md` and invokes the pipeline with the required arguments. 2. The environment contains nonempty values for the three required credential variables, allowing the superficial checks to pass. 3. The script performs fixe ...[truncated 1078 chars]
Remediation
## Remediation Suggestions 1. Until the integrations are implemented, terminate with a nonzero exit status and an explicit message that the pipeline is a simulation. 2. Do not print success messages for operations that were not performed. 3. Implement authenticated API requests with explicit timeouts, response-status validation, bounded retries, and safe error handling. 4. Track asynchronous rendering through a real job identifier and report completion only after the provider confirms success. 5. Download generated artifacts to an explicitly selected output path and write them atomically. 6. Verify that output files exist, are newly created, are nonempty, and have an expected media format before returning success. 7. Return machine-readable status information so Agents do not have to infer completion from decorative console text. 8. Update `SKILL.md` to distinguish mocked behavior from implemented functionality.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding
The skill claims to automate identity generation, voice cloning, and video rendering through named third-party services, but the described implementation does not actually perform those actions and may falsely report successful output. This is dangerous because users may trust fabricated results, mishandle sensitive media under false assumptions, or approve a workflow that has not been honestly described or validated.

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill invokes a script that relies on environment secrets and external network access, but the manifest does not declare any tool scope or permissions. This weakens policy enforcement and informed review because an operator cannot easily see that the skill needs outbound API access and secret material to function.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill processes highly sensitive biometric and personal data—reference photos, cloned voice content, and user scripts—and sends them to external AI providers without any warning in the skill description. In this context, undisclosed transmission is especially risky because face and voice cloning data can enable impersonation, privacy violations, and regulatory exposure.

Static analysis

No suspicious patterns detected.