T08 · Insecure Dependencies
- Location
SKILL.md:4- Finding
Unpinned Third-Party Executable Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 4
Vulnerability Type: Unpinned third-party executable dependency
Risk Level: MediumVulnerable Code
yaml metadata: { "openclaw": { "emoji": "🌐", "homepage": "https://github.com/WilliamPenrose/site-use", "requires": { "bins": ["site-use"] }, "install": [{ "kind": "node", "package": "site-use", "bins": ["site-use"] }] } }Technical Analysis
The skill declares installation of the third-party npm package
site-usewithout specifying an exact version or integrity hash. Consequently, installation can resolve to a mutable package release whose source was not included in the audited project.The installed CLI is subsequently trusted to launch and control an isolated Chrome profile, interact with an authenticated Twitter/X session, capture screenshots, and store or query collected posts. Although no malicious implementation is present in the reviewed file, executing an unpinned package creates a supply-chain trust boundary: a compromised publisher account, malicious future release, registry compromise, or dependency takeover could cause arbitrary package code to execute with the privileges of the agent process.
Attack Path
- An attacker compromises the
site-usepackage, its publisher account, or a transitive dependency and publishes a malicious release. - The skill installation resolves the unversioned package reference to that release.
- Package installation hooks or the
site-useexecutable run attacker-controlled code locally. - The code inherits the permissions and environment of the agent process.
- When the browser workflow is used, the malicious package may access the isolated browser profile, authenticated Twitter/X session, screenshots, cached posts, and other resources available to that process.
This path depends on an upstream supply-chain compromise; the audited project does not itself contain evidence that the current package is malicious.
Impact
...[truncated 494 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin
site-useto a reviewed, exact package version rather than using an unconstrained package reference. - Commit and enforce a package lockfile containing registry integrity hashes.
- Verify the package publisher, canonical registry location, source repository, release provenance, and signatures before installation.
- Review the pinned package and its transitive dependencies, including npm lifecycle scripts.
- Disable lifecycle scripts during installation where they are unnecessary, or explicitly allow only reviewed scripts.
- Consider vendoring the reviewed implementation or including auditable source with the skill.
- Run the CLI in a sandbox with minimum filesystem, environment-variable, browser-profile, and network access.
- Restrict access to the isolated browser profile and remove it when no longer required.
- Use automated dependency monitoring while requiring explicit review before version upgrades.
- Pin
