T08 · Insecure Dependencies
- Location
scripts/setup.js:120- Finding
Unpinned dependency installation and module loading from shared temporary storage
- Content
View full analysis
/dev/null; npm install puppeteer-core 2>&1', { encoding: 'utf8', stdio: ['pipe', 'pipe', 'pipe'], }); ok('puppeteer-core installed to /tmp/node_modules'); return '/tmp/node_modules'; } catch (e) { fail(`Auto-install failed: ${e.message}`); log('Please install manually and re-run setup.'); return null; } ``` ```js // scripts/lib/cdp-utils.js:6-7 module.paths.unshift('/tmp/node_modules'); const puppeteer = require('puppeteer-core'); ``` ### Technical Analysis The setup process installs the latest available `puppeteer-core` package without a pinned version or lockfile. It places the package under the globally shared `/tmp` hierarchy and subsequently gives `/tmp/node_modules` priority in Node.js module resolution. The implementation only verifies that a path named `puppeteer-core` exists. It does not verify package ownership, directory permissions, package version, integrity hashes, provenance, or whether the discovered module was installed by this project. ...[truncated 1889 chars]- Remediation
View remediation
