T08 · Insecure Dependencies
- Location
SKILL.md:46- Finding
Unpinned Third-Party npm Package Is Downloaded and Executed at Runtime
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 5 and 46–49
Vulnerability Type: Unpinned third-party dependency and runtime package execution
Risk Level: MediumThe skill declares
openclaw-liveavataras an npm dependency without an exact version or integrity constraint and instructs the agent to execute it throughnpx:yaml metadata: {"openclaw":{"emoji":"🎭","requires":{"env":["LIVEAVATAR_API_KEY"],"bins":["node","npm"]},"install":[{"id":"node","kind":"node","package":"openclaw-liveavatar","bins":["openclaw-liveavatar"],"label":"Install LiveAvatar (npm)"}]}}markdown 2. **Launch the interface**: ```bash npx openclaw-liveavatar ```Technical Analysis
Neither the installation metadata nor the launch command pins a reviewed package version or verifies package integrity. When the package is unavailable locally,
npx openclaw-liveavatarcan retrieve the package currently published under that name and immediately execute its lifecycle or application code.Consequently, the effective executable payload can change after this skill has been audited. The project contains no copy of the package source, lockfile, checksum, or signature with which to verify that the code executed at runtime is the code previously reviewed.
This is particularly sensitive because the launched process is expected to receive
LIVEAVATAR_API_KEY, interact with a microphone-enabled browser workflow, and communicate with an OpenClaw Gateway on local port18789. This finding does not establish that the currently published package is malicious; it identifies the unsafe, mutable dependency-execution mechanism.Attack Path
- An attacker compromises the npm publisher account, registry release process, or another component capable of publishing a malicious release under
openclaw-liveavatar. - The attacker publishes a modified package version containing malicious lifecycle or runtime code.
...[truncated 1335 chars]
- An attacker compromises the npm publisher account, registry release process, or another component capable of publishing a malicious release under
- Remediation
View remediation
Remediation Suggestions
- Pin
openclaw-liveavatarto an exact, reviewed version in both installation metadata and execution instructions. - Install the dependency during a controlled build or setup phase rather than downloading it through
npxat each invocation. - Commit a lockfile that records resolved versions and registry integrity hashes, and enforce immutable or reproducible installation in deployment.
- Prefer invoking an already installed, verified binary, such as through a package script or an explicit local
node_modules/.binpath. - Use
npx --no-installifnpxremains necessary, preventing an invocation from silently downloading an absent package. - Verify package provenance or signatures where supported, restrict installation to an approved registry, and continuously scan the dependency and its transitive dependency tree.
- Review or vendor the executable source so its microphone, credential, filesystem, gateway, and outbound-network behavior can be audited.
- Run the package with least privilege and isolate it from unrelated credentials, files, and local services.
- Pin
