VDB

GCVE-110-OSM-2026-10749

GCVE-110-OSM-2026-10749
Advisory PublishedCVSS 9.6/10
Vulnetix · Advisory published August 19, 2026
matrixflow-js@3.2.1 is a typosquat/repackage of ml-matrix (the UMD global is mlMatrix; homepage matrixflow-js.github.io does not correspond to the real ml-matrix project). Its main module matrix.js routes caller-supplied input from the exported solve() code path into runMatrixFunction in src/common.js. src/common.js hides its crypto/fs/path/child_process requires behind an obfuscated string-array; when SHA-256 of the passed input matches a hardcoded hex digest, it uses scryptSync-derived keying to AES-256-GCM-decrypt the sibling file src/statMatrix.min.js, decodes a base64 blob to recover the string 'child_process', writes the plaintext to a temp file, and spawns node on it in a detached, hidden process (detached:true, windowsHide:true, stdio ignored). Two sibling files stage the payload: src/statMatrix.min.js and src/utilMatrix.min.d.js are pure base64 blobs decoding to opaque AES-GCM ciphertext, and src/statMatrix.min.d.js bundles a full ethers.js (BN, secp256k1, wallet code) under a name mimicking a TypeScript declaration file. An Ethereum wallet SDK plus encrypted opaque payloads in a package advertised for dense matrix computation indicates crypto-wallet-targeting malware. Any downstream application that ships this package and invokes solve() on attacker-chosen input executes the concealed, unauditable payload on end-user hosts. Judge assessment: This looks like a typosquat/repackage of a matrix library that hides a loader and payload execution path for an attacker model targeting downstream apps that call its exported API with chosen input. The OSV advisory is corroborated by the static evidence: `src/common.js` has dynamic require/import behavior, and the package includes a massive obfuscated sibling `src/statMatrix.min.d.js` that was too large to deobfuscate, which is a strong concealment signal rather than a benign minified bundle. The presence of a `this.network` C2 IOC alongside the suspicious staged files, combined with a brand-new publisher account and one-package history, is consistent with malicious delivery rather than normal linear-algebra code. I would treat this as a concealed loader meant to execute hidden payloads on victim machines and submit it as malicious. ENTRY matrix.js (main: matrix.js) DESTINATION - 1 c2 (domains) - 2 exfil (ethereumAddresses) (values recorded in verified_iocs) ADDITIONAL FINDINGS - Brand New Package - Very New NPM Publisher Account

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
unknownmatrixflow-js3.2.1 (affected)

References

advisory
vendor

Browse GCVE Records

3,587 records in the GCVE database · Updated September 5, 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 ›