T08 · Insecure Dependencies
- Location
SKILL.md:5- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, line 5
Vulnerability Type: Unpinned third-party dependency from PyPI
Risk Level: Mediumjson metadata: {"clawdbot":{"emoji":"📄","requires":{"bins":["nano-pdf"]},"install":[{"id":"uv","kind":"uv","package":"nano-pdf","bins":["nano-pdf"],"label":"Install nano-pdf (uv)"}]}}Technical Analysis
The installation metadata directs
uvto installnano-pdffrom PyPI without specifying an exact version or verifying an artifact hash. Consequently, the code installed on a future invocation is not fixed to the version reviewed when this skill was published.If the package owner account or distribution infrastructure is compromised, or a future package release becomes malicious, installation can introduce attacker-controlled code. The repository contains no embedded scripts or evidence that the currently referenced package is malicious; the finding concerns the mutable and unverified dependency boundary.
Attack Path
- An attacker compromises the upstream
nano-pdfpublishing account or otherwise causes a malicious release to be served under that package name. - The attacker publishes a newer package version containing malicious installation or runtime behavior.
- A user installs the skill dependency through the declared
uvinstaller. - Because no version or artifact hash is constrained, the installer resolves the attacker-controlled release.
- Malicious code can execute during package installation, command startup, or subsequent
nano-pdf edituse with the privileges of the process running the agent.
Impact Assessment
Successful exploitation could execute arbitrary code under the agent or installer account. The resulting scope may include access to files readable or writable by that account, modification of processed PDF documents, theft of environment-provided credentials, and network access available to the process. This declaration does n ...[truncated 126 chars]
- An attacker compromises the upstream
- Remediation
View remediation
Remediation Suggestions
- Pin
nano-pdfto an explicitly reviewed version, for example by changing the package specification to an exact version supported by the installer. - Use a lockfile or equivalent mechanism containing cryptographic hashes for the package and all transitive dependencies.
- Obtain packages only from the intended authenticated package index; do not permit unexpected fallback indexes.
- Review the pinned release and its dependency graph before publishing updates.
- Perform dependency installation and PDF processing in a sandbox with minimal filesystem access, no unnecessary credentials, restricted network access, and no administrative privileges.
- Introduce an explicit update process that reviews and tests each dependency version before changing the pin.
- Pin
