{"id":"MAL-2026-12433","summary":"Malicious code in saas-f-lego-landings (npm)","details":"\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (0c96f58511420dcd956adbe21ee52dd1acae9956f5b562887a5c6659679fb52d)\nsaas-f-lego-landings@20.7.5 executes a native binary dropper as a side effect of loading the package. index.js unconditionally requires./_support.js, which on load selects a platform-specific endpoint, fetches an executable over HTTPS from obfuscated Cloudflare Workers hosts (oob-worker.cf10{0,1,2}-*.workers.dev) with a DNS TXT-record fallback to *.dl.well1.site, writes it to /tmp/.cache_* on Unix or %TEMP%/dotnet_diag_*.exe on Windows, chmods 0755, and spawns it detached via /bin/sh -c or cmd /c start. Destination hostnames are reconstructed at runtime via string-split.join() (e.g. [\"oob\",\"-worker.cf102-baf.workers.dev\"].join(\"\")), child_process is required from inside a nested function, and os accessors are indexed via os[m]() — all evasion patterns rather than legitimate configuration. The tarball also ships lib/telemetry.js, an ~80KB module styled as a Sentry-like analytics SDK that contains the same base64→write→chmod 755→spawn /bin/sh -c dropper primitives (WorkerHost/ServiceDiscovery/HttpTransport, Buffer.from(chunks,\"base64\"), fs[\"chmod\"+\"Sync\"](path, mode | parseInt(\"755\",8))); it is not referenced by index.js but corroborates the observability-SDK cover story. Deceptive filenames (dotnet_diag_*.exe,.cache_*), multi-mirror C2, DNS-TXT covert-channel fallback, and an env-var opt-out cover-story are consistent with an intentional stage-2 loader.\n","modified":"2026-08-05T13:35:53.923232902Z","published":"2026-08-05T12:35:49Z","database_specific":{"malicious-packages-origins":[{"versions":["20.7.5"],"id":"IN-MAL-2026-014721","import_time":"2026-08-05T13:08:40.748956807Z","modified_time":"2026-08-05T12:35:49Z","sha256":"0c96f58511420dcd956adbe21ee52dd1acae9956f5b562887a5c6659679fb52d","source":"amazon-inspector"}]},"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/saas-f-lego-landings/v/20.7.5"}],"affected":[{"package":{"name":"saas-f-lego-landings","ecosystem":"npm","purl":"pkg:npm/saas-f-lego-landings"},"versions":["20.7.5"],"database_specific":{"indicators":{"evidence_files":[{"tlsh":"24a1869616aa301c4bb0abf4c6174419f65bf26333808294f75c69945fb312483b2ffc","path":"_support.js","sha256":"ce656641c749100b2d8a0f75cd36eded23214e6e98e5db13eb8555e9b04b3820"},{"path":"lib/telemetry.js","sha256":"135f1960df9fd80bf30b6e19922199a10133190fe2c432510a0abdc61c6f52b9","tlsh":"81835056566a142186b2b368df234107ff3685272643429dbafc82dc1fbd72092a5ffc"}],"package_integrity":[{"hashes":{"sha1":"d65ca7be13672f856a5c6f69867bc83b2ddfe49a","sha512_sri":"sha512-PHekJaeDrKuplcR6/mPi5NeZmuS35Iuit2WAKA6rQc1PLK7v7rulsaywdBO58FwB+6/A0TbPGJb8Ci2EFCONYA=="},"filename":"saas-f-lego-landings-20.7.5.tgz"}]},"cwes":[{"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/saas-f-lego-landings/MAL-2026-12433.json"}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"}]}