T09 · Insecure Skill Coding Practices
- Location
SKILL.md:99- Finding
Apify API Token Exposed Through URL Query Parameters
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is mostly a normal Apify-based creator discovery guide, but it documents unsafe credential handling and an overbroad raw JavaScript mapping option.
Review before installing. Use a narrowly scoped Apify token, avoid the REST fallback examples unless changed to an Authorization header, do not commit .env files, and avoid allowing arbitrary customMapFunction JavaScript unless you explicitly trust the Apify actor and the transformation code.
SKILL.md:99Apify API Token Exposed Through URL Query Parameters
The documented customMapFunction allows arbitrary JavaScript to be supplied as input, which can enable code execution inside the scraping/transformation environment if honored by the underlying actor. That is far beyond the stated purpose of discovering gaming creators and creates a powerful injection surface for data exfiltration, environment access, or malicious output manipulation.
The manifest says the skill finds gaming content creators on TikTok and YouTube and returns creator-level fields like handle, platform, subscriber count, average views, game focus, and engagement signals. However, the documented inputs are largely TikTok post-scraper parameters such as startUrls, sortType, includeSearchKeywords, and customMapFunction, which do not align with a creator-listing interface and suggest materially different behavior than the stated skill purpose.
The skill explicitly sends user-provided search terms and API credentials to an external third-party service, Apify, via HTTP requests. External transmission is expected for this skill's purpose, but it still creates a real data-sharing boundary and exposes the risk of leaking sensitive query content or mishandling the token, especially because the token is placed in the URL where it may be logged by shells, proxies, or monitoring systems.
REST API fallback:
# TikTok
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"keywords": ["#valorant", "#valorantclips", "#gamingtiktok"], "maxItems": 300}'
# YouTube
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchKeywords": ["valorant gameplay", "valorant tips 2026"], "maxResults": 50}'
The skill explicitly sends user-provided search terms and API credentials to an external third-party service, Apify, via HTTP requests. External transmission is expected for this skill's purpose, but it still creates a real data-sharing boundary and exposes the risk of leaking sensitive query content or mishandling the token, especially because the token is placed in the URL where it may be logged by shells, proxies, or monitoring systems.
REST API fallback:
# TikTok
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"keywords": ["#valorant", "#valorantclips", "#gamingtiktok"], "maxItems": 300}'
# YouTube
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchKeywords": ["valorant gameplay", "valorant tips 2026"], "maxResults": 50}'
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"keywords": ["#valorant", "#valorantclips", "#gamingtiktok"], "maxItems": 300}'
curl -X POST "https://api.apify.com/v2/acts/apidojo~youtube-scraper/runs?token=$APIFY_TOKEN" -H "Content-Type: application/json" -d '{"searchKeywords": ["valorant gameplay", "valorant tips 2026"], "maxResults": 50}'
### Step 2: Score Creators
L025-L026 tell users to set an APIFY_TOKEN, and L096 reiterates that it may be stored in the environment or a .env file. The document does not include any caution about treating this token as sensitive, avoiding commits of .env files, or limiting exposure when using the skill.
No suspicious patterns detected.