curl.md
URL to markdown for agents
Supply chain provenance
Status for the latest visible version.
Maintainers
Keywords
Accepted risks
Findings the reviewer chose to accept rather than block on.
| Source | Rule | Reason | Accepted by | When |
|---|---|---|---|---|
| semgrep | semgrep:silent-process-exec | AI (semgrep): Self-re-spawn of process.execPath for daemon mode; not a reverse shell or miner. | ai | |
| semgrep | semgrep:silent-process-exec-var | AI (semgrep): Same self-re-spawn pattern; stable false positive for this CLI package. | ai | |
| semgrep | semgrep:env-spread | AI (semgrep): Fires in test file only; passing env to subprocess in tests is standard practice. | ai |
Versions (showing 27 of 27)
| Version | Deps | Published |
|---|---|---|
| 0.1.2 | 3 / 0 | |
| 0.1.1 | 3 / 0 | |
| 0.1.0 | 3 / 0 | |
| 0.0.25 | 3 / 0 | |
| 0.0.24 | 3 / 0 | |
| 0.0.23 | 3 / 0 | |
| 0.0.22 | 3 / 0 | |
| 0.0.21 | 3 / 0 | |
| 0.0.20 | 3 / 0 | |
| 0.0.19 | 3 / 0 | |
| 0.0.18 | 3 / 0 | |
| 0.0.17 | 3 / 0 | |
| 0.0.16 | 3 / 0 | |
| 0.0.15 | 3 / 0 | |
| 0.0.14 | 3 / 0 | |
| 0.0.13 | 3 / 0 | |
| 0.0.12 | 3 / 0 | |
| 0.0.11 | 3 / 0 | |
| 0.0.10 | 3 / 0 | |
| 0.0.9 | 10 / 0 | |
| 0.0.8 | 3 / 0 | |
| 0.0.7 | 3 / 0 | |
| 0.0.6 | 2 / 0 | |
| 0.0.5 | 2 / 0 | |
| 0.0.4 | 2 / 0 | |
| 0.0.3 | 2 / 0 | |
| 0.0.2 | 2 / 0 |
v0.1.2
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.1.1
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.1.0
1 findingPublished via CI/CD with Sigstore attestation (predicate: https://slsa.dev/provenance/v1). This is the strongest supply chain integrity signal.
v0.0.25
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.24
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.23
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.22
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.12
5 findingsSpreading entire process.env into an object — may capture all secrets 17 | cmd, 18 | args, > 19 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 20 | (error, stdout, stderr) => { 21 | if (error) reject(new Error(stderr?.trim() || stdout?.trim() || error.message))
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 164 | detached: true, 165 | stdio: 'ignore', > 166 | env: { ...process.env, __CURLMD_UPDATE_CACHE: '1' }, 167 | }) 168 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.11
5 findingsSpreading entire process.env into an object — may capture all secrets 17 | cmd, 18 | args, > 19 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 20 | (error, stdout, stderr) => { 21 | if (error) reject(new Error(stderr?.trim() || stdout?.trim() || error.message))
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 164 | detached: true, 165 | stdio: 'ignore', > 166 | env: { ...process.env, __CURLMD_UPDATE_CACHE: '1' }, 167 | }) 168 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.10
5 findingsSpreading entire process.env into an object — may capture all secrets 17 | cmd, 18 | args, > 19 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 20 | (error, stdout, stderr) => { 21 | if (error) reject(new Error(stderr?.trim() || stdout?.trim() || error.message))
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 161 | try { 162 | const args = isStandalone() ? [] : [process.argv[1] as string] > 163 | const child = child_process.spawn(process.execPath, args, { 164 | detached: true, 165 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 164 | detached: true, 165 | stdio: 'ignore', > 166 | env: { ...process.env, __CURLMD_UPDATE_CACHE: '1' }, 167 | }) 168 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.9
5 findingsSpreading entire process.env into an object — may capture all secrets 15 | cmd, 16 | args, > 17 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 18 | (error, stdout, stderr) => { 19 | if (error)
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 203 | detached: true, 204 | stdio: 'ignore', > 205 | env: { ...process.env, __CURL_MD_UPDATE_CACHE: '1' }, 206 | }) 207 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.8
5 findingsSpreading entire process.env into an object — may capture all secrets 15 | cmd, 16 | args, > 17 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 18 | (error, stdout, stderr) => { 19 | if (error)
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 203 | detached: true, 204 | stdio: 'ignore', > 205 | env: { ...process.env, __CURL_MD_UPDATE_CACHE: '1' }, 206 | }) 207 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.7
5 findingsSpreading entire process.env into an object — may capture all secrets 15 | cmd, 16 | args, > 17 | { timeout: 30_000, env: { ...process.env, ...options?.env } }, 18 | (error, stdout, stderr) => { 19 | if (error)
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Silent detached process — runs invisibly in the background (reverse shells, miners) 200 | try { 201 | const args = isStandalone() ? [] : [process.argv[1] as string] > 202 | const child = child_process.spawn(process.execPath, args, { 203 | detached: true, 204 | stdio: 'ignore',
Spreading entire process.env into an object — may capture all secrets 203 | detached: true, 204 | stdio: 'ignore', > 205 | env: { ...process.env, __CURL_MD_UPDATE_CACHE: '1' }, 206 | }) 207 | child.unref()
Package was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.6
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.5
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.4
1 findingPackage was published without Sigstore provenance. Consider requesting the maintainer enable provenance via CI/CD.
v0.0.3
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.
v0.0.2
1 findingPackage was published without Sigstore provenance. Only ~12% of npm packages have provenance, so this is common but not ideal.