T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:14
- Finding
- Unpinned Third-Party CLI Dependency<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md`, lines 14–18 and line 29 **Vulnerability Type**: Unpinned third-party dependency **Risk Level**: Medium ### Vulnerable Code ```yaml "install": [ { "id": "pip", "kind": "uv", "package": "microsoft-todo-cli", "bins": ["todo"], "label": "Install microsoft-todo-cli (pip/uv)", }, ], ``` The prerequisite documentation also recommends an unpinned installation: ```markdown 1. `todo` CLI installed (`pip install microsoft-todo-cli`) ``` ### Technical Analysis The installation metadata and prerequisite instructions install `microsoft-todo-cli` without specifying a reviewed version or verifying an integrity hash. Consequently, package resolution selects whichever release is current at installation time. This creates a supply-chain exposure because the effective code installed and executed can change after this Skill has been reviewed. A compromised package publisher account, malicious future release, or upstream distribution-channel compromise could introduce arbitrary installation-time or runtime behavior. There is no evidence in the audited files that the current package is malicious. The issue is the absence of controls that ensure users receive the same reviewed dependency version. ### Attack Path 1. An attacker compromises the package publisher, release process, or relevant package-distribution channel. 2. The attacker publishes a malicious release under the expected `microsoft-todo-cli` package name. 3. A user installs the dependency using the documented unpinned `pip` or `uv` command. 4. The package manager resolves and installs the attacker-controlled release. 5. Malicious package code executes during installation or when the `todo` command is invoked. 6. The code operates with the privileges of the installing user and may access files, credentials, OAuth tokens, and Microsoft To Do data available to that account. ### Impact Assessment Successful e ...[truncated 561 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Pin `microsoft-todo-cli` to a specific version that has been reviewed: ```yaml "package": "microsoft-todo-cli==<reviewed-version>" ``` Update the prerequisite command accordingly: ```bash pip install "microsoft-todo-cli==<reviewed-version>" ``` 2. Use a lock file or requirements file containing cryptographic hashes, and install with hash verification where supported: ```text microsoft-todo-cli==<reviewed-version> \ --hash=sha256:<verified-distribution-hash> ``` 3. Document the expected official package index and upstream repository so users can verify provenance. 4. Review dependency updates before changing the pinned version. Validate package ownership, release signatures or hashes, dependency changes, and installed artifacts. 5. Avoid privileged installation. Install the CLI in an isolated virtual environment or user-scoped environment with the minimum necessary filesystem access. ]]>
