Back to skill

Security audit

抖音达人数据 SocialDataX 达人信息

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent read-only Douyin profile lookup helper, but it tells agents to automatically run an unpinned npm package with an API key available.

Install only if you are comfortable with the agent downloading and executing the current npm release of `socialdatax-skills` at runtime. Prefer a pinned, reviewed package version, explicit install approval, and a restricted environment that exposes only the needed `SOCIALDATAX_API_KEY`.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (1)

T08 · Insecure Dependencies

Error
Location
SKILL.md:30
Finding
Automatic Execution of an Unpinned npm Package<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 30-37 **Vulnerability Type**: Unpinned and automatically executed third-party dependency **Risk Level**: High ### Vulnerable Code ```bash npx -y socialdatax-skills@latest douyin user-info \ --sec-user-id "<sec_user_id>" --pretty --source-client socialdatax-skills \ --source-platform clawhub --source-skill socialdatax-douyin-creator-profile npx -y socialdatax-skills@latest douyin user-info \ --profile-url "<profile_url_or_share_text>" --pretty \ --source-client socialdatax-skills --source-platform clawhub \ --source-skill socialdatax-douyin-creator-profile ``` The risk is reinforced by the automatic installation instruction at `SKILL.md:72`: ```text If the current environment has permission, install or restore automatically. ``` ### Technical Analysis The Skill instructs the agent to invoke `npx` with both `-y` and the mutable `@latest` version specifier: - `@latest` does not identify an immutable, audited package version. Its target can change after this Skill has been reviewed. - `npx` can download the selected package from the npm registry and execute its code locally. - `-y` suppresses the normal installation confirmation, facilitating unattended retrieval and execution. - The project does not provide a lockfile, integrity hash, exact version constraint, vendored implementation, or other mechanism to ensure that the executed code is the version originally reviewed. - The documentation encourages automatic installation or restoration when permissions permit. The repository does not itself contain evidence that the current npm package is malicious. The confirmed issue is the unsafe dependency execution pattern, which creates a supply-chain execution channel if the package, its publisher account, or its dependency graph is compromised. ### Attack Path 1. An attacker compromises the `socialdatax-skills` npm publisher account, package release process, or a transitive depen ...[truncated 1540 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace `socialdatax-skills@latest` with an exact, reviewed package version, such as `socialdatax-skills@X.Y.Z`. 2. Commit and enforce a lockfile containing verified dependency versions and registry integrity hashes. 3. Remove `-y` so that package acquisition is not silently approved. 4. Separate dependency installation from command execution and require explicit user or administrator approval before downloading new code. 5. Install from the official npm registry using a controlled registry configuration, and reject unexpected alternate registries or package sources. 6. Verify package provenance, signatures, checksums, and publisher identity before installation where supported. 7. Disable or carefully control npm lifecycle scripts during installation unless they are explicitly required and reviewed. 8. Execute the CLI in a sandbox with minimal filesystem and network permissions. 9. Pass only the required API credential to the child process rather than exposing the complete parent environment. 10. Establish a controlled upgrade process in which new package versions and transitive dependency changes are reviewed before updating the pinned version. 11. Revise the troubleshooting guidance so that dependencies are not installed or restored automatically without explicit approval and integrity validation. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (3)

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
The skill instructs the agent to run `npx -y socialdatax-skills@latest ...`, which fetches and executes the newest package version at runtime without pinning it. This creates a supply-chain execution risk: if the package is compromised, a malicious release is published, or a dependency is poisoned, the agent may execute attacker-controlled code in an environment that contains `SOCIALDATAX_API_KEY` and local agent privileges.

Rp1

Medium
Category
MCP Rug Pull
Confidence
94% confidence
Finding
This second CLI example repeats the same unsafe pattern by invoking `npx -y socialdatax-skills@latest`, causing unreviewed remote code to be downloaded and executed on demand. In the context of a skill that explicitly relies on an API key from the environment, compromise of the package could lead to secret exfiltration or arbitrary command execution under the agent's permissions.

Rp1

Medium
Category
MCP Rug Pull
Confidence
70% confidence
Finding
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.

Static analysis

No suspicious patterns detected.