Trust Assessment
apify-influencer-discovery received a trust score of 10/100, placing it in the Untrusted category. This skill has significant security findings that require attention before use in production.
SkillShield's automated analysis identified 6 findings: 5 critical, 0 high, 1 medium, and 0 low severity. Key findings include Command Injection via user-controlled Actor ID, Command Injection via user-controlled Actor ID in Node.js script invocation, Command Injection via user-controlled JSON input in Node.js script invocation.
The analysis covered 4 layers: dependency_graph, static_code_analysis, manifest_analysis, llm_behavioral_safety. The static_code_analysis layer scored lowest at 0/100, indicating areas for improvement.
Last analyzed on February 11, 2026 (commit 0ea3e009). SkillShield performs automated 4-layer security analysis on AI skills and MCP servers.
Layer Breakdown
Behavioral Risk Signals
Security Findings6
| Severity | Finding | Layer | Location | |
|---|---|---|---|---|
| CRITICAL | Command Injection via user-controlled Actor ID The `SKILL.md` defines a pattern for executing shell commands where the `ACTOR_ID` is directly interpolated into a `bash` command string within double quotes. If the LLM constructs this command using a user-provided `ACTOR_ID` without proper shell escaping, an attacker can inject arbitrary shell commands by including metacharacters (e.g., `"; rm -rf /; echo "`) in the `ACTOR_ID`. Ensure all user-controlled inputs (like `ACTOR_ID`) are properly shell-escaped before being interpolated into shell commands. Consider using a dedicated library for command construction or passing arguments directly to the Node.js script without shell interpolation where possible. | Unknown | SKILL.md:49 | |
| CRITICAL | Command Injection via user-controlled Actor ID in Node.js script invocation The `SKILL.md` defines a pattern for invoking a Node.js script where the `ACTOR_ID` is directly interpolated into a `bash` command string within double quotes. If the LLM constructs this command using a user-provided `ACTOR_ID` without proper shell escaping, an attacker can inject arbitrary shell commands by including metacharacters (e.g., `"; rm -rf /; echo "`) in the `ACTOR_ID`. Ensure all user-controlled inputs (like `ACTOR_ID`) are properly shell-escaped before being interpolated into shell commands. Consider passing arguments directly to the Node.js script without shell interpolation where possible. | Unknown | SKILL.md:67 | |
| CRITICAL | Command Injection via user-controlled JSON input in Node.js script invocation The `SKILL.md` defines a pattern for invoking a Node.js script where `JSON_INPUT` is directly interpolated into a `bash` command string within single quotes. If the LLM constructs this command using a user-provided `JSON_INPUT` that contains a single quote (e.g., `'{"key": "value' ; rm -rf / ; echo '"}'`), it will break the single-quoted string and allow arbitrary shell command execution. Ensure all user-controlled inputs (like `JSON_INPUT`) are properly shell-escaped, especially when enclosed in single quotes. The safest approach is to avoid direct string interpolation for complex inputs and instead pass them via temporary files or environment variables if possible, or use a robust shell escaping mechanism. | Unknown | SKILL.md:68 | |
| CRITICAL | Command Injection via user-controlled output filename in Node.js script invocation The `SKILL.md` defines a pattern for invoking a Node.js script where the output filename is directly interpolated into a `bash` command string. If the LLM constructs this command using a user-provided filename without proper shell escaping, an attacker can inject arbitrary shell commands (e.g., `foo.csv; rm -rf /; echo`) into the command execution. Ensure all user-controlled inputs (like filenames) are properly shell-escaped before being interpolated into shell commands. Additionally, the `run_actor.js` script should validate and sanitize the output path to prevent arbitrary file writes. | Unknown | SKILL.md:73 | |
| CRITICAL | Arbitrary File Write via unsanitized output path The `run_actor.js` script directly uses the `outputPath` argument, derived from user-controlled command-line input, in `writeFileSync` without any path validation or sanitization. This allows an attacker to specify an arbitrary file path (e.g., `/etc/passwd`, `~/.ssh/authorized_keys`, or `../../sensitive_file.txt`) and write arbitrary content to it, leading to data corruption, privilege escalation, or system compromise. Implement robust path validation and sanitization for the `outputPath` argument. Restrict output files to a designated, sandboxed directory. Prevent directory traversal (e.g., `../`) and absolute paths. Consider using a library for secure file path handling. | Unknown | reference/scripts/run_actor.js:204 | |
| MEDIUM | Unpinned dependency in installation instructions The installation instructions for `mcpc` use `npm install -g @apify/mcpc` without specifying a version. This makes the skill vulnerable to supply chain attacks, where a malicious update to the `@apify/mcpc` package could be automatically installed and executed, compromising the system. Pin the dependency to a specific, known-good version (e.g., `npm install -g @apify/mcpc@1.2.3`). Regularly review and update pinned dependencies to ensure security patches are applied. | Unknown | SKILL.md:15 |
Scan History
Embed Code
[](https://skillshield.io/report/790a1491996c1070)
Powered by SkillShield