npm / playwright / 1.65.0-alpha-2026-10-16
playwright 1.65.0-alpha-2026-10-16
- Source
- https://github.com/microsoft/playwright
- Commit scanned
034f230cc68b- Directory
packages/playwright- Compared with
a038fe7e0eb9(0 signals introduced since)- Files
- 132 scanned, 13 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 12 info
- Scan time
- 8.2 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-16 21:59
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 only the fallback when globalThis.Buffer is absent (browser runtime). It decodes stdio chunk data for display, not to fetch or eval anything. The base64 decode is a routine, legitimate step.
-
; ; : stringlikely benign Loads the package's own package.json via a computed path.Reasoning
The require specifier is path.join of the package root and a fixed 'package.json'. It loads the package's own manifest, so the non-literal argument is harmless.
-
const ; const libCoverage = ; const libReport = ; const reports = ;likely benign Loads the istanbul coverage library, resolved from a fixed name.Reasoning
The specifier comes from require.resolve of fixed module names ('istanbul-lib-coverage') anchored to the config directory. This is standard optional-dependency loading for coverage reporting.
-
const libCoverage = ; const libReport = ; const reports = ; const context = libReport.likely benign Loads istanbul-lib-report through a resolved fixed name.Reasoning
Same pattern as the adjacent line: a fixed module name resolved via require.resolve from the config directory. No attacker-controlled input is involved.
-
const libReport = ; const reports = ; const context = libReport.likely benign Loads istanbul-reports through a resolved fixed name.Reasoning
Identical resolution pattern to the other coverage requires, with a fixed module name. It is a legitimate dependency load.
-
...plugins, ...pluginsEpilogue., ], compact: false,likely benign Requires Babel plugins named in the internal plugin configuration.Reasoning
Plugins come from the bundle's own configuration list (pluginsEpilogue) and are loaded by name. This is config-driven plugin loading, typical of Babel setups. Dynamic loading is expected here, not hidden payload execution.
-
const : = ; const babelResult = ;likely benign Loads the internal babelBundle module via a computed library path.Reasoning
The path is libPath('transform','babelBundle'), a fixed internal module within the package. The computed path only locates its own bundled code.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:286:29const fileName = url.; const ; // For ESM imports handled by the asynchronous loader, issue a preflight to populatelikely benign Dynamic ESM import of a test file via eval, to bypass CJS transpilation.Reasoning
eval is used to build a dynamic import() of a file URL, with the path passed through JSON.stringify. This is a known technique to keep the import from being rewritten into require when loading ESM from CJS. The input is the test file path, not untrusted remote data, so it is not a dropper.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:293:13likely benign Eval-based dynamic import of an ESM preflight marker for a test file.Reasoning
Same eval-based import() pattern used to issue an ESM preflight for source-map support. The argument is the local file name with a '.esm.preflight' suffix and errors are caught. No external input or decoding is involved.
-
} const result = ; const depsCollector = cc.;likely benign Requires the test file under the runner's loader and dependency collection.Reasoning
require(file) loads the test file being run by the test runner, with a dependency collector wrapped around it. That is the core purpose of the loader, not malicious execution.
-
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.
&&