← Home

@dragoscirjan/mcp-tuikit-snapshot

Terminal screenshot capture strategies for mcp-tuikit

3
Versions
License
No
Install Scripts
Missing
Provenance

Supply chain provenance

Status for the latest visible version.

No SLSA provenance npm registry signatures gitHead linked

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

dragoscirjannpm

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
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

Versions (showing 3 of 3)

Version Deps Published
1.0.5 6 / 4
1.0.1 6 / 4
1.0.0 6 / 4

v1.0.5

3 findings
HIGH env-spread: src/linux.ts:55 semgrep

Spreading 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;

HIGH env-spread: src/linux.ts:61 semgrep

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);

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v1.0.1

3 findings
HIGH env-spread: src/linux.ts:55 semgrep

Spreading 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;

HIGH env-spread: src/linux.ts:61 semgrep

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);

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.

v1.0.0

3 findings
HIGH env-spread: src/linux.ts:55 semgrep

Spreading 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;

HIGH env-spread: src/linux.ts:61 semgrep

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);

LOW No provenance attestation provenance

Package was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.