T08 · Insecure Dependencies
- Location
SKILL.md:105- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:105,SKILL.md:129, andreferences/superdoc-reference.md:6
Vulnerability Type: Unpinned npm dependencies and global package installation
Risk Level: MediumVulnerable Code
SKILL.md:105:bash npm install --global superdoc jsdomSKILL.md:129:bash npm install @superdoc-dev/reactreferences/superdoc-reference.md:6:markdown **Installation:** `npm install superdoc` (for projects) or `npm install @superdoc-dev/react` (for React)Technical Analysis
The installation instructions do not pin the packages to exact, reviewed versions and do not require lockfile or integrity verification. Consequently, npm resolves whichever package releases and transitive dependencies are current when the commands are executed. This makes the installed code mutable after the skill has been audited.
The global installation command presents additional risk because it modifies the user's global Node.js environment. npm packages can define installation lifecycle scripts, which may execute with the permissions of the user running npm. If a named package, its publisher account, or one of its transitive dependencies is compromised in the future, following these instructions could execute attacker-controlled code.
The package names correspond to the documented SuperDoc packages, and the project does not contain evidence of dependency confusion, typosquatting, a malicious source, or an existing malicious payload. The finding concerns unsafe dependency acquisition practices and the resulting supply-chain exposure.
Attack Path
- A user follows the documented installation command.
- npm resolves the latest available versions of the named packages and their transitive dependencies.
- A package publisher account, package release, or transitive dependency has been compromised or contains a malicious lifecycle script.
- npm downloads th ...[truncated 930 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin every direct dependency to an exact reviewed version, such as
superdoc@1.17.0, rather than allowing npm to select a mutable latest release. - Specify and review an exact compatible version of
jsdomand@superdoc-dev/react. - Prefer project-local dependencies over global installation:
bash npm install --save-exact superdoc@1.17.0 jsdom@REVIEWED_VERSION npm install --save-exact @superdoc-dev/react@REVIEWED_VERSION - Commit a reviewed
package-lock.jsonand direct users or automation to runnpm ci, ensuring reproducible dependency resolution. - Verify npm package provenance, publisher identity, registry source, and integrity metadata before installation.
- Audit direct and transitive dependencies with appropriate software-composition-analysis tooling.
- Where compatible with the packages' documented installation process, disable lifecycle scripts using
npm ci --ignore-scriptsand explicitly run only reviewed setup steps. - Execute dependency installation in a minimally privileged, isolated development environment rather than under an administrative account.
- Pin every direct dependency to an exact reviewed version, such as
