T08 · Insecure Dependencies
- Location
SKILL.md:47- Finding
Unpinned Third-Party Package Installation Without Verifiable Provenance
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 47–55
Vulnerability Type: Unverified and unpinned third-party dependency installation
Risk Level: MediumVulnerable Code
markdown Safe examples: ```bash pip install novelai-openclaw-adaptorbash novelai-config inittext ### Technical Analysis The Skill presents installation of `novelai-openclaw-adaptor` from pip as a safe example, but the command does not specify a trusted version, package hash, verified repository, or authenticated package source. Consequently, package identity and integrity depend entirely on the package index and its current publisher. Although the surrounding instructions tell users to verify the package source and obtain approval before installation, these are procedural safeguards rather than technical controls. The command itself permits pip to retrieve the latest available release and its transitive dependencies. The effective code executed can therefore change after the Skill has been audited. Running `novelai-config init` subsequently executes code supplied by the installed package. Because this initialization process is expected to accept a NovelAI credential through local input, a compromised package could capture that credential. Its code would also execute with the operating-system privileges of the invoking user. This creates a supply-chain exposure involving possible package compromise, maintainer-account takeover, malicious releases, or unsafe transitive dependencies. No evidence in the audited file establishes that the named package is currently malicious; the finding concerns the unsafe, unauthenticated installation mechanism. ### Attack Path 1. An attacker publishes or gains control of a malicious release of `novelai-openclaw-adaptor`, or compromises one of its transitive dependencies. 2. A user follows the documented `pip install novelai-openclaw-adaptor` command. 3. Pip resolves and installs the attacker-controlled release b ...[truncated 1273 chars]- Remediation
View remediation
Remediation Suggestions
-
Replace the unpinned installation example with an exact, reviewed version:
bash python -m pip install "novelai-openclaw-adaptor==<verified-version>" -
Provide the authoritative project repository and package-index URLs so users can verify that the package name, publisher, and source repository correspond.
-
Publish and require cryptographic hashes through a reviewed requirements file:
bash python -m pip install --require-hashes -r requirements.txt -
Pin and hash all transitive dependencies, not only the top-level package.
-
Prefer installation from a verified local source checkout at an audited commit. Document the exact commit identifier and verify signed tags or releases when available.
-
Do not label a generic, unpinned pip command as a “safe example.” Explicitly state that installation must stop if the source, maintainer, release, or integrity metadata cannot be independently verified.
-
Recommend using an isolated virtual environment and a non-privileged operating-system account. Explicitly warn users not to run the installation or initialization with administrator or root privileges.
-
Keep credentials out of command-line arguments and environment logs. Continue using interactive local credential entry, but clarify that credentials should only be entered after the installed package and exact release have been verified.
-
