T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Executable npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
yaml metadata: {"openclaw":{"homepage":"https://ringading.ai/docs","requires":{"bins":["rad"],"env":["RAD_API_KEY","OPENAI_API_KEY"]},"primaryEnv":"RAD_API_KEY","install":[{"id":"node","kind":"node","package":"ring-a-ding-cli","bins":["rad"],"label":"Install Ring-a-Ding CLI (npm)"}]}}Technical Analysis
The installation metadata specifies the executable npm package
ring-a-ding-cliwithout an exact version or integrity hash. Consequently, installation can resolve to a package release that differs from the release assessed when this Skill was reviewed.Because the installed package supplies the
radexecutable, its code runs with the permissions of the agent environment. The Skill also requiresRAD_API_KEYandOPENAI_API_KEY, meaning malicious package code executing in the same process environment could potentially access those credentials and any call-related information available to the CLI.This finding does not establish that the current npm package is malicious. The vulnerability is the absence of dependency immutability and integrity controls, which leaves the Skill exposed to future package compromise, malicious releases, or registry-account takeover.
Attack Path
- An attacker compromises the npm publisher account, package registry path, or upstream release process for
ring-a-ding-cli. - The attacker publishes a malicious package release under the same package name.
- A later Skill installation resolves the unpinned dependency to that malicious release.
- Package installation hooks or subsequent execution of
radruns attacker-controlled code. - The code operates with the agent's local permissions and may access environment variables, call inputs, transcripts, configuration files available to the current user, or network resources ...[truncated 507 chars]
- An attacker compromises the npm publisher account, package registry path, or upstream release process for
- Remediation
View remediation
Remediation Suggestions
- Pin
ring-a-ding-clito an audited, exact version rather than allowing unconstrained resolution. - Enforce package integrity using a lockfile and verified registry integrity hashes.
- Verify the package publisher, provenance, signatures, and release history before installation.
- Disable npm lifecycle scripts during installation where the package does not require them.
- Install and execute the CLI in a restricted sandbox with minimal filesystem and network access.
- Provide API credentials only to the specific process that requires them, and avoid exposing unrelated secrets in the same environment.
- Establish an update-review process so dependency upgrades receive security review before deployment.
- Pin
