registry / @prosopo/procaptcha-bundle / 4.1.55
@prosopo/procaptcha-bundle@4.1.55
AI Security Review
scanned 3mo ago · by lpm-firewall-aiThe scanner signal maps to legitimate dynamic CAPTCHA-module loading and environment-based CAPTCHA configuration. Direct inspection found no lifecycle execution or concrete malicious behavior.
Static reason
One or more suspicious static signals were detected.
Trigger
Browser import or inclusion of the Procaptcha bundle, followed by widget rendering.
Impact
Expected CAPTCHA UI behavior; no confirmed unauthorized mutation, harvesting, or exfiltration.
Mechanism
DOM-based CAPTCHA widget rendering with same-vendor lazy imports.
AI rationale
The scanner signal maps to legitimate dynamic CAPTCHA-module loading and environment-based CAPTCHA configuration. Direct inspection found no lifecycle execution or concrete malicious behavior.
Evidence
package.jsonsrc/index.tssrc/util/configCreator.tssrc/util/widgetFactory.tssrc/util/captcha/components/bundleCaptcha.tsxdist/index.jssrc/util/config.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
- Runtime dynamically imports same-vendor CAPTCHA modules and calls detector prefetch with a site key.
- Config reads Prosopo-named environment values to construct CAPTCHA configuration.
- Package entrypoint attaches a browser CAPTCHA API and renders widgets into page elements.
Evidence against
- package.json has no preinstall, install, or postinstall hook.
- No package source use of shell/process spawning, eval/vm, filesystem writes, credential harvesting, or exfiltration was found.
- No concrete network host or remote-payload URL is embedded in the inspected runtime 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
Runtime dynamically imports same-vendor CAPTCHA modules and calls detector prefetch with a site key.
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/configCreator.ts
Affected versions and remediation
This report applies to @prosopo/procaptcha-bundle@4.1.55.
See all versions of @prosopo/procaptcha-bundle for other recorded verdicts.
- Review the evidence and your use of @prosopo/procaptcha-bundle@4.1.55 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.