mfa-js
Lightweight Discord MFA authentication library. Raw TLS/1.3, multi-host rotation, Cloudflare bypass, TOTP. Zero dependencies.
This report shows the evidence for mfa-js@1.0.4. 1 of 2 known versions is blocked or flagged. The newest version, 0.0.1-security, is allowed. See all versions.
AI Security Review
scanned 2mo ago · by lpm-firewall-aiThis is concealed import-time malware, not functionality required for an MFA library. The remote payload execution and multi-method persistence warrant blocking despite the lack of an npm lifecycle hook.
Decision evidence
public snapshot- The main entry point imports the cache module automatically.
- On Windows, that module decodes a hidden remote payload location under AppData.
- It downloads an obscured external payload and saves it locally.
- It launches the downloaded file detached and hidden through Windows Script Host.
- The payload installer creates registry, Startup-folder, and scheduled-task persistence.
- It checks for and applies remote payload updates every two hours.
- The manifest has no install lifecycle hook; activation occurs when the package is imported on Windows.
Source & flagged code
6 flagged · loading sourceA single source file combines environment access, network access, and code or shell execution; review context before blocking.
lib/cache.js#virtual:normalized:round1View on unpkg · L20Source decodes a Base64-obscured HTTP endpoint at runtime.
lib/crypto.jsView on unpkg · L10Findings
Affected versions and remediation
This report applies to mfa-js@1.0.4.
The versions list below shows the verdict for each recorded version.
- Avoid installing mfa-js@1.0.4. Remove it from direct dependencies and check your lockfile for transitive copies.
- Choose an independently verified alternative or release. This report does not establish that other versions are safe.
- If this version ran, investigate the affected machine and build environment. Rotate credentials it could access and rebuild from a trusted environment.
Evidence last updated: .
Think this verdict is wrong? Dispute it on GitHub or read how reports are produced.