T08 · Insecure Dependencies
Warning
- Location
- requirements.txt:4
- Finding
- Runtime Behavior Delegated to an External Unaudited Package## Vulnerability Details **File Location**: `SKILL.md:14-16`, `SKILL.md:75-89`, `requirements.txt:4-5`, `SUPPLY_CHAIN.md:57-61` **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code `SKILL.md:14-16`: ```yaml install: - kind: pip package: inkwell-press==0.8.1 bins: [inkwell] ``` `requirements.txt:4-5`: ```text inkwell-press==0.8.1 \ --hash=sha256:a4e7439a70b1804d84391749dd46a2e1af599f549d697f119c5a434bc2615165 ``` `SUPPLY_CHAIN.md:57-61`: ```markdown - [ ] Reproduce the wheel hash locally (Section 1) - [ ] Review `src/inkwell/` source at commit `d1842ba` - [ ] Generate a full transitive lock file (Section 2) - [ ] Confirm no post-install hooks in `pyproject.toml` - [ ] Confirm `Pillow` is imported only for image processing (`grep -r "from PIL" src/`) ``` ### Technical Analysis The audited project contains documentation and configuration but no implementation of the `inkwell` executable. All operational behavior is delegated to the externally distributed `inkwell-press==0.8.1` wheel. Pinning the package version and SHA-256 digest prevents silent substitution with a different wheel when installation uses `--require-hashes`. However, it does not demonstrate that the pinned wheel itself is safe or that it corresponds to the claimed source commit. The project's own supply-chain checklist identifies source review, wheel reproduction, post-install-hook inspection, and transitive dependency locking as incomplete verification tasks. Consequently, the package's actual file access, network behavior, credential handling, clipboard operations, and installation behavior cannot be verified from this artifact alone. ### Attack Path 1. A user or agent installs the Skill and retrieves `inkwell-press==0.8.1` from the Python package registry. 2. The package installer installs the pinned wheel and any unresolved runtime dependencies. 3. The user supplies ...[truncated 1016 chars]
- Remediation
- ## Remediation Suggestions 1. Include the reviewed implementation source in the audited artifact or publish a verifiable source archive alongside the Skill. 2. Provide signed provenance linking the published wheel, source commit `d1842ba`, and build process. 3. Reproduce the wheel in a controlled build environment and document any expected sources of nondeterminism. 4. Make hash-enforced installation mandatory rather than presenting plain `pip3 install` as the primary path: ```bash python3 -m pip install --require-hashes -r requirements-lock.txt ``` 5. Commit a complete dependency lock file containing hashes for `inkwell-press`, Pillow, and every platform-specific artifact. 6. Review `pyproject.toml`, build-system dependencies, package entry points, and installation hooks before distribution. 7. Run the package in an isolated virtual environment or sandbox with minimum filesystem and network access. 8. Provide GitHub and WeChat credentials only for operations that require them, and use narrowly scoped, short-lived credentials where supported.
