registry / @prosopo/procaptcha-bundle / 4.1.56
@prosopo/procaptcha-bundle@4.1.56
AI Security Review
scanned 3mo ago · by lpm-firewall-aiStatic inspection found package-aligned browser captcha behavior, not a concrete malicious chain. The scanner's environment-variable and dynamic-import signals are explained by widget configuration and lazy loading.
Static reason
One or more suspicious static signals were detected.
Trigger
Importing the browser bundle or rendering a procaptcha widget.
Impact
Page-scoped DOM/widget behavior only; no install-time or host-level mutation found.
Mechanism
Captcha widget initialization and detector prefetch.
AI rationale
Static inspection found package-aligned browser captcha behavior, not a concrete malicious chain. The scanner's environment-variable and dynamic-import signals are explained by widget configuration and lazy loading.
Evidence
package.jsonsrc/index.tssrc/util/configCreator.tssrc/util/widgetFactory.tssrc/util/captcha/captchaRenderer.tsxsrc/util/captcha/components/bundleCaptcha.tsxdist/index.js
Decision evidence
public snapshotAI called this Clean at 95.0% confidence as Benign with low false-positive risk.
Evidence for AI clean decision
- No preinstall/install/postinstall lifecycle hook is declared.
- Dynamic imports are gated by a site key and call the package-aligned detector prefetch.
- Runtime behavior exposes a page-scoped captcha API and dispatches its ready event.
Evidence against
- No credential harvesting, filesystem mutation, shell execution, eval, or remote URL is present in runtime source.
- Environment variables configure captcha settings; they are not read for exfiltration.
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
411// set the procaptcha attribute on the window
window.procaptcha = { ready, render, reset, remove, execute };
// Dispatch a custom event to notify that window.procaptcha is ready
const procaptchaReadyEvent = new CustomEvent(PROCAPTCHA_READY_EVENT, {
detail: {
timestamp: Date.now(),
},
bubbles: true,
cancelable: false,
});
document.dispatchEvent(procaptchaReadyEvent);
start();
Low
Ai Review Evidence
Runtime behavior exposes a page-scoped captcha API and dispatches its ready event.
src/index.tsView on unpkg · L411Findings
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
LowAi Review Evidencesrc/index.ts
Affected versions and remediation
This report applies to @prosopo/procaptcha-bundle@4.1.56.
See all versions of @prosopo/procaptcha-bundle for other recorded verdicts.
- Review the evidence and your use of @prosopo/procaptcha-bundle@4.1.56 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.