OpenSSF/OSV advisory MAL-2026-12494 confirms this npm version as malicious. ventrix-kit@1.5.2 ships a loader that, when the package's default `getPlugin` export is invoked, performs an HTTP request to the hardcoded endpoint http://31.97.137.157:45000/icons/116 and passes the response's `credits` field to the JavaScript `Function` constructor, executing the returned code with `require`, `module`, `exports`, `process`, `Buffer`, and other Node globals in scope...
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in ventrix-kit (npm)
Details
ventrix-kit@1.5.2 ships a loader that, when the package's default `getPlugin` export is invoked, performs an HTTP request to the hardcoded endpoint http://31.97.137.157:45000/icons/116 and passes the response's `credits` field to the JavaScript `Function` constructor, executing the returned code with `require`, `module`, `exports`, `process`, `Buffer`, and other Node globals in scope. The destination is a bare IP on a non-standard port with no pinning, signing, or integrity verification; the executed content is fully attacker-controlled and mutable server-side. The package's metadata and identifiers frame the loader as a CDN icon fetcher (`iconDomain`, `path = "/icons/"`, a `bearrtoken: "logo"` header, a `font-awesome`-shaped path, and an unused `setDefaultModule` referencing cdnjs/cloudflare/fastly), and the README advertises the package as a lightweight zero-dependency helper while `dependencies` include axios, express, better-sqlite3, @primno/dpapi, node-machine-id, and socket.io-client — a native-Windows-credential (DPAPI) plus persistent-socket stack inconsistent with an icon helper. Any code path that reaches `getPlugin` grants remote code execution on the consumer's host to the operator of 31.97.137.157.
Decision reason
OpenSSF Malicious Packages via OSV confirms ventrix-kit@1.5.2 as malicious (MAL-2026-12494): Malicious code in ventrix-kit (npm)