registry / @prosopo/procaptcha-bundle / 4.1.53
@prosopo/procaptcha-bundle@4.1.53
AI Security Review
scanned 3mo ago · by lpm-firewall-aiThe flagged dynamic import and environment use are package-aligned captcha initialization, not a payload bridge. Direct inspection found no lifecycle hook or concrete malicious behavior.
Static reason
One or more suspicious static signals were detected.
Trigger
Importing the browser bundle or calling render on a captcha element.
Impact
Normal captcha verification behavior; no install-time mutation, data harvesting, or concrete exfiltration is present in reviewed source.
Mechanism
DOM captcha rendering and same-vendor detector prefetch.
AI rationale
The flagged dynamic import and environment use are package-aligned captcha initialization, not a payload bridge. Direct inspection found no lifecycle hook or concrete malicious behavior.
Evidence
package.jsonsrc/index.tssrc/util/configCreator.tssrc/util/widgetFactory.tssrc/util/captcha/components/bundleCaptcha.tsxsrc/util/config.tssrc/util/captcha/captchaRenderer.tsxdist/index.js
Decision evidence
public snapshotAI called this Clean at 94.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- Runtime dynamically loads Prosopo captcha dependencies and calls prefetchDetector with site key and IP flags.
- The captcha component delegates challenge handling to @prosopo/procaptcha-frictionless.
Evidence against
- package.json has no preinstall, install, or postinstall hook.
- Reviewed source contains no shell/process execution, eval/vm use, credential harvesting, filesystem access, or outbound URL literal.
- Environment variables only populate documented captcha configuration fields.
- Runtime effects are DOM widget mounting, event dispatch, and user/site-key-driven captcha rendering.
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
Suspicious Dependency Evidence
Runtime dynamically loads Prosopo captcha dependencies and calls prefetchDetector with site key and IP flags.
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
LowSuspicious Dependency Evidencesrc/index.ts
LowAi Review Evidencesrc/util/captcha/components/bundleCaptcha.tsx
Affected versions and remediation
This report applies to @prosopo/procaptcha-bundle@4.1.53.
See all versions of @prosopo/procaptcha-bundle for other recorded verdicts.
- Review the evidence and your use of @prosopo/procaptcha-bundle@4.1.53 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.