T08 · Insecure Dependencies
- Location
SKILL.md:10- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 10–16 and 50–54
Vulnerability Type: Unpinned package installation from the default Python package index
Risk Level: MediumVulnerable code at lines 10–16:
yaml "install": [ { "id": "pip", "kind": "pip", "package": "todoist-api-python", "bins": ["todoist"], "label": "Install Todoist API (pip)", }, ],Vulnerable code at lines 50–54:
markdown ## Install ```bash pip install todoist-api-pythontext ### Technical Analysis The skill instructs users or the hosting agent to install `todoist-api-python` without specifying an exact version, package hash, lock file, or trusted package repository. Consequently, pip resolves whatever release and transitive dependencies are available from its configured package index at installation time. Python package installation can execute package-controlled build logic. If the named package, its distribution infrastructure, or one of its dependencies is compromised, malicious code could run during installation. The absence of a version constraint also makes installation behavior non-reproducible and prevents reviewers from determining which exact artifact will be used. In addition, the metadata declares `todoist` as a required executable but provides no verification that the selected package supplies that executable. This mismatch should be validated because an incorrect package name can increase exposure to package substitution or dependency-confusion risks. ### Attack Path 1. An attacker compromises a future release of `todoist-api-python`, one of its transitive dependencies, or the package distribution channel. 2. A user or automated skill manager installs the dependency using the documented `pip install todoist-api-python` command. 3. Pip selects the attacker-controlled or compromised release because no approved version or hash is en ...[truncated 1015 chars]- Remediation
View remediation
Remediation Suggestions
- Verify that
todoist-api-pythonis the intended and trusted distribution and that it actually provides the requiredtodoistexecutable. - Pin the dependency to a reviewed exact version, for example:
bash pip install todoist-api-python==<reviewed-version> - Generate and enforce cryptographic hashes using a locked requirements file and
pip install --require-hashes. - Pin and hash all transitive dependencies rather than relying only on a top-level version constraint.
- Use a controlled package repository or explicitly configured trusted index instead of allowing unrestricted resolution from arbitrary pip configuration.
- Perform installation in an isolated virtual environment or sandbox under a non-privileged account.
- Run package vulnerability and provenance checks before approving dependency updates.
- Keep task-service credentials unavailable during installation and expose them only when the verified CLI is invoked.
- Verify that
