{"id":"MAL-2026-10505","summary":"Malicious code in express-ini (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (901c68ddbe24451843ae250e4fa71b40b1d4f86d1c81a62bc8f313a55701b7d3)\npackage.json declares postinstall=`node index.js`. index.js is heavily obfuscated (obfuscator.io rotated string-array with RC4-based decoders hiding all identifiers and literals). At install time the script imports fs, os, path, crypto, child_process and a network module, installs silent uncaughtException/unhandledRejection handlers to suppress errors, performs a remote lookup, splits the response on ':', base64-decodes it, AES-decrypts it via crypto.createDecipheriv, writes the decrypted bytes to a file under process.cwd(), and executes it via child_process.execSync with windowsHide:true. The package name suggests an Express.js utility and the README describes an unrelated 'Safe Wrapper Module', but the only shipped code is the dropper — the name and README are cover for install-time remote code execution against the installer's machine.\n\n## Source: ghsa-malware (3fe674fe1440ed1aae60c9119c0edef2345266d0caabc7a957d2044d88292420)\nAny 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.\n","aliases":["GHSA-w3p6-c3cm-r253"],"modified":"2026-07-20T01:04:44.019758619Z","published":"2026-07-13T21:50:05Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-07-13T21:50:05Z","versions":["12.1.10"],"source":"amazon-inspector","sha256":"901c68ddbe24451843ae250e4fa71b40b1d4f86d1c81a62bc8f313a55701b7d3","import_time":"2026-07-13T22:21:56.286984271Z","id":"IN-MAL-2026-010333"},{"modified_time":"2026-07-20T00:17:37Z","ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"source":"ghsa-malware","sha256":"3fe674fe1440ed1aae60c9119c0edef2345266d0caabc7a957d2044d88292420","import_time":"2026-07-20T00:57:10.770324282Z","id":"GHSA-w3p6-c3cm-r253"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/express-ini/v/12.1.10"},{"type":"ADVISORY","url":"https://github.com/advisories/GHSA-w3p6-c3cm-r253"}],"affected":[{"package":{"name":"express-ini","ecosystem":"npm","purl":"pkg:npm/express-ini"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["12.1.10"],"database_specific":{"indicators":{"evidence_files":[{"sha256":"07450cb70e48b50fa840e2871b44d6022f0bbb41a0bf1d7ac1e0c2fdeb7fd061","tlsh":"23b285cc3fc2b0908627b0f76a5b65a5e1396c98b3cc8449f7a7f458fd58304d469b68","path":"index.js"},{"path":"package.json","sha256":"1805e3cd2082bae30c984e44f12d013d7c0763b2ea7be102a5d2099709f7b7e4","tlsh":"44d0a7260e611a3366b547966c7a928ab2a14f2f2430ac0771ff153843d37729cdeb19"}],"package_integrity":[{"filename":"express-ini-12.1.10.tgz","hashes":{"sha1":"ff7476b43f156b43f92e1afaf2333c7097c06198","sha512_sri":"sha512-gXINKMFI+klTxpAR/rt4Kj/EsfK9Is6I7Xy4PazB4nFM5gF6q+DC4fztOKRKXI6kCyJm7SYjDdVxZ8Ojzp3uXw=="}}]},"cwes":[{"description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code","cweId":"CWE-506"},{"name":"Embedded Malicious Code","cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature."}],"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/express-ini/MAL-2026-10505.json"}}],"schema_version":"1.7.5","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}