registry / @prosopo/procaptcha-bundle / 4.1.50
@prosopo/procaptcha-bundle@4.1.50
AI Security Review
scanned 3mo ago · by lpm-firewall-aiStatic hints identify normal environment configuration and fixed dependency imports in a captcha browser bundle. Direct source inspection found no malicious chain or lifecycle execution.
Static reason
One or more suspicious static signals were detected.
Trigger
Browser import, widget render, or matching captcha DOM element
Impact
No credential harvesting, filesystem mutation, install-time execution, or concrete exfiltration is established.
Mechanism
fixed dynamic imports for captcha detector prefetch and React widget rendering
AI rationale
Static hints identify normal environment configuration and fixed dependency imports in a captcha browser bundle. Direct source inspection found no malicious chain or lifecycle execution.
Evidence
package.jsonsrc/index.tssrc/util/widgetFactory.tssrc/util/captcha/components/bundleCaptcha.tsxsrc/util/captcha/captchaRenderer.tsxsrc/util/configCreator.tssrc/util/config.ts
Decision evidence
public snapshotAI called this Clean at 96.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- Browser runtime dynamically imports Prosopo captcha dependencies and invokes detector prefetch with the page site key.
Evidence against
- package.json has no preinstall, install, or postinstall hook.
- Source contains no child-process, eval/vm, filesystem harvesting, credential access, or outbound HTTP implementation.
- The bundle mounts and manages captcha widgets in DOM elements; dynamic imports are fixed package-local dependency names.
- No concrete malicious endpoint or data-exfiltration path is present.
Behavioral surface
CryptoEnvironmentVarsFilesystem
HighEntropyStringsUrlStrings
Source & flagged code
2 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
81const startDetectorPrefetch = (
siteKey: string | null,
flags: { ipv4?: boolean; ipv6?: boolean },
): void => {
if (!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
Browser runtime dynamically imports Prosopo captcha dependencies and invokes detector prefetch with the page site key.
src/index.tsView on unpkg · L81Findings
1 High2 Medium5 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
Affected versions and remediation
This report applies to @prosopo/procaptcha-bundle@4.1.50.
See all versions of @prosopo/procaptcha-bundle for other recorded verdicts.
- Review the evidence and your use of @prosopo/procaptcha-bundle@4.1.50 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.