Lp1
- Category
- MCP Least Privilege
- Confidence
- 75% confidence
- Finding
The skill uses 'shell' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.
- Content
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a disclosed Crawlora API helper for public storefront research, with no persistence or destructive behavior, but its brand endpoint catalog is broader than the Shopify-focused name suggests.
Install only if you are comfortable sending requested storefront domains, search terms, handles, and your Crawlora API key to Crawlora; successful requests may consume Crawlora credits. Be aware that the skill includes documented brand-specific retail endpoints beyond generic Shopify research, including J.Crew and Quince public catalog/review/location-style data.
The skill uses 'shell' capability that is not listed in its permissions. This may indicate deceptive intent or missing permission declarations.
This markdown file instructs callers to send the x-api-key: $CRAWLORA_API_KEY header on network requests, which involves handling a sensitive credential and transmitting it to an external service. The reference does not include any warning about protecting the key, avoiding logging it, or the fact that requests send data to a third-party API.
The endpoint reference exposes capabilities outside the skill's declared Shopify-storefront research scope, including separate integrations for non-Shopify retailers. This scope expansion increases the attack surface and can mislead users or calling agents into invoking data-access paths they did not intend to authorize, undermining least-privilege and safe tool selection.
A physical store-location lookup endpoint is not necessary for Shopify storefront catalog research and represents a capability mismatch. Even if the data is public, adding location discovery broadens the skill beyond its stated purpose and may enable unintended collection or correlation of geospatial business data.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
#!/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:
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
#!/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:
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
#!/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:
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
#!/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:
Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.
# config supplies the header and is removed automatically on exit.
umask 077
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")
The notes section states that 'url is required on every call' and that there is 'no default store.' Earlier in the same file, the skill explicitly documents 14 brand-pinned endpoint variants that work with no url parameter, so this documentation is internally contradictory about how the skill is actually used.
No suspicious patterns detected.