Back to skill

Security audit

tt_live

Security checks for vulnerabilities and agentic risk

Overview

The skill’s TikTok monitoring purpose is coherent, but its documented shell workflow uses an unvalidated user handle in commands, creating a real command-injection risk.

Review this skill before installing or using it. It should validate TikTok handles and pass them as quoted single arguments before any shell invocation. Avoid using it with untrusted or free-form handles until that is fixed, and be aware it contacts TikTok and writes local monitor state, logs, and cached stream URLs.

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
SKILL.md:138
Finding

Unquoted User-Controlled TikTok Handle Enables Shell Command Injection

Content
View full analysis
)" SEC_UID="$(echo "$JSON" | python3 -c 'import json,sys; print(json.load(sys.stdin)["sec_uid"])')" ``` ```bash DAEMON_OUT="$(tt-live.sh daemon --hours N --poll-min 5)" EVENTS_DIR="$(echo "$DAEMON_OUT" | awk -F= '/^events_dir=/{print $2}')" EVENTS_FILE="$EVENTS_DIR/$SEC_UID.events" ``` ### Technical Analysis The canonical workflow instructs an agent to substitute a requester-supplied TikTok handle directly into shell command text. The `` argument is neither quoted nor validated against the permitted TikTok handle syntax. If an agent performs textual substitution as documented, shell control operators, command substitutions, redirections, or other metacharacters included in the supplied value can become part of the generated shell program. This allows the value to change the command structure rather than remaining a single argument to `tt-live.sh`. For example, substituting a value containing a command separator could cause the generated command substitution to execute an additional local command: ```bash JSON="$(tt-live.sh check victim; touch /tmp/injected)" ``` The same unsafe pattern appears in both the one-shot identity check and daemon startup workflow. Exploitation depends on the consuming agent inserting requester-controlled text into the documented command verbatim, but the skill explicitly presents this as its canonical procedure. ### Attack Path 1. An attacker asks the agent to check or monitor a purported TikTok username containing shell syntax. 2. The agent substitutes that requester-controlled value for `` in the canonical workflow. 3. The agent executes the resulting shell command. 4. The shell interprets the injected syntax as part of the command structure. 5. The injected command e ...[truncated 974 chars]
Remediation
View remediation
&2 exit 2 ;; esac ``` 3. Enforce authoritative length limits in addition to the character allowlist. 4. Prefer a process-execution API that accepts an argument array rather than generating shell source. For example, invoke: ```text ["tt-live.sh", "check", validated_user] ``` 5. Harden `tt-live.sh` independently so that callers cannot bypass documentation-level validation. It should validate the username again, reject malformed or option-like values, and avoid `eval` or secondary shell parsing. 6. Validate numeric daemon parameters such as `--hours` and `--poll-min` as bounded integers before execution. 7. Add regression tests using values containing semicolons, command substitutions, redirections, whitespace, newlines, glob characters, and leading hyphens. Tests should verify that invalid handles are rejected without executing any secondary command. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (1)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The skill clearly performs outbound network access to TikTok and may invoke third-party extraction tooling such as yt-dlp and streamlink, but the description does not warn users about those privacy-relevant side effects. This is primarily a transparency and consent issue: operators may unknowingly disclose query targets, IP metadata, or usage patterns to external services when invoking the skill.

Content

No source excerpt is available for this finding.