T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:141
- Finding
- Unpinned Third-Party Package Installation Guidance## Vulnerability Details **File Location**: `SKILL.md`, lines 141–145 **Vulnerability Type**: T08: Insecure Dependencies **Risk Level**: Medium ### Vulnerable Code ```markdown | Tool | Use Case | Install | |------|----------|---------| | **WeasyPrint** | HTML/CSS → PDF (best CSS support) | `brew install weasyprint` or `pip install weasyprint` | | **Pandoc** | Markdown → PDF via LaTeX | `brew install pandoc` | | **wkhtmltopdf** | Complex layouts | Download from wkhtmltopdf.org | | **Puppeteer** | JS-rendered content | `npm install puppeteer` | ``` ### Technical Analysis The installation instructions do not pin reviewed package versions or require integrity verification. Commands such as `pip install weasyprint` and `npm install puppeteer` resolve mutable package versions from third-party registries. Homebrew installations similarly depend on the repository state at installation time. The wkhtmltopdf guidance directs users to download software from a website without identifying an exact version, artifact URL, checksum, or cryptographic signature. Consequently, the installed component may differ from the version originally reviewed. There is no evidence in the audited file that any named package or source is currently malicious. The vulnerability is the unsafe dependency acquisition process, which leaves users exposed if a registry account, package release, repository, dependency, or downloadable artifact is compromised. ### Attack Path 1. A user follows one of the documented installation instructions. 2. The package manager resolves the current package release and its transitive dependencies, or the user selects an unverified website artifact. 3. An attacker who has compromised the relevant publisher account, registry entry, dependency, repository, or download infrastructure supplies a malicious release or binary. 4. Package installation hooks, imported library code, or the installed executable runs attacker-controlled code. 5. The malicious code operates ...[truncated 723 chars]
- Remediation
- ## Remediation Suggestions 1. Pin each dependency to a specifically reviewed version rather than installing the mutable latest release. 2. For Python, use an exact version and hash-verified requirements, such as `package==version` with `pip --require-hashes`. 3. For Node.js, specify a reviewed Puppeteer version, commit the lockfile, and use reproducible installation commands such as `npm ci`. 4. For Homebrew, document a reviewed formula version or immutable revision where practical. 5. For downloadable binaries, provide an official HTTPS artifact URL, exact version, expected SHA-256 checksum, and signature-verification instructions. 6. Review and lock transitive dependencies where the package ecosystem supports it. 7. Perform installation in a least-privileged, isolated environment and avoid running package installation commands as root. 8. Periodically update pinned versions only after security review and integrity verification.
