T08 · Insecure Dependencies
- Location
SKILL.md:59- Finding
Unpinned Third-Party Apify Actor Creates a Mutable Supply-Chain Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16 and 59-99
Vulnerability Type: Unpinned third-party remote component
Risk Level: MediumVulnerable Code
yaml metadata: author: apidojo version: "1.0" apify-actor: apidojo/youtube-scraperbash # Quick answer (prints table to chat) node scripts/run_actor.js \ --actor "apidojo~youtube-comments-scraper" \ --input '{"param": "value"}' # Save as CSV node scripts/run_actor.js \ --actor "apidojo~youtube-comments-scraper" \ --input '{"param": "value"}' \ --output YYYY-MM-DD_results.csv --format csv # Save as JSON node scripts/run_actor.js \ --actor "apidojo~youtube-comments-scraper" \ --input '{"param": "value"}' \ --output YYYY-MM-DD_results.json --format jsontext Tool: apify:run-actor Actor: "apidojo~youtube-comments-scraper" Input: { "startUrls": [{"url": "[VIDEO_URL_1]"}, {"url": "[VIDEO_URL_2]"}], "type": "comments", "maxComments": 500 }bash curl -X POST \ "https://api.apify.com/v2/acts/apidojo~youtube-comments-scraper/runs?token=$APIFY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"startUrls": [{"url": "[VIDEO_URL]"}], "type": "comments", "maxComments": 500}'Technical Analysis
The workflow delegates data processing to an externally maintained Apify actor identified only by its mutable actor name. It does not pin a reviewed actor build, version, or immutable revision. Consequently, the implementation executed by users may change after this Skill has been audited.
There is also an identifier inconsistency: the metadata declares
apidojo/youtube-scraper, while all execution examples invokeapidojo~youtube-comments-scraper. This discrepancy weakens provenance verification and may cause reviewers or users to validate a different component from the one actually executed.This is a supply-chain risk rather than proof th ...[truncated 1473 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the actor to an immutable, reviewed build or version instead of invoking only its mutable name.
- Record the expected actor build identifier, publisher, input schema, output schema, and review date in the Skill metadata.
- Reconcile
apidojo/youtube-scraperwithapidojo~youtube-comments-scraperso metadata and execution examples refer to exactly the same reviewed component. - Validate actor output against a strict schema before using it in downstream analysis.
- Use a dedicated, least-privilege Apify token and configure account spending or usage limits.
- Review actor changes before updating the pinned build and document a controlled upgrade procedure.
- Clearly disclose that target URLs, research inputs, and resulting data are processed by a third-party remote service.
