← Home

fpscanner

A lightweight browser fingerprinting and bot detection library with encryption, obfuscation, and cross-context validation

9
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

avastel

Keywords

fingerprintingbrowser-fingerprintbot-detectionautomation-detectionfraud-detectionseleniumpuppeteerplaywrightwebdriverheadlessanti-botdevice-fingerprintbrowser-detectionsecurity

Accepted risks

Findings the reviewer chose to accept rather than block on.

SourceRuleReasonAccepted byWhen
semgrep semgrep:env-spread AI (semgrep): Used in build-custom.js to pass process.env + encryption key to child process; standard build tool pattern. ai
semgrep semgrep:dynamic-require AI (semgrep): CLI loads user-selected build script by path; expected pattern for a build CLI tool. ai
semgrep semgrep:child-process-import AI (semgrep): Used in build scripts only, not in runtime library code; standard for build tooling. ai
phantom-deps phantom-dep:ua-parser-js AI (phantom-deps): ua-parser-js is a declared runtime dependency; phantom-dep heuristic false positive for this package. ai

Versions (showing 9 of 9)

Version Deps Published
1.0.6 3 / 10
1.0.5 3 / 10
1.0.2 3 / 10
1.0.1 3 / 10
1.0.0 3 / 10
0.9.4 3 / 10
0.9.3 3 / 10
0.9.2 3 / 10
0.9.1 1 / 12

v1.0.6

2 findings
HIGH env-spread: scripts/build-custom.js:84 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/f46bd453287a061bdab17a1f034e04741bc98511/scripts/build-custom.js#L84 82 | cwd: packageDir, 83 | stdio: 'inherit', > 84 | env: { 85 | ...process.env, 86 | FP_ENCRYPTION_KEY: key,

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

2 findings
HIGH env-spread: scripts/build-custom.js:84 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/736636de5864bd60448a0aa5eab67267167391fb/scripts/build-custom.js#L84 82 | cwd: packageDir, 83 | stdio: 'inherit', > 84 | env: { 85 | ...process.env, 86 | FP_ENCRYPTION_KEY: key,

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

2 findings
HIGH env-spread: scripts/build-custom.js:84 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/598ac6a4c5e22c533a12244dfd20eea42935fb8c/scripts/build-custom.js#L84 82 | cwd: packageDir, 83 | stdio: 'inherit', > 84 | env: { 85 | ...process.env, 86 | FP_ENCRYPTION_KEY: key,

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

2 findings
HIGH env-spread: scripts/build-custom.js:84 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/b22425c4b4ce05eff60306fb57e8bb1cabaeab3c/scripts/build-custom.js#L84 82 | cwd: packageDir, 83 | stdio: 'inherit', > 84 | env: { 85 | ...process.env, 86 | FP_ENCRYPTION_KEY: key,

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

2 findings
HIGH env-spread: scripts/build-custom.js:84 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/79669d8246bef2d8c8e03e21aa9bf7605b82071c/scripts/build-custom.js#L84 82 | cwd: packageDir, 83 | stdio: 'inherit', > 84 | env: { 85 | ...process.env, 86 | FP_ENCRYPTION_KEY: key,

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.

v0.9.4

2 findings
HIGH env-spread: scripts/build-custom.js:55 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/1ea7a850bd4b41eee24e45878857a459ad6284b3/scripts/build-custom.js#L55 53 | cwd: packageDir, 54 | stdio: 'inherit', > 55 | env: { 56 | ...process.env, 57 | FP_ENCRYPTION_KEY: key,

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.

v0.9.3

2 findings
HIGH env-spread: scripts/build-custom.js:55 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/7e9b54d9a57b732d6cbdbc170a63ea2c4487f0ad/scripts/build-custom.js#L55 53 | cwd: packageDir, 54 | stdio: 'inherit', > 55 | env: { 56 | ...process.env, 57 | FP_ENCRYPTION_KEY: key,

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.

v0.9.2

2 findings
HIGH env-spread: scripts/build-custom.js:53 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/eafc189fabc9209958be5d4d583604cf0aad9523/scripts/build-custom.js#L53 51 | cwd: packageDir, 52 | stdio: 'inherit', > 53 | env: { 54 | ...process.env, 55 | FP_ENCRYPTION_KEY: key,

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.

v0.9.1

2 findings
HIGH env-spread: scripts/build-custom.js:46 semgrep

Spreading entire process.env into an object — may capture all secrets Source: https://github.com/antoinevastel/fpscanner/blob/815df3b053bba170bc9b38d616232f2cab1c6ab5/scripts/build-custom.js#L46 44 | cwd: packageDir, 45 | stdio: 'inherit', > 46 | env: { 47 | ...process.env, 48 | FP_ENCRYPTION_KEY: key,

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.