T08 · Insecure Dependencies
- Location
SKILL.md:3- Finding
Unpinned Global Dependency Handles Sensitive API Credentials
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 3–5
Vulnerability Type:T08: Insecure Dependencies
Risk Level: Mediumyaml description: Interact with arbitrary third-party or self-hosted services (AWS, Slack, Google Drive, Dropbox, GitHub, GitLab, Linear, Coolify...) using their HTTP APIs. compatibility: Requires node.js, curl and latchkey (npm install -g latchkey). metadata: {"openclaw":{"emoji":"🔑","requires":{"bins":["latchkey"]},"install":[{"id":"node","kind":"node","package":"latchkey","bins":["latchkey"],"label":"Install Latchkey (npm)"}]}}Technical Analysis
The Skill requires installation of the third-party
latchkeynpm package globally without specifying an approved version, integrity hash, lockfile, or source-verification procedure. The remaining instructions assign this dependency a security-sensitive role: it stores credentials and injects them into outgoingcurlrequests.Because the package is installed globally and executes under the user's account, its installation and runtime code can access privileges available to that user. Its position as a transparent HTTP wrapper also gives it direct access to authenticated requests and potentially to API tokens, AWS access keys, and other credentials configured through the tool.
The audited project contains no implementation of
latchkey, so the package itself could not be reviewed. There is no evidence in the supplied file that the current package is malicious. The confirmed issue is the unsafe dependency acquisition model and the absence of controls that would protect against a future compromised release, package takeover, or malicious transitive dependency.Attack Path
- An attacker compromises the npm package, its publisher account, or one of its installation or runtime dependencies.
- A user follows the Skill instructions and runs
npm install -g latchkeywithout a pinned version or integrity verification. - npm in ...[truncated 1257 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
latchkeyto a specifically reviewed version rather than installing the latest available release. - Record and verify package integrity using an npm lockfile and trusted registry integrity metadata.
- Document the authoritative package repository and publisher identity, and verify provenance before installation.
- Avoid global installation where possible. Install the dependency in an isolated, least-privileged environment with a locked dependency tree.
- Audit the package, installation scripts, and transitive dependencies before allowing it to process credentials.
- Disable unnecessary npm lifecycle scripts during installation where compatible with the package's documented operation.
- Scope every API credential to the minimum required permissions and use separate credentials for separate services or tasks.
- Restrict credential injection to an explicit allowlist of trusted service domains and reject redirects or destination changes that could disclose authorization material.
- Rotate credentials promptly if dependency compromise is suspected, and maintain logs for authenticated operations so unauthorized activity can be detected.
- Pin
