T08 · Insecure Dependencies
Warning
- Location
- setup.md:23
- Finding
- Third-Party Authentication Package Installed Without Artifact Integrity Verification<![CDATA[ ## Vulnerability Details **File Location**: `setup.md:23-28`; dependency declaration also appears at `SKILL.md:7` **Vulnerability Type**: Supply-chain integrity weakness **Risk Level**: Medium ### Vulnerable Code `setup.md:23-28`: ```bash python3 -m pip install --user pyicloud==2.4.1 python3 - <<'PY' from pyicloud import PyiCloudService print("pyicloud import OK") PY ``` `SKILL.md:7`: ```yaml metadata: {"clawdbot":{"emoji":"☁️","requires":{"bins":["python3"]},"install":[{"id":"pyicloud","kind":"pip","package":"pyicloud==2.4.1","label":"Install pyicloud 2.4.1 (pip)"}],"os":["linux","darwin","win32"]}} ``` ### Technical Analysis The workflow installs `pyicloud` directly from the Python package index and immediately imports it. Pinning the package to version `2.4.1` limits version drift, but it does not verify the cryptographic hash of the downloaded distribution. The project also provides no hash-locked dependency manifest covering transitive dependencies. This package executes in the user's security context and is subsequently entrusted with the user's Apple ID, password, session state, and iCloud API access. If the selected distribution or one of its dependencies were compromised at the package source, hosting layer, or release-account level, malicious code could execute during installation or import. This finding does not establish that `pyicloud==2.4.1` is malicious. It identifies the absence of artifact-level integrity controls for a security-sensitive authentication dependency. ### Attack Path 1. An attacker compromises the relevant package release, distribution artifact, package-maintainer account, or an unresolved transitive dependency. 2. The user follows the documented setup procedure and runs `pip install --user pyicloud==2.4.1`. 3. Pip downloads and installs the artifact without checking it against a project-supplied expected hash. 4. The workflow imports the installed package, allowing package code to execute with the user's local ...[truncated 745 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Publish a reviewed, hash-locked requirements file containing the expected SHA-256 hashes for every accepted distribution: ```text pyicloud==2.4.1 --hash=sha256:<reviewed-distribution-hash> ``` 2. Install with hash enforcement: ```bash python3 -m pip install --require-hashes -r requirements.txt ``` 3. Resolve, pin, and hash all transitive dependencies rather than relying only on a top-level version pin. 4. Prefer an isolated virtual environment instead of modifying the user's general package environment. 5. Record the package filename and hash that were reviewed, because wheels and source distributions may have different contents. 6. Run dependency vulnerability and provenance checks as part of release review. 7. Keep credential entry local, but explicitly disclose that the selected dependency receives the Apple password and session data. ]]>
