@dragoscirjan/mcp-tuikit-snapshot
Terminal screenshot capture strategies for mcp-tuikit
Supply chain provenance
Status for the latest visible version.
Without SLSA provenance there is no cryptographic link between this tarball and the public source — the axios compromise (March 2026) relied on exactly this gap.
Maintainers
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:env-spread | AI (semgrep): env-spread used solely to inject DISPLAY for Xvfb screenshot capture; no exfiltration path. | ai | |
| phantom-deps | phantom-dep:nanoid | AI (phantom-deps): nanoid is declared in package.json dependencies; phantom-dep heuristic false positive for this package. | ai |
v1.0.5
3 findingsSpreading entire process.env into an object — may capture all secrets 53 | // Xvfb runs pure X11, so we use import on the root window 54 | await execa('import', ['-window', 'root', outputPath], { > 55 | env: { ...process.env, DISPLAY: virtualSession.display }, 56 | }); 57 | return;
Spreading entire process.env into an object — may capture all secrets 59 | // sway runs pure Wayland, so we use grim 60 | await execa('grim', [outputPath], { > 61 | env: { ...process.env, WAYLAND_DISPLAY: virtualSession.display }, 62 | }); 63 | await waitForFile(outputPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.0.1
3 findingsSpreading entire process.env into an object — may capture all secrets 53 | // Xvfb runs pure X11, so we use import on the root window 54 | await execa('import', ['-window', 'root', outputPath], { > 55 | env: { ...process.env, DISPLAY: virtualSession.display }, 56 | }); 57 | return;
Spreading entire process.env into an object — may capture all secrets 59 | // sway runs pure Wayland, so we use grim 60 | await execa('grim', [outputPath], { > 61 | env: { ...process.env, WAYLAND_DISPLAY: virtualSession.display }, 62 | }); 63 | await waitForFile(outputPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v1.0.0
3 findingsSpreading entire process.env into an object — may capture all secrets 53 | // Xvfb runs pure X11, so we use import on the root window 54 | await execa('import', ['-window', 'root', outputPath], { > 55 | env: { ...process.env, DISPLAY: virtualSession.display }, 56 | }); 57 | return;
Spreading entire process.env into an object — may capture all secrets 59 | // sway runs pure Wayland, so we use grim 60 | await execa('grim', [outputPath], { > 61 | env: { ...process.env, WAYLAND_DISPLAY: virtualSession.display }, 62 | }); 63 | await waitForFile(outputPath);
Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.