pnpm 11.28.7
- Source
- https://github.com/pnpm/pnpm
- Tag scanned
v11.28.7- Directory
pnpm11/pnpm- Compared with
v11.28.6(0 signals introduced since)- Files
- 217 scanned, 10 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 21 info
- Scan time
- 14.2 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 20 of 20 warn and critical signals; 20 demoted to info.
- Disclude version
- 4.1.0
- Scanned (UTC)
- 2026-10-21 23:29
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
likely benign README instruction to install pnpm via curl piped to sh from the official get.pnpm.io host.
Reasoning
This is the documented one-line installer for pnpm in a markdown README. Piping a vendor install script to sh is a common, publicly documented install method, and the markdown context shows no hidden or obfuscated behavior.
-
likely benign README instruction to install pnpm via wget piped to sh from the official get.pnpm.io host.
Reasoning
Same documented pnpm installer, here using wget. It is a visible README instruction for a well-known tool, not an embedded payload.
-
exec "$pnpm" "$@"likely benign Bash shim that execs a resolved pnpm binary with the forwarded arguments.Reasoning
This is the pnpm launcher script. It resolves the pnpm binary path into a variable and then execs it with the user's arguments. A dynamic exec path is inherent to a shim that delegates to a resolved binary, and the snippet shows no download or decoding step.
-
exec "$pnpm" dlx "$@"likely benign Bash shim that runs pnpm dlx with forwarded arguments through a resolved binary path.Reasoning
Standard pnpx wrapper that execs the resolved pnpm binary with the dlx subcommand and the user's arguments. The dynamic path is the expected design of a launcher, and nothing in the snippet is malicious.
-
exec "$pnpm" dlx "$@"likely benign Bash shim that runs pnpm dlx with forwarded arguments through a resolved binary path.Reasoning
Same pattern as pnpx: a thin launcher that execs the resolved pnpm binary with dlx and user arguments. The critical severity reflects the exec pattern alone, not any malicious behavior.
-
. const = awaitlikely benign Test imports a locally computed fixture module path and checks its default export.Reasoning
Test code that dynamically imports a fixture path computed by the test itself to check that a module is a function. This is a normal test pattern, and the specifier comes from local test setup, not untrusted input.
-
. const = awaitlikely benign Test imports a second locally computed fixture module and checks its default export.Reasoning
Same test pattern: a dynamic import of a locally resolved fixture path to verify a function export. The specifier is test-controlled, so this is not a supply-chain risk.
-
. const = awaitlikely benign Test dynamically imports a computed fixture path and asserts the export type.Reasoning
Repeated test fixture import with a computed path, used to assert a function export. This is ordinary test scaffolding.
-
. . })likely benign Test dynamically imports a package.json from a computed path to check its version.Reasoning
Test reads a package.json through a dynamic import built from a test-computed peer path to check its version. This is ordinary test verification with no hostile intent.
-
const pkg = await . })likely benign Test imports the local package.json via path.resolve to inspect its dependencies.Reasoning
Test imports package.json from a path resolved relative to the working directory to check its dependencies. This is a standard way to read manifests in a test suite.
-
const = await . })likely benign Test imports the local package.json to compare it with an expected manifest.Reasoning
Test imports the local package.json via path.resolve and compares it with the initial manifest. Ordinary test behavior, with no obfuscation or attacker-controlled specifier.
-
.likely benign Test imports the local package.json and asserts its dependency map.Reasoning
Test imports the local package.json via path.resolve and checks its dependencies against an expected object. Standard test verification.
-
const = await . // spec of linked package added to dependencieslikely benign Monorepo test imports the local package.json to assert workspace dependency entries.Reasoning
Monorepo test imports the local package.json via path.resolve to check workspace dependency specs. This is normal test verification.
-
const = await . // spec of linked package added to dependencieslikely benign Monorepo test imports the local package.json to assert linked workspace dependencies.Reasoning
Same monorepo test pattern: importing the local package.json to verify linked workspace dependencies. Benign test code.
-
. .likely benign Test imports per-project package.json files to verify updated dependency ranges.Reasoning
Recursive update test imports several project package.json files via path.resolve to check dependency ranges after an update. This is ordinary test code with fixed project paths.
-
. . })likely benign Test imports additional project package.json files to check updated dependency ranges.Reasoning
Continuation of the same recursive update test, importing further project manifests with fixed paths to assert version ranges. Benign.
-
. . })likely benign Test reads fixture package.json files via dynamic import to check dependency versions.Reasoning
Dynamic import of a path.resolve'd local package.json inside a test file that asserts dependency versions. Non-literal specifier is common in tests reading fixture files; no obfuscation or malicious payload is present.
-
const = await .likely benign Test loads a local args.json fixture through a dynamic import.Reasoning
Test helper imports a local args.json fixture via path.resolve and compares the result. Benign test scaffolding; the AST rule is generic and fires on any non-literal import.
-
const = await .likely benign Test loads args.json fixture via dynamic import and asserts its contents.Reasoning
Same pattern as the other test in this file: a dynamic import of a local JSON fixture followed by an equality assertion. No execution of fetched or decoded content.
-
const = await .likely benign Test loads args.json fixture via dynamic import and checks it.Reasoning
Identical fixture-loading pattern in a test file, importing a local args.json with path.resolve and asserting on the value. Benign.
Reproduce This Scan
Run disclude locally to verify. Add --format sarif for SARIF output. Add --llm (with an API key in the environment) to include the LLM review.
&&