T08 · Insecure Dependencies
- Location
SKILL.md:213- Finding
Unpinned Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:213-216
Vulnerability Type: Insecure third-party dependency execution
Risk Level: MediumVulnerable Code
bash # Check for eslint if [ -f "eslint.config.js" ] || [ -f ".eslintrc.json" ]; then npx eslint --fix . fiTechnical Analysis
The skill instructs the agent to execute
npx eslint --fix .solely based on the presence of an ESLint configuration file. It does not require ESLint to be installed as a locked local dependency and does not prohibitnpxfrom resolving or downloading a package.If a suitable local executable is unavailable,
npxmay obtain and execute package code from the configured npm registry. The executed package version and source are not explicitly pinned or validated by this instruction. This creates a supply-chain execution boundary in which third-party package code may run with the same operating-system permissions and repository access as the agent.The configuration-file check does not establish that the corresponding executable is trusted, locally installed, or represented in a reviewed lockfile.
Attack Path
- A repository contains
eslint.config.jsor.eslintrc.json. - ESLint is absent from the local locked dependencies, or package resolution is influenced by the npm environment or registry configuration.
- The skill runs
npx eslint --fix .. npxresolves or downloads a package from the configured registry.- Package installation hooks or the resolved executable run with the agent's permissions.
- A compromised or substituted package can read or alter repository files and access other resources available to the invoking process.
Impact Assessment
Successful exploitation permits code execution with the privileges of the user or agent running the skill. The practical scope may include reading and modifying the checked-out repository, accessing environment variables and credentia ...[truncated 226 chars]
- A repository contains
- Remediation
View remediation
Remediation Suggestions
-
Require ESLint to exist as a reviewed, version-locked local development dependency.
-
Invoke the local package without allowing installation, for example:
bash npx --no-install eslint --fix . -
Prefer a lockfile-enforced package-manager command, such as
npm exec --offline -- eslint --fix ., where supported and appropriately configured. -
Verify that
package.jsonand a recognized lockfile exist before execution. -
Use reproducible installation modes such as
npm ciin an isolated environment when dependency installation is necessary. -
Treat missing local tooling as a verification failure rather than automatically retrieving executable code.
-
Run formatters and linters in a sandbox with minimal filesystem, credential, and network access.
-
