npm / playwright / 1.65.0-alpha-2026-10-20
playwright 1.65.0-alpha-2026-10-20
- Source
- https://github.com/microsoft/playwright
- Commit scanned
27219bd2cc94- Directory
packages/playwright- Compared with
b335271cdc2b(0 signals introduced since)- Files
- 132 scanned, 13 skipped (binary, oversized, or unrecognised)
- Signals
- 0 critical · 0 warn · 12 info
- Scan time
- 8.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-20 05:56
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:90privatedismissed Decodes base64 stdio payloads from the test runner into output chunks.Reasoning
atob is used only to decode base64 stdio chunks sent by the test runner's own reporter. The decoded data becomes a plain buffer or string for display, with no eval, fetch, or execution path.
-
; ; : stringdismissed Loads the package's own package.json via a computed path.Reasoning
The require argument is path.join of the package root and the literal 'package.json', so it loads the tool's own manifest. This is a standard way to read package metadata.
-
const ; const libCoverage = ; const libReport = ; const reports = ;dismissed Loads istanbul-lib-coverage through a resolver anchored to the config directory.Reasoning
The specifier is resolved with require.resolve from a fixed literal module name, 'istanbul-lib-coverage', and a configured directory. This is a normal optional-dependency load.
-
const libCoverage = ; const libReport = ; const reports = ; const context = libReport.dismissed Loads istanbul-lib-report through the same resolver.Reasoning
Same pattern as the neighbouring line: a fixed literal module name resolved against the config directory, then required. Nothing here is attacker-controlled.
-
const libReport = ; const reports = ; const context = libReport.dismissed Loads istanbul-reports through the same resolver.Reasoning
A fixed literal module name, 'istanbul-reports', is resolved from the config directory and required. This is an ordinary plugin-style dependency load.
-
...plugins, ...pluginsEpilogue., ], compact: false,likely benign Requires Babel plugins by name from the configured epilogue list.Reasoning
The plugin names come from the user's own Babel or Playwright configuration, and require of configured plugins is the expected behaviour. The risk is only that a malicious config could name an arbitrary module, which the project's trust model already covers.
-
const : = ; const babelResult = ;dismissed Lazily loads the internal babelBundle module.Reasoning
The path is libPath('transform','babelBundle'), a fixed internal module. The require is a lazy-load of the bundled transform.
-
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 Uses eval to issue a native dynamic import of a file URL for ESM loading.Reasoning
eval is used to produce a dynamic import() that Node's CommonJS transpilation would otherwise rewrite to require. The argument is JSON.stringify of a file URL the loader already resolved, so there is no injected payload. This is a known workaround, not an obfuscated dropper.
-
info
critical→ info by reviewdynamic-executionpackages/playwright/src/transform/transform.ts:293:13likely benign Uses eval to dynamically import an ESM preflight module with error handling.Reasoning
Same workaround as the previous eval: a dynamic import of a derived preflight URL built with JSON.stringify. The fixed suffix and error handling show legitimate loader plumbing.
-
} const result = ; const depsCollector = cc.;likely benign Requires the test file currently being loaded by the runner.Reasoning
This loads the test file being run, which is the core function of a test runner. The path comes from the user's own test list, so the non-literal require is expected.
-
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.
&&