T08 · Insecure Dependencies
- Location
SKILL.md:20- Finding
Unpinned Third-Party Dependency Creates Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:20-23
Vulnerability Type: Unpinned third-party dependency
Risk Level: MediumVulnerable Code:
yaml install: - kind: uv package: anthropic bins: []Technical Analysis
The installation manifest requests the
anthropicpackage without an exact version constraint, lockfile, or integrity hash. Consequently, different installations can resolve to different package versions, including newly published versions that have not been reviewed with this Skill.Installing a Python package can execute package build or installation logic and makes the package's runtime code trusted by the Skill. If the package, one of its transitive dependencies, or the configured package index is compromised, malicious code could execute during installation or when
generate_calendar.pyimports and uses the package.The code also conditionally imports
openaifor its local backend, but the installation metadata does not explicitly declare and pin that dependency. This creates an incomplete and non-reproducible dependency specification.Attack Path
- An attacker compromises a future
anthropicrelease, a transitive dependency, or the package distribution infrastructure. - The attacker publishes or serves a malicious version that still satisfies the unconstrained package request.
- A user installs the Skill after the malicious version becomes available.
uvresolves and installs the attacker-controlled package content.- Malicious code executes during package installation or when the Skill imports and invokes the dependency.
Impact Assessment
Successful exploitation would execute code with the privileges of the user installing or running the Skill. Depending on those privileges, the malicious dependency could read accessible files and environment variables, including API credentials, modify user-owned files, make arbitrary network reques ...[truncated 222 chars]
- An attacker compromises a future
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact reviewed version, for example
anthropic==X.Y.Z. - Maintain a lockfile that records all transitive dependency versions.
- Require cryptographic hashes for downloaded distributions where the installation framework supports them.
- Restrict dependency retrieval to a trusted package index and prefer reviewed wheel artifacts.
- Explicitly declare and pin the conditionally imported
openaipackage if the local backend remains supported. - Add automated dependency vulnerability and provenance scanning to the release process.
- Review dependency updates before changing pins rather than automatically accepting the newest release.
- Pin every direct dependency to an exact reviewed version, for example
