T08 · Insecure Dependencies
- Location
SKILL.md:132- Finding
Unpinned Third-Party Dependency Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 132–137
Vulnerability Type: Supply-chain risk from unpinned third-party dependencies
Risk Level: MediumVulnerable Code
bash # Install required packages npm install pptxgenjs # For nano-banana-pro (if using locally) # Ensure uv and nano-banana-pro skill are configuredTechnical Analysis
The skill directs users to install
pptxgenjswithout specifying an exact audited version or requiring a lockfile. Consequently, the command resolves mutable package and transitive-dependency versions from the configured npm registry at installation time.The skill also relies on a separately configured
nano-banana-procomponent without documenting a pinned version, verified source, or integrity value. Although the audited project does not contain malicious executable code, these installation and configuration instructions create a supply-chain trust boundary outside the reviewed artifact.A compromised package release, transitive dependency, registry, or package-manager configuration could introduce attacker-controlled code. npm lifecycle scripts may execute during installation under the privileges of the user running npm.
Attack Path
- An attacker compromises a referenced package, one of its transitive dependencies, its publishing account, or the configured package registry.
- The attacker publishes a malicious version or serves modified package content.
- A user follows the documented
npm install pptxgenjsinstruction without a locked dependency graph or verified integrity metadata. - npm resolves and downloads the attacker-controlled package content.
- Malicious lifecycle code executes during installation, or malicious library behavior runs when the generated presentation script imports
pptxgenjs. - The payload operates with the privileges and accessible resources of the installing or executing user.
The same general trust risk applies to the separately configured ...[truncated 704 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin
pptxgenjsto an exact version that has been reviewed, rather than resolving the latest compatible registry release. - Commit a package manifest and lockfile, and require reproducible installation with
npm ci. - Verify lockfile integrity metadata and use a trusted, explicitly configured npm registry.
- Audit direct and transitive dependencies with appropriate software-composition analysis and vulnerability scanning.
- Disable lifecycle scripts during installation where they are unnecessary, for example with
npm ci --ignore-scripts, after confirming that this does not break required functionality. - Pin
nano-banana-proto a reviewed version and document its authoritative source, integrity verification process, permissions, and data-handling behavior. - Run dependency installation and presentation generation in a least-privileged, isolated environment without unnecessary credentials or access to sensitive files.
- Establish a controlled dependency-update process that reviews version changes before updating the lockfile.
- Pin
