T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned Third-Party Dependencies and Unrestricted Installation Scripts
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16-28
Vulnerability Type:T08: Insecure Dependencies
Risk Level: MediumVulnerable Code
markdown ## Installation & Dependencies ### Required ```bash pip install python-pptx pillowOptional
bash # For advanced chart support pip install numpy # For HTML conversion (advanced) npm install puppeteer dom-to-pptxtext ### Technical Analysis The installation instructions retrieve third-party Python and npm packages without pinning exact versions or verifying package integrity. No lockfile, cryptographic hashes, approved registry configuration, or reviewed version constraints are supplied. Consequently, installation results can change over time even when the skill itself remains unchanged. Python package builds and npm lifecycle hooks may execute package-controlled code during installation. The npm command does not disable lifecycle scripts. This creates a supply-chain exposure if an upstream package, maintainer account, package registry, or dependency is compromised. It also creates a dependency-confusion risk in environments configured to use untrusted or mixed registries. The documentation does not itself prove that any named package is malicious; exploitation depends on compromise or unsafe package resolution. ### Attack Path 1. An attacker compromises a listed package, one of its transitive dependencies, a package publisher account, or a configured package registry. 2. The attacker publishes a malicious version or causes package resolution to select an attacker-controlled artifact. 3. A user follows the documented `pip install` or `npm install` command. 4. Because no reviewed version or artifact hash is enforced, the package manager downloads the currently resolved artifact. 5. Package build logic, npm lifecycle scripts, or subsequently imported package code executes the attacker's payload. 6. The paylo ...[truncated 854 chars]- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an explicitly reviewed version, for example through
requirements.txtandpackage-lock.json. - Use Python hash verification, such as
pip install --require-hashes -r requirements.txt, with hashes generated from trusted artifacts. - Use
npm ciwith a committed lockfile instead of unconstrainednpm install. - Disable npm lifecycle scripts with
--ignore-scriptswhen they are not required. If scripts are required, review them and document that requirement. - Configure package managers to use explicitly approved HTTPS registries and avoid mixing public and private namespaces without dependency-confusion controls.
- Scan direct and transitive dependencies for known vulnerabilities and review updates before changing pinned versions.
- Perform installation in an isolated virtual environment or container under a non-privileged account.
- Document the expected package names, versions, registries, and integrity values so users can validate resolved artifacts.
- Pin every direct dependency to an explicitly reviewed version, for example through
