T08 · Insecure Dependencies
- Location
SKILL.md:62- Finding
Unpinned Remote Dependencies in Skill Installation Instructions
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:62,SKILL.md:70, andSKILL.md:83
Vulnerability Type: Unpinned executable third-party dependencies
Risk Level: MediumComplete Code Snippet:
text npx clawhub@latest install cdk1025/invoice-mergertext npx skills add cdk1025/invoice-merger --path invoice-mergerbash python -m pip install pypdf PillowTechnical Analysis
The documented installation process retrieves and potentially executes third-party packages without pinning them to reviewed versions. The
@latestselector explicitly resolves to a mutable release, while theskills,pypdf, andPillowdependencies have no version constraints, lockfile, or integrity hashes.Consequently, the effective code installed by these commands can change after this skill has been reviewed. The issue could be exploited through a compromised package publisher, malicious future release, registry compromise, dependency confusion, or another supply-chain attack. There is no evidence that the currently referenced packages are malicious; the risk arises from mutable, remotely resolved dependencies.
Attack Path
- An attacker compromises a referenced package publisher or package-registry release channel.
- The attacker publishes a malicious version under the package name selected by
@latestor by unconstrained dependency resolution. - A user or AI agent follows the installation instructions in
SKILL.md. - The package manager downloads the attacker-controlled version.
- Package installation hooks or subsequently invoked package code execute under the installing user's account.
- The payload can access resources available to that account and may modify files or execute additional commands.
Impact Assessment
Successful exploitation could provide arbitrary code execution with the permissions of the user running
npxorpip. The accessible scope may include u ...[truncated 306 chars]- Remediation
View remediation
Remediation Suggestions
- Replace
@latestand all unconstrained package references with exact, reviewed versions. - Document commands such as
npx clawhub@X.Y.Zandnpx skills@X.Y.Z, using verified release numbers. - Define exact Python dependency versions in a committed requirements or lock file.
- Generate and enforce cryptographic hashes for Python packages, for example through a hash-locked requirements file and
pip install --require-hashes. - Commit applicable package-manager lockfiles and verify package integrity metadata.
- Review package publishers, release provenance, and installation scripts before allowing an AI agent to execute installation commands.
- Perform installation in an isolated virtual environment or sandbox with access restricted to the files required by this skill.
- Avoid running package installation as an administrator or root user.
- Replace
