registry  /  @asyncapi/generator-components  /  0.7.1

@asyncapi/generator-components@0.7.1

OSV Malicious Advisory

scanned 3h ago · by OpenSSF/OSV

OpenSSF/OSV advisory MAL-2025-190656 confirms this npm version as malicious. lib/utils/ErrorHandling.js contains an obfuscator.io string-array with a base64+decodeURIComponent decoder colocated with a top-level main() invocation reachable via the package's main entry (lib/index.js -> components/HandleError.js -> utils/ErrorHandling.js). On require of the package, main() spawns a detached, stdio-ignored Node subprocess via `spawn('node', ['-e', <decoded-payload>], { detached: true, stdio:...

Advisory
MAL-2025-190656
Source
OpenSSF Malicious Packages via OSV
Summary
Malicious code in @asyncapi/generator-components (npm)
Details
lib/utils/ErrorHandling.js contains an obfuscator.io string-array with a base64+decodeURIComponent decoder colocated with a top-level main() invocation reachable via the package's main entry (lib/index.js -> components/HandleError.js -> utils/ErrorHandling.js). On require of the package, main() spawns a detached, stdio-ignored Node subprocess via `spawn('node', ['-e', <decoded-payload>], { detached: true, stdio: [...], windowsHide: true }).unref()`, where the '-e' argument is ~3 KB of code decoded at runtime from a base64 blob in the obfuscated string array. The payload delivery mechanism (heavy obfuscation, runtime string decoding, detached backgrounded child process, hidden window on Windows) is inconsistent with any documented error-handling functionality and matches the shape of a hidden load-time RCE injection into a legitimate AsyncAPI package. ## Source: ghsa-malware (f8979c7e0c324a5176bad2972f76ef64aaea7afdbbe7f728586c94682bd0d1ad) Any computer that has this package installed or running should be considered fully compromised. All secrets and keys stored on that computer should be rotated immediately from a different computer. The package should be removed, but as full control of the computer may have been given to an outside entity, there is no guarantee that removing the package will remove all malicious software resulting from installing it. ## Source: google-open-source-security (f627fc2ccd3242571f3bc5f3872bef674cde6c2539401724b25294592da5c2a9) This package was compromised by the Sha1-Hulud: The Second Coming NPM worm. The malicious payload steals tokens and credentials and publishes them to GitHub. The worm will propogate itself to NPM packages the user owns and establish persistence is a GitHub action. The package may also destroy the user's home directory.
Decision reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessDynamicRequireEnvironmentVarsFilesystemWebSocket
Supply chain
HighEntropyStrings
Manifest
WildcardDependency
scanned 26 file(s), 139 KB of source

Source & flagged code

2 flagged · loading source
lib/index.jsView file
149}); L150: var _Models = require("./components/Models"); L151: var _FileHeaderInfo = require("./components/FileHeaderInfo");
Medium
Dynamic Require

Package source references dynamic require/import behavior.

lib/index.jsView on unpkg · L149
lib/utils/ErrorHandling.jsView file
93} L94: var _0x1dd48b = _0x1dd2; L95: (function (_0x3aef98, _0x501ff1) {
High
Obfuscated Payload Loader

Source contains an obfuscator-style string-array loader that reconstructs and executes hidden code.

lib/utils/ErrorHandling.jsView on unpkg · L93

Findings

1 High4 Medium4 Low
HighObfuscated Payload Loaderlib/utils/ErrorHandling.js
MediumDynamic Requirelib/index.js
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
MediumWildcard Dependency
LowNon Install Lifecycle Scripts
LowScripts Present
LowFilesystem
LowHigh Entropy Strings