T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned and Unverifiable Third-Party npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type: Supply-chain risk caused by an unpinned third-party dependency
Risk Level: MediumVulnerable Code
yaml metadata: { "openclaw": { "emoji": "📖", "requires": { "bins": ["inkos", "node"], "env": ["OPENAI_API_KEY"] }, "primaryEnv": "OPENAI_API_KEY", "homepage": "https://github.com/Narcooo/inkos", "install": [{ "id": "npm", "kind": "node", "package": "@actalk/inkos", "label": "Install InkOS (npm)" }] } }Technical Analysis
The installation declaration references
@actalk/inkoswithout an exact version or integrity digest. Consequently, installation may resolve to whichever package release the configured npm registry currently serves rather than to the specific implementation associated with the reviewed Skill version.The audited project contains only
SKILL.mdand_meta.json. It does not include the dependency source, a package manifest, or a lockfile. The dependency's implementation and lifecycle behavior therefore cannot be verified from this artifact. In particular, the statement atSKILL.md:793that the npm package has no installation hooks is a documentation claim rather than locally verifiable evidence.This does not establish that the current dependency is malicious. It creates a supply-chain weakness under which a compromised maintainer account, registry compromise, malicious future release, or unsafe registry substitution could change the code installed after this Skill was reviewed.
Attack Path
- An attacker compromises the npm publisher, package release process, registry account, or package distribution channel for
@actalk/inkos. - The attacker publishes or substitutes a malicious package release under the same package name.
- A user installs the Skill dependency using its unversioned npm declaration.
- npm resolves the attacker-controlled release because no exact version or integrity value constrains resolution.
- Malicious ...[truncated 1085 chars]
- An attacker compromises the npm publisher, package release process, registry account, or package distribution channel for
- Remediation
View remediation
Remediation Suggestions
- Pin
@actalk/inkosto an exact audited version rather than relying on the registry's current release. - Bind the package to a verified integrity digest and reject installation if integrity verification fails.
- Include a lockfile, software bill of materials, or vendored auditable source that identifies the complete dependency graph used by Skill version
2.8.3. - Ensure the Skill descriptor version and dependency release are explicitly associated and reviewed together.
- Verify the published package archive for lifecycle scripts and unexpected executable content during every release.
- Use a trusted npm registry and enforce provenance or signed-release verification where supported.
- Install and run the package with least privilege, without administrative rights, and expose only the credentials required for the requested operation.
- Treat the claim that installation is inert as a release-time invariant enforced by automated checks rather than solely as documentation.
- Pin
