registry / @prosopo/procaptcha-bundle / 4.2.1
@prosopo/procaptcha-bundle@4.2.1
AI Security Review
scanned 2mo ago · by lpm-firewall-aiStatic inspection shows a browser captcha bundle whose suspicious signals are expected dynamic imports and environment-based configuration. It has no lifecycle hooks or concrete malicious behavior.
Static reason
One or more suspicious static signals were detected.
Trigger
A host page imports the bundle or renders a Procaptcha widget with a site key.
Impact
Expected captcha-provider communication and optional session correlation; no package-originated credential theft, persistence, or destructive action was found.
Mechanism
Browser captcha rendering with a dependency-provided detector prefetch.
AI rationale
Static inspection shows a browser captcha bundle whose suspicious signals are expected dynamic imports and environment-based configuration. It has no lifecycle hooks or concrete malicious behavior.
Evidence
package.jsonsrc/index.tssrc/util/clientSession.tssrc/util/configCreator.tssrc/util/captcha/components/bundleCaptcha.tsxsrc/util/widgetFactory.tssrc/util/captcha/captchaRenderer.tsx
Decision evidence
public snapshotAI called this Clean at 96.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- Widget rendering triggers a Prosopo detector prefetch with the site key and IP mode.
- The component forwards an optional site session identifier into captcha configuration.
Evidence against
- package.json has no preinstall, install, or postinstall hook.
- Source contains no file-system writes, shell execution, eval, credential harvesting, or exfiltration primitive.
- The prefetch and session metadata are captcha-specific runtime functions, not hidden install-time behavior.
- No concrete malicious endpoint or payload loader is present in the inspected package source.
Behavioral surface
CryptoEnvironmentVarsFilesystem
HighEntropyStringsUrlStrings
Source & flagged code
3 flaggeddist/index.jsView file
4package = @prosopo/procaptcha-bundle; repositoryIdentity = captcha; dependency = @prosopo/procaptcha-common
L4: import { WidgetThemeResolver } from "./util/widgetThemeResolver.js";
L5: import { getWindowCallback } from "@prosopo/procaptcha-common";
L6: import { at } from "@prosopo/util";
High
Copied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/index.jsView on unpkg · L4src/index.tsView file
85if (!siteKey) return;
void Promise.all([
import("@prosopo/procaptcha-frictionless"),
import("@prosopo/procaptcha-common"),
])
.then(([frictionless, common]) => {
frictionless.prefetchDetector(
process.env.PROSOPO_DEFAULT_ENVIRONMENT as EnvironmentTypes,
common.pickIpMode(flags),
siteKey,
);
})
.catch(() => undefined);
Low
Ai Review Evidence
Widget rendering triggers a Prosopo detector prefetch with the site key and IP mode.
src/index.tsView on unpkg · L85Findings
1 High2 Medium6 Low
HighCopied Package Dependency Bridgedist/index.js
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowHigh Entropy Strings
LowUrl Strings
LowAi Review Evidencesrc/index.ts
LowAi Review Evidencesrc/util/clientSession.ts
Affected versions and remediation
This report applies to @prosopo/procaptcha-bundle@4.2.1.
See all versions of @prosopo/procaptcha-bundle for other recorded verdicts.
- Review the evidence and your use of @prosopo/procaptcha-bundle@4.2.1 before allowing it. Restrict the permissions described in this report.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.