T08 · Insecure Dependencies
- Location
package.json:5- Finding
Non-Reproducible Dependency Installation Without a Lockfile
- Content
View full analysis
Vulnerability Details
File Location:
package.json:5-7;SKILL.md:87,95
Vulnerability Type: Unpinned third-party dependency and non-reproducible installation
Risk Level: MediumVulnerable Code
json "dependencies": { "axios": "^1.6.0" }The installation documentation instructs users to run:
bash npm installNo
package-lock.jsonis included in the audited project.Technical Analysis
The caret version range permits npm to install later compatible Axios releases rather than a single audited version. The absence of a lockfile also leaves transitive dependencies unconstrained. Consequently, two installations performed at different times may produce materially different dependency trees.
This is a supply-chain weakness rather than evidence that the current Axios package is malicious. If a permitted future release or transitive package is compromised, installation may introduce code that was not present during the audit. Depending on package metadata, lifecycle scripts could also execute during installation.
Attack Path
- An attacker compromises a dependency release or one of its transitive dependencies.
- The compromised version remains compatible with the declared
^1.6.0range. - A user follows the documentation and executes
npm install. - npm resolves and downloads the unaudited version.
- Malicious lifecycle or runtime code executes with the privileges of the installing or invoking user.
- Because the search process can access
BAIDU_API_KEY, compromised runtime code could potentially read and disclose that credential.
Impact Assessment
Exploitation could execute arbitrary JavaScript with the privileges of the account installing or running the skill. Potential scope includes access to the skill process environment, the local API-key configuration, files accessible to that account, and outbound network connectivity. No current malicious depend ...[truncated 35 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin Axios to a specifically reviewed version instead of using a caret range.
- Generate, review, and commit
package-lock.json. - In deployment and automated installation workflows, use
npm cirather thannpm install. - Run dependency vulnerability and integrity checks during release preparation.
- Consider disabling lifecycle scripts with
npm ci --ignore-scriptsif the dependency tree does not require them. - Periodically update dependencies through a controlled review process rather than resolving new versions implicitly.
