Back to skill

Security audit

movie-tv-research

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed Crawlora API helper for movie and TV research, with some documentation scope rough edges but no hidden persistence, destructive behavior, or credential misuse in the artifacts.

Install only if you are comfortable sending movie/TV search terms, selected IDs or URLs, and your Crawlora API key to Crawlora. Keep the API key in the environment, do not hardcode it, and be aware that the current endpoint catalog includes a few broader public-data endpoints such as Metacritic games and Letterboxd member profiles.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Lp3

Medium
Category
MCP Least Privilege
Confidence
88% confidence
Finding
The skill invokes shell-based helper commands (`scripts/crawlora.sh`) but does not declare any explicit tool scope such as `permissions` or `allowed-tools`. That creates an unnecessary capability gap: an agent may be permitted broader shell access than the skill actually needs, increasing the chance of unintended command execution or abuse if the skill is modified or combined with adversarial inputs.

External Transmission

Medium
Category
Data Exfiltration
Content
- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).
- Set `CRAWLORA_API_KEY` in the environment before running the helper.
- The helper reads `CRAWLORA_API_KEY` from the environment and sends requests to `https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.

## How it works
Confidence
76% confidence
Finding
The skill is designed to transmit user queries and the bearer API credential to an external third-party service (`api.crawlora.net`). Even though this is the intended function of the skill and the key is read from the environment rather than hardcoded, it still creates a real data exfiltration boundary: user-supplied title queries, usage patterns, and the secret-bearing request leave the local trust boundary and depend on the third party's security and logging practices.

Missing User Warnings

Medium
Confidence
90% confidence
Finding
The reference states that requests require an API key for an external service, but it does not clearly warn users that their queries and selected identifiers will be transmitted off-platform. In a research skill, users may reasonably expect title lookup, cast, reviews, and availability queries to remain local unless external transmission is clearly disclosed, so the omission creates a transparency and consent gap.

Description-Behavior Mismatch

Medium
Confidence
96% confidence
Finding
The skill manifest says the skill is for movie and TV research, but the endpoint reference also exposes Metacritic game endpoints. That scope expansion can cause the agent to access or return data outside the user's expected purpose, weakening least-privilege and increasing the chance of unintended tool use. In this context it is not direct code execution, but it is a real capability mismatch with security and trust implications.

External Transmission

Medium
Category
Data Exfiltration
Content
#!/usr/bin/env bash
# Crawlora REST helper — minimal, dependency-free (curl only).
# Calls https://api.crawlora.net/api/v1 with your Crawlora API key.
# Get a free key (2,000 credits/mo, no card) at https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills.
#
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
#!/usr/bin/env bash
# Crawlora REST helper — minimal, dependency-free (curl only).
# Calls https://api.crawlora.net/api/v1 with your Crawlora API key.
# Get a free key (2,000 credits/mo, no card) at https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills.
#
# Usage:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
#!/usr/bin/env bash
# Crawlora REST helper — minimal, dependency-free (curl only).
# Calls https://api.crawlora.net/api/v1 with your Crawlora API key.
# Get a free key (2,000 credits/mo, no card) at https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills.
#
# Usage:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
#!/usr/bin/env bash
# Crawlora REST helper — minimal, dependency-free (curl only).
# Calls https://api.crawlora.net/api/v1 with your Crawlora API key.
# Get a free key (2,000 credits/mo, no card) at https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills.
#
# Usage:
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Description-Behavior Mismatch

Medium
Confidence
93% confidence
Finding
The usage comments present examples for /amazon/search, /youtube/transcript, and /google/trends endpoints, which are outside the manifest's stated purpose of researching movies and TV shows across specific entertainment data sources. Although the runtime path allowlist later restricts actual execution, the file's documented behavior still overstates the helper as a more general Crawlora client than the skill claims to be.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Content
# Keep the API key out of the curl process command line. A private temporary
# config supplies the header and is removed automatically on exit.
curl_config="$(mktemp "${TMPDIR:-/tmp}/crawlora-curl.XXXXXX")"
chmod 600 "$curl_config"
trap 'rm -f "$curl_config"' EXIT
printf 'header = "x-api-key: %s"\n' "$CRAWLORA_API_KEY" >"$curl_config"
auth=(--config "$curl_config")
Confidence
80% confidence
Finding
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

External Transmission

Medium
Category
Data Exfiltration
Content
[ -n "$body" ] || body='{}'
  # Stream the body on stdin so curl never interprets a user value as its
  # @file shorthand (and cannot read local files supplied in a request body).
  printf '%s' "$body" | curl -fsS -X "$method" "${auth[@]}" \
    -H "Content-Type: application/json" --data-binary @- "${base}${path}"
fi
Confidence
70% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Context-Inappropriate Capability

Low
Confidence
87% confidence
Finding
The Letterboxd member profile lookup endpoint allows research on individual user profiles, which is outside the stated purpose of title-level movie/TV research. Even if the data is public, exposing person-profile lookup expands collection of user-related data and can enable unnecessary profiling or surprise users about what the skill can inspect.

Intent-Code Divergence

Low
Confidence
88% confidence
Finding
Lines 41-43 assert that the helper is limited to the movie-tv-research route set and excludes unrelated API routes. That intent conflicts with the earlier usage documentation, which actively instructs use of Amazon, YouTube, and Google endpoints not permitted by the path allowlist and not aligned with the skill's purpose.

Static analysis

No suspicious patterns detected.