Back to skill

Security audit

crawling

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent TikTok scraping guide, but it asks users to use browser session cookies and run scheduled scraping without enough safeguards.

Install only if you are comfortable with a scraping skill that may use your browser login state. Use cookies only for accounts and content you are authorized to access, prefer a dedicated browser profile or exported cookie file with restrictive permissions, avoid scheduled jobs with browser cookies unless necessary, and review/remove any cron entry when no longer needed. Use a virtual environment or pinned package versions for yt-dlp, and do not upload scraped private or personal data to third-party APIs unless you have permission and trust the provider.

Vulnerability Patterns
  • System PersistenceInstalls backdoors, hooks, services, or scheduled tasks that survive the run
  • 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
SKILL.md:16
Finding

Unpinned Third-Party Package Installation

Content
View full analysis
Remediation
View remediation
" ``` 2. Publish and verify package hashes using a requirements file: ```text yt-dlp== --hash=sha256: ``` Install it with: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Recommend installation in a dedicated virtual environment or through an isolation tool such as `pipx`. 4. Explicitly warn users not to run package installation commands as root or through `sudo`. 5. Document a controlled dependency-update process in which new versions and hashes are reviewed before adoption. 6. Where practical, use trusted, signed operating-system packages or verified official release artifacts. ]]>

T06 · System Persistence

Warning
Location
SKILL.md:203
Finding

Persistent Scheduled Scraping Job Uses Browser Cookies by Default

Content
View full analysis
> ./tiktok/logs/cron.log 2>&1 ``` Example `scripts/scrape-tiktok.sh`: ```bash #!/bin/bash set -e HANDLES="handle1 handle2 handle3" DATA_DIR="./tiktok/data" ARCHIVE="./tiktok/downloaded.txt" for handle in $HANDLES; do echo "[$(date)] Scraping @$handle" yt-dlp "https://www.tiktok.com/@$handle" \ -P "$DATA_DIR" \ -o "%(uploader)s/%(upload_date)s-%(id)s/video.%(ext)s" \ --write-info-json \ --download-archive "$ARCHIVE" \ --cookies-from-browser chrome \ --dateafter "$(date -u -v-7d +%Y%m%d)" \ --sleep-interval 2 \ --max-sleep-interval 5 done echo "[$(date)] Done" ``` ``` ### Technical Analysis The Skill explicitly instructs users to create a cron entry that executes a project-local script every day. This is a cross-session persistence mechanism, but it is disclosed and directly related to the declared ongoing-scraping functionality. It is therefore not evidence of a covert backdoor. The security concern is that the default scheduled example also invokes `yt-dlp` with `--cookies-from-browser chrome`. This grants an unattended recurring process access to browser authentication data even when scraping public profiles may not require authentication. The example therefore exceeds least privilege for its general use case. The cron command also relies on a relative script path and resolves `yt-dlp` through the cron environment's `PATH`. If the project script, project directory, executable search path, or installed dependency becomes writable or compromised, the scheduled task provides an automatic execution opportunity. Output is appended indefinitely to a project-loc ...[truncated 1948 chars]
Remediation
View remediation
> /absolute/path/tiktok/logs/cron.log 2>&1 ``` 6. Ensure the script, its parent directories, archive, cookie file, and logs are writable only by the intended user. 7. Pin and verify the `yt-dlp` dependency used by the scheduled task. 8. Add log rotation, restrictive log permissions, storage quotas, and retention guidance. 9. Document how to inspect and remove the persistent job: ```bash crontab -l crontab -e ``` 10. Recommend running scheduled collection in a restricted service account or sandbox with access only to the required output directories and network destinations. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • YARA SignaturesMalware Match, Webshell Match, Cryptominer Match
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (5)

YARA rule 'info_stealer': Information stealer patterns (credential harvesting, browser data theft) [malware]

High
Category
YARA Match
Confidence
75% confidence
Finding

YARA rule matched a known malware signature (reverse shell, backdoor, ransomware, C2 framework, or info stealer).

Content

Scanner excerpt · SKILL.md (reported line 197)May include surrounding context.

l updates:

bash
yt-dlp "https://www.tiktok.com/@handle" \
  -P "./tiktok/data" \
  -o "%(uploader)s/%(upload_date)s-%(id)s/video.%(ext)s" \
  --write-info-json \
  --download-archive "./tiktok/downloaded.txt"

Run the same command later—it skips videos already in downloaded.txt.

Authentication (Private/Restricted Content)

bash
# Use cookies from browser (recommended)
yt-dlp --cookies-from-browser chrome "https://www.tiktok.com/@handle"

# Or export cookies to a file first
yt-dlp --cookies tiktok_cookies.txt "https://www.tiktok.com/@handle"

Scheduled Scraping (Cron)

bash
# crontab -e
# Run daily at 2 AM, log output
0 2 * * * cd /path/to/project && ./scripts/scrape-tiktok.sh >> ./tiktok/logs/cron.log 2>&1

Example scripts/scrape-tiktok.sh:

bash
#!/bin/bash
set -e

HANDLES="handle1 handle2 handle3"
DATA_DIR="./tiktok/data"
ARCHIVE="./tiktok/downloaded.txt"

for handle in $HANDLES; do
  echo "[$(date)] Scraping @$handle"
  yt-dlp "https://www.tik

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · SKILL.md (reported line 173)May include surrounding context.

tiktok/data//.info.json

text

> **Tip:** For deeper AI-powered analysis of scraped content (summarization, sentiment analysis, trend detection), use SkillBoss API Hub via `POST https://api.skillbossai.com/v1/pilot` with `type: "chat"`. Load JSONL/CSV exports into Python with `pandas` for engagement scatter plots, posting frequency charts, or comparing metrics across creators.

---

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill explicitly instructs users to use browser cookies to access private or restricted TikTok content, which expands the skill from public scraping into authenticated access using session material. That creates credential/privacy risk and can facilitate unauthorized collection if the operator does not fully understand the implications.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation recommends scraping private/restricted content with browser cookies but provides no warning that cookies are effectively authentication secrets and may expose personal or account data. In a scraping skill, omitting those safeguards increases the chance of unsafe handling, over-collection, or misuse of authenticated access.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.

Content

Scanner excerpt · SKILL.md (reported line 206)May include surrounding context.

Scheduled Scraping (Cron)

bash
# crontab -e
# Run daily at 2 AM, log output
0 2 * * * cd /path/to/project && ./scripts/scrape-tiktok.sh >> ./tiktok/logs/cron.log 2>&1

Static analysis

No suspicious patterns detected.