T08 · Insecure Dependencies
- Location
meter-reader.sh:79- Finding
Unpinned Third-Party Package Is Downloaded and Executed at Runtime
- Content
View full analysis
Vulnerability Details
File Location:
meter-reader.sh:79-84
Vulnerability Type: Unpinned runtime dependency execution
Risk Level: HighVulnerable Code
bash { echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"meter-reader","version":"1.0"}}}' sleep 1 echo "{\"jsonrpc\":\"2.0\",\"id\":2,\"method\":\"tools/call\",\"params\":{\"name\":\"understand_image\",\"arguments\":{\"prompt\":\"$PROMPT\",\"image_source\":\"$IMAGE_PATH\"}}}" } | uvx minimax-coding-plan-mcp 2>/dev/null | python3 -c "Technical Analysis
The script invokes
uvx minimax-coding-plan-mcpwithout specifying an exact package version or verifying an artifact hash. Depending on the localuvxcache and package resolution behavior, this can cause package code to be retrieved from an external package source and executed at runtime.The effective code executed by the skill can therefore change after the skill itself has been audited. A compromised upstream release, package repository, maintainer account, or dependency could introduce arbitrary code into subsequent runs.
The package runs with the permissions of the user invoking the script. It also inherits the process environment after the script sources
/root/.openclaw/.minimax-env, meaning the MiniMax API credential can be available to the package process.Attack Path
- An attacker compromises the upstream package, its publishing credentials, its dependency chain, or the package source used by
uvx. - A malicious package version is published under the resolved package name.
- A user invokes the skill to analyze a meter photograph.
uvxresolves and executes the unpinned package.- The malicious package executes with the invoking user's privileges and inherited environment.
- It can read accessible local files, capture the MiniMax API key, inspect image data, ma ...[truncated 795 chars]
- An attacker compromises the upstream package, its publishing credentials, its dependency chain, or the package source used by
- Remediation
View remediation
Remediation Suggestions
- Pin
minimax-coding-plan-mcpto a specific, reviewed version rather than resolving the latest available version:bash uvx 'minimax-coding-plan-mcp==<reviewed-version>' - Use a lockfile or package installation mechanism that records and verifies hashes for the package and all transitive dependencies.
- Install reviewed dependencies during a controlled deployment phase instead of downloading executable code during normal image analysis.
- Verify package provenance and signatures where supported.
- Run the MCP server in a restricted sandbox or container with:
- Read-only access to only the selected image.
- No access to unrelated home-directory content.
- A minimal environment containing only required variables.
- Restricted outbound network access.
- A dedicated, unprivileged operating-system account.
- Avoid sourcing credentials from a root-owned global path into a process that launches third-party code. Pass narrowly scoped, short-lived credentials only to the component that requires them.
- Document the exact dependency version in
SKILL.mdand establish a review process before updating it.
- Pin
