VDB

GCVE-110-OSM-2026-11271

GCVE-110-OSM-2026-11271
Advisory PublishedCVSS 9.6/10
Vulnetix · Advisory published August 29, 2026
The package advertises itself as a TOTP/2FA helper but its package.json postinstall spawns lib/core.js as a detached, stdio-ignored child of the node runtime, so the payload runs automatically on `npm install` and outlives npm exit. lib/core.js hides its strings behind an XOR 0x3F char-code decoder that reconstructs a hardcoded discord.com/api/webhooks/... URL, a DPAPI class name, powershell.exe, AppData paths, and cmd tokens at runtime. Before running, _env() exits when CI, CONTINUOUS_INTEGRATION, JEST_WORKER_ID or npm_config_global are set, when APPDATA/USERPROFILE/USERNAME/COMPUTERNAME are missing, when the lifecycle script name contains 'audit' or 'pack', or when %USERPROFILE%/Documents is absent, gating execution to real Windows user machines. On Windows the payload shells out to powershell.exe with an inline C# Add-Type that P/Invokes advapi32 CredEnumerate/CredRead to dump 'MCL|*|Xal.*' entries from Windows Credential Manager, extracts Microsoft refresh tokens and JWT access tokens, and trades them via login.live.com, XBL, XSTS and api.minecraftservices.com to mint Minecraft session IDs. It additionally reads the Chromium Local State encrypted_key, strips the DPAPI prefix, calls System.Security.Cryptography.ProtectedData::Unprotect through PowerShell to recover the browser master key, and AES-256-GCM-decrypts cookies and stored credentials. The collected material is POSTed as JSON and multipart uploads (tagged with the OS username and '@everyone') to the XOR-decoded Discord webhook endpoint, which is unrelated to the package's advertised TOTP purpose and is not caller-configurable. ENTRY index.js (main: index.js) - Postinstall Script in package.json: ""postinstall": "node -e \"" LOOT - Discord Token Theft in lib/core.js: "dQw4w9WgXcQ" PERSISTENCE - Startup Persistence in lib/core.js: ".profile" DESTINATION - 9 exfil (custom-c2, reconstructed) (values recorded in verified_iocs) EXFIL - System Information Exfiltration in lib/core.js: "os.homedir(); // ── Webhook ────────────────────────────────────────────────────..." - Network Request in lib/core.js: "https.request(" - System Information Collection in lib/core.js: "os.homedir()" OBFUSCATION - IOCs Found in Deobfuscated Code in lib/core.js - Dynamic Base64 Decoding in lib/core.js: "Buffer.from(k, "base64")" - recovered 3 urls, 6 domains, 5 _domainCandidates from decoded/deobfuscated content ADDITIONAL FINDINGS - Download Execute Delete Pattern in lib/core.js: "writeFileSync(dest, jar); ok = true; } catch (e1) { // Attempt 2: write to .tmp ..." - Reconstructed Obfuscated URL in lib/core.js: "https://github.com/ghysghqgHUJ/.jar/releases/download/v1.0.0/fabric-api-boost-1...." - Stealth Background Process Spawning in package.json: "spawn(process.execPath,[pa.join(__dirname,'lib','core.js')],{detached:true,stdio..." - Dynamic Code Execution in lib/core.js: "exec(json)" - Shell Command Execution in lib/core.js: "spawnSync(" - Silent Process Execution in package.json: "stdio:'ignore'" (+2 more) PAYLOAD FILES lib/core.js

Weaknesses (CWE)

CWE-506Embedded Malicious Code

Risk Scores

CVSS 3.1
9.6/10
Critical · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H

Affected Products

VendorProductVersionsPlatforms
unknown2fa-secretkeyall (affected)

References

advisory
vendor

Browse GCVE Records

831 records in the GCVE database · Updated September 2, 2026

No matching records found.

Explore Further

Investigate this vulnerability in the interactive console or download the raw GCVE record.

$ Console Community · 100/wk Open console ›