Supply-chain threat intelligence

Incident detail

criticalnpm·typosquatting·osv

Malicious code in type-async (npm)

type-async

Risk score

92

AI summary

Indexed incident for type-async (npm).

Description

The package presents itself as pino (typosquat; README mirrors pino). The main entry index.js exports a middleware factory that, on invocation, spawns lib/caller.js as a detached Node child process. lib/caller.js performs an HTTPS GET against a remote JSON pastebin (https://json.extendsclass.com/bin/250fca079abb), extracts the .cookie field of the response, and passes it to new Function.constructor("require", s), then invokes the resulting function with the host's require binding — giving whoever controls the pastebin arbitrary code execution on the machine that loaded the package, with full Node module access. Alternate payload URLs on jsonkeeper.com (https://jsonkeeper.com/b/XRGF3, https://jsonkeeper.com/b/4NAKK) are stored base64-encoded inside fake process.env objects in lib/caller.js and lib/const.js under a DEV_API_KEY key, obscuring the destination hosts from casual inspection. The fetched content is unpinned and mutable, the destinations are anonymous paste services unrelated to the package's advertised logging purpose, and the payload is executed with no integrity verification.

Technical details

Affected versions

=3.3.7

Indicators

  • affected version=3.3.775%

Timeline

  1. Advisory published
  2. Indexed by ThreatPkg

Related incidents