T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:12
- Finding
- Unpinned Third-Party Dependency Permits Supply-Chain Drift## Vulnerability Details **File Location**: `SKILL.md`, lines 12-17 **Vulnerability Type**: Unpinned Python dependency **Risk Level**: Medium ### Vulnerable Code ```yaml "install": [ { "id": "pip", "kind": "pip", "package": "requests", "label": "Install requests library", }, ], ``` ### Technical Analysis The skill declares the `requests` package without an exact version or an integrity hash. Consequently, installation resolves whichever release the configured Python package index considers current at installation time. The installed dependency can therefore differ from the component that was present when the skill was reviewed. This does not establish that the legitimate `requests` package is currently malicious. It creates a supply-chain weakness in which a compromised package release, compromised package index, or maliciously configured index could provide attacker-controlled code. Python packages may execute code during installation, and imported package code runs when `pulse_tool.py` executes `import requests`. ### Attack Path 1. An attacker compromises a future `requests` distribution, the package-index account or infrastructure, or an index configured in the target environment. 2. A user or automated skill installer processes the unpinned declaration and installs the attacker-controlled version. 3. Malicious package logic executes during installation or when `pulse_tool.py` imports `requests`. 4. The payload operates with the privileges and environment access of the installing or invoking process. This attack path depends on compromise or manipulation of the dependency source; the audited project itself does not retrieve or execute a separate remote payload beyond ordinary package installation. ### Impact Assessment Successful exploitation could permit arbitrary Python code execution with the privileges of the process installing or running the skill. Depending ...[truncated 327 chars]
- Remediation
- ## Remediation Suggestions Pin `requests` to a reviewed exact version, for example `requests==X.Y.Z`, and update it through a controlled dependency-review process. Where the skill packaging format permits it, verify distributions with cryptographic hashes generated from trusted artifacts, such as pip's `--require-hashes` workflow. Maintain a lock file containing transitive dependencies, use only trusted package indexes over TLS, and prevent untrusted environment configuration from silently replacing the intended index. Run dependency vulnerability and provenance checks in CI, review updates before deployment, and install and execute the skill under a dedicated least-privileged account or sandbox.
