npm / playwright / 1.64.1-beta-1792067398000
playwright 1.64.1-beta-1792067398000
- Source
- https://github.com/microsoft/playwright
- Commit scanned
0915b2e91289- Directory
packages/playwright- Compared with
cfe490d941f9(0 signals introduced since)- Files
- 130 scanned, 13 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 12 info
- Scan time
- 7.6 s
- LLM review
- Reviewed by claude-haiku-5-5 (Anthropic): 10 of 10 warn and critical signals; 10 demoted to info.
- Disclude version
- 4.0.0
- Scanned (UTC)
- 2026-10-15 14:11
Signals
Ordered by severity, then signals introduced in this release. Hidden characters are shown as ⟨U+…⟩.
-
info
warn→ info by reviewdynamic-executionpackages/playwright/src/isomorphic/teleReceiver.ts:462:90privatelikely benign Base64 decoding of test stdio output with a Buffer/atob fallback.Reasoning
atob is used only as a fallback when Buffer is absent, to decode base64 stdio chunks from the test runner's own JSON output. It decodes data into a log chunk and never feeds eval, fetch, or a dropper.
-
; ; : stringlikely benign Loads the package's own package.json via a computed path.Reasoning
The require target is path.join of the package root and the literal 'package.json', a fixed local metadata file read at load time. The non-literal specifier is a bundler-compatibility pattern, not an attack.
-
const ; const libCoverage = ; const libReport = ; const reports = ;likely benign Requires istanbul-lib-coverage resolved relative to the config directory.Reasoning
The module is resolved with require.resolve from the configured config directory, for standard istanbul packages. The specifier is a fixed string passed through resolution, which is ordinary plugin-loading behaviour.
-
const libCoverage = ; const libReport = ; const reports = ; const context = libReport.likely benign Requires istanbul-lib-report resolved relative to the config directory.Reasoning
Same resolveFrom pattern loading the fixed istanbul-lib-report package. Nothing is decoded or fetched from an untrusted source.
-
const libReport = ; const reports = ; const context = libReport.likely benign Requires istanbul-reports resolved relative to the config directory.Reasoning
Same resolveFrom pattern loading the fixed istanbul-reports package, a normal coverage reporter dependency.
-
...plugins, ...pluginsEpilogue., ], compact: false,likely benign Requires Babel plugins by name from the transform configuration.Reasoning
The specifier is a plugin name from the configured epilogue list, so it is a dynamic plugin load. This is how Babel plugins are normally attached, and the name comes from the project's own build configuration.
-
const : = ; const babelResult = ;likely benign Loads the internal babelBundle module through a path helper.Reasoning
The require loads the bundled babelBundle module through libPath with fixed literal segments. This is internal module loading with no untrusted input.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:260:29const fileName = url.; const ; // For ESM imports handled by the asynchronous loader, issue a preflight to populatelikely benign Uses eval to issue a native dynamic import of a local ESM file URL.Reasoning
eval wraps a dynamic import() of a file URL built with JSON.stringify. This is a known workaround so the TypeScript transpiler does not rewrite import() into require() for ESM loading. The input is a local test file path, not attacker-supplied data.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:267:13likely benign Uses eval to dynamically import a local ESM preflight module.Reasoning
Same eval-wrapped import() trick, here loading a local preflight marker for source-map handling. Errors are caught and logged, and the path is derived from the test file being loaded.
-
} const result = ; const depsCollector = cc.;likely benign Requires the test file being loaded by the runner.Reasoning
require(file) loads the test file the runner was asked to run, with dependency collection around it. Loading user test code is the tool's core function, not obfuscation.
-
interface TsConfig -
video: VideoMode | /** deprecated */ 'retry-with-video' |
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.
&&