T08 · Insecure Dependencies
- Location
SKILL.md:7- Finding
Unpinned Third-Party Package Is Installed and Executed
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:7-11andSKILL.md:30-34
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
yaml metadata: openclaw: install: - kind: uv package: emulo bins: [emulo]markdown Or load it directly through the MCP server:uvx emulo mcp
text Technical Analysis
The skill installs the third-party
emulopackage without specifying a version or an immutable integrity hash. The alternativeuvx emulo mcpcommand similarly resolves and executes a package based only on its registry name.Consequently, the code executed by these commands can change after the skill has been reviewed. The package implementation is not included in the audited project, so its handling of local session logs and the claim that no information is uploaded cannot be independently verified from
SKILL.md.This does not establish that the current package is malicious. It creates a supply-chain exposure in which a compromised maintainer account, malicious future release, package-registry compromise, or unexpected upstream change could introduce hostile code.
Attack Path
- An attacker compromises the upstream package, its publishing credentials, or the package distribution channel.
- The attacker publishes a malicious or compromised release under the expected
emulopackage name. - The skill installation process resolves the unpinned package, or the user runs
uvx emulo mcp. - The newly resolved package executes with the permissions of the user running the agent.
- The package can access user-readable resources, including the session logs that the documented workflow explicitly asks it to process, and could modify files or communicate over the network if the execution environment permits it.
Impact Assessment
Successful exploitation would provide code execution with the privileges of ...[truncated 286 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
emuloto a specifically reviewed version rather than resolving the latest available release. - Use cryptographic hashes or an immutable lockfile to verify the downloaded artifact.
- Avoid runtime package resolution through an unpinned
uvxcommand. - Vendor or include the relevant source so its log access, profile generation, and network behavior can be audited.
- Run the package in a sandbox with access limited to explicitly selected session files and output directories.
- Disable network access during profile generation unless it is demonstrably required.
- Review dependency changes before updating the pinned version.
- Pin
