← Home

@saltcorn/plugins-loader

Saltcorn plugin loader

18
Versions
MIT
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

tanielsenchristianhugoch

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Passing process.env to a child npm install process is standard; no exfiltration path. ai
semgrep semgrep:child-process-import AI (semgrep): Plugin loader legitimately uses child_process to run npm install; expected for this package. ai
semgrep semgrep:dynamic-require AI (semgrep): Dynamic require is the core mechanism for loading installed plugins; stable pattern for this package. ai

Versions (showing 18 of 18)

Version Deps Published
1.5.7 4 / 0
1.5.6 4 / 0
1.5.5 4 / 0
1.5.4 4 / 0
1.5.3 4 / 0
1.5.2 4 / 0
1.5.1 4 / 0
1.5.0 4 / 0
1.4.6 4 / 0
1.4.5 4 / 0
1.4.4 4 / 0
1.4.3 4 / 0
1.4.2 4 / 0
1.4.1 4 / 0
1.4.0 4 / 0
1.3.1 4 / 0
1.3.0 4 / 0
1.2.0 4 / 0

v1.5.7

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/67bc65255f14e15c3d5c543b6bdb41eea52c76ad/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.6

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/f9d5efcf835f47d4cc29943a374e05b2350b0a10/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.5

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/8d017eecbb1413b051e4b5bdb0cca36bf5f57364/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.4

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/df70c1150e9ad993ac98e9c32909648e5565e13f/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.3

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/6ad7246ffc90f6043f7d53c7a83e8d301dae71bb/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.2

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/4be74dac2a3f1c3decac87441b10f59e416180ef/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.1

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/4be74dac2a3f1c3decac87441b10f59e416180ef/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.5.0

2 findings
HIGH env-spread: plugin_installer.js:336 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/785b3bf06227a077b9d0880744e5da5bea4cd5c1/plugin_installer.js#L336 334 | const child = spawn("npm", ["install"], { 335 | cwd: this.tempDir, > 336 | env: { ...process.env, ...this.envVars }, 337 | ...(isWindows ? { shell: true } : {}), 338 | });

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.4.6

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/e2477a8b2acedbc019e1f98eba8d2fdfc57a052d/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.5

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/7c945ca00b95cfe6ba65c5551e4509c220d64791/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.4

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/4df1b89077e701322c4e48f54034c9069db76617/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.3

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/2852a9f2e1b9d3d12cbe98ed2e1c4aec055bc918/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.2

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/0285606e60be79b7f499282fc90379ea4cceacca/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.1

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/b0cfaf62d001b152ff771466d37d14c26e969a9a/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.4.0

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/3105ec1b231bf37cd152f491375cfcc61ad74676/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.3.1

2 findings
HIGH env-spread: plugin_installer.js:316 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/a0048b84fce32fc35fc66ae9271de91410376c98/plugin_installer.js#L316 314 | const child = spawn("npm", ["install"], { 315 | cwd: this.tempDir, > 316 | env: { ...process.env, ...this.envVars }, 317 | ...(isWindows ? { shell: true } : {}), 318 | });

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.3.0

2 findings
HIGH env-spread: plugin_installer.js:311 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/4c4594fc57e358519cd304fca6ccd1d7e2d1b04d/plugin_installer.js#L311 309 | const child = spawn("npm", ["install"], { 310 | cwd: this.tempDir, > 311 | env: { ...process.env, ...this.envVars }, 312 | ...(isWindows ? { shell: true } : {}), 313 | });

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.2.0

2 findings
HIGH env-spread: plugin_installer.js:311 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/saltcorn/saltcorn/blob/ec4cf8eec0e79c5a76f8b3e63b4c81e5c0263996/plugin_installer.js#L311 309 | const child = spawn("npm", ["install"], { 310 | cwd: this.tempDir, > 311 | env: { ...process.env, ...this.envVars }, 312 | ...(isWindows ? { shell: true } : {}), 313 | });

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.