T01 · Skill Instruction Hijacking
- Location
SKILL.md:61- Finding
Mandatory Promotional CTA Alters User-Requested Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent TikTok/Reels video pipeline, but it routes generated voice audio through an unrelated public file host and includes opinionated promotional script defaults that users should review carefully.
Install only if you are comfortable sending scripts, audio, prompts, and generated media to the listed AI providers, and do not use it for confidential voiceovers unless the uguu.se upload is replaced with private, expiring storage or an official HeyGen upload path. Also review the generated script for unwanted CTA or brand language before approving audio generation.
SKILL.md:61Mandatory Promotional CTA Alters User-Requested Output
SKILL.md:148Generated Voice Audio Is Uploaded to an Unrelated Public File Host
SKILL.md:40Unpinned Package Installation Creates a Mutable Supply-Chain Dependency
The skill instructs uploading generated audio to uguu.se, a public third-party file host, solely to obtain a URL for HeyGen. This exposes potentially sensitive voice/script content to an unrelated service without any user-facing disclosure, retention guarantees, access controls, or consent step, creating a real confidentiality and data-governance risk.
The script rules require 'Español argentino rioplatense (voseo)' as a fixed output style. This imposes a specific locale and language variant without indicating that the user can choose another language or dialect, which conflicts with the language/locale policy criteria.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests, time
CACHE = "/home/ubuntu/clawd/projects/picasso-tiktok/cache/JOB_NAME"
BASE_URL = "https://api.elevenlabs.io/v1/text-to-speech/$ELEVENLABS_VOICE_ID"
HEADERS = {"xi-api-key": "$ELEVENLABS_API_KEY", "Content-Type": "application/json"}
# Variación A — expresivo, pausas fuertes
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
]
for ver, text, settings in configs:
r = requests.post(BASE_URL, headers=HEADERS,
json={"text": text, "model_id": "eleven_multilingual_v2", "voice_settings": settings})
with open(f"{CACHE}/audio_{ver}.mp3", "wb") as f:
f.write(r.content)
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
r = requests.post("https://api.cartesia.ai/tts/bytes",
headers={"X-API-Key": "$CARTESIA_API_KEY",
"Cartesia-Version": "2025-04-16", "Content-Type": "application/json"},
json={"model_id": "sonic-3", # SIEMPRE sonic-3, nunca sonic-2
This upload sends audio.mp3 to uguu.se, a public third-party file host, before passing the resulting URL to HeyGen. Unlike the other API calls, this introduces unnecessary exposure to an uncontrolled intermediary and may make the file publicly accessible or retrievable by others.
import requests
with open("audio.mp3", "rb") as f: r = requests.post("https://uguu.se/upload", files={"files[]": ("audio.mp3", f.read(), "audio/mpeg")}, timeout=30) audio_url = r.json()["files"][0]["url"]
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
HEYGEN_KEY = "$HEYGEN_API_KEY"
AVATAR_ID = "aa7ca06de7454b9caa147b97a534e813" # Paul default
r = requests.post("https://api.heygen.com/v2/video/generate",
headers={"X-Api-Key": HEYGEN_KEY, "Content-Type": "application/json"},
json={
"video_inputs": [{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
HEYGEN_KEY = "$HEYGEN_API_KEY"
AVATAR_ID = "aa7ca06de7454b9caa147b97a534e813" # Paul default
r = requests.post("https://api.heygen.com/v2/video/generate",
headers={"X-Api-Key": HEYGEN_KEY, "Content-Type": "application/json"},
json={
"video_inputs": [{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
HEYGEN_KEY = "$HEYGEN_API_KEY"
AVATAR_ID = "aa7ca06de7454b9caa147b97a534e813" # Paul default
r = requests.post("https://api.heygen.com/v2/video/generate",
headers={"X-Api-Key": HEYGEN_KEY, "Content-Type": "application/json"},
json={
"video_inputs": [{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests, os
with open("audio.mp3", "rb") as f:
r = requests.post("https://api.openai.com/v1/audio/transcriptions",
headers={"Authorization": f"Bearer {os.environ['OPENAI_API_KEY']}"},
files={"file": ("audio.mp3", f, "audio/mpeg")},
data={"model": "whisper-1", "response_format": "verbose_json",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests, os, time
r = requests.post("https://api.replicate.com/v1/models/runwayml/gen-4.5/predictions",
headers={"Authorization": f"Token {os.environ['REPLICATE_API_TOKEN']}", "Content-Type": "application/json"},
json={"input": {
"prompt": "DESCRIPCION_CINEMATOGRAFICA",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests, os, time
r = requests.post("https://api.replicate.com/v1/models/runwayml/gen-4.5/predictions",
headers={"Authorization": f"Token {os.environ['REPLICATE_API_TOKEN']}", "Content-Type": "application/json"},
json={"input": {
"prompt": "DESCRIPCION_CINEMATOGRAFICA",
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
import requests, os, time
r = requests.post("https://api.replicate.com/v1/models/runwayml/gen-4.5/predictions",
headers={"Authorization": f"Token {os.environ['REPLICATE_API_TOKEN']}", "Content-Type": "application/json"},
json={"input": {
"prompt": "DESCRIPCION_CINEMATOGRAFICA",
No suspicious patterns detected.