{"schema_version":"1.9.2","id":"MAL-2026-18338","published":"2026-10-27T11:00:16Z","modified":"2026-10-29T13:48:10.626732968Z","summary":"Malicious code in @azure-growth/signup-ux-components (npm)","details":"@azure-growth/signup-ux-components 1.2.2, 1.2.3 and 2.9.9 are dependency-confusion packages that take the name of a package used internally by Microsoft's Azure signup site and not published on the npm registry; 2.9.9 carries a version number above the internal release, so resolvers that also check the public registry prefer it. Their `preinstall` script runs `node index.js`, which reads the OS username and hostname and sends them in a DNS lookup of `msrc-poc.<user>.<hostname>.dbg6vplohjpkmtolbi6g18ekofkxjzm4s.oast.fun`, an out-of-band interaction collector; `index.js` is also the package entry point, so the lookup repeats whenever the package is required. Any machine that installed one of these versions has disclosed its username and hostname to a third party. The earlier `0.0.0-stage` version is an inert placeholder and is not affected.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (e6d15071d1e0d5aba0263de2826a4fde28064184bd5b38b1294a0ad1493069ef)\nThe package declares a preinstall script that executes index.js on `npm install`. The script reads os.userInfo().username and os.hostname() and encodes them into a DNS label of the form `msrc-poc.${user}.${host}.dbg6vplohjpkmtolbi6g18ekofkxjzm4s.oast.fun`, then issues a DNS lookup for that name. The oast.fun host is an interactsh out-of-band collector, and the lookup transmits the installer's OS login name and hostname to that collector automatically at install time, without consent or configuration. The @azure-growth scope resembles an internal Microsoft namespace, consistent with a dependency-confusion beacon targeting internal build systems. No code is fetched or executed from the collector in this version, but installer identity is leaked on every install.\n\n## Source: ossf-package-analysis (d6aa62a9421f736418e09f0b247beb52637c7cb21f03cfba35656222e48215fc)\nThe OpenSSF Package Analysis project identified '@azure-growth/signup-ux-components' @ 1.2.2 (npm) as malicious.\n\nIt is considered malicious because:\n\n- The package communicates with a domain associated with malicious activity.\n","affected":[{"package":{"name":"@azure-growth/signup-ux-components","ecosystem":"npm","purl":"pkg:npm/%40azure-growth/signup-ux-components"},"versions":["1.2.2","1.2.3","2.9.9"],"database_specific":{"cwes":[{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"},{"cweId":"CWE-506","description":"The product contains code that appears to be malicious in nature.","name":"Embedded Malicious Code"}],"indicators":{"evidence_files":[{"path":"index.js","sha256":"7a3239956dc0d5026ffe419f9c74063f37256af001518c9d62884e010630f419","tlsh":"e9e07de4077ed6f01ca63cc1f444552204b3e30336979b8084b892c6c7a3af15a51d70"}],"package_integrity":[{"filename":"signup-ux-components-1.2.2.tgz","hashes":{"sha1":"f33bdf1ed654c21c09d77932f27e875c04c7b2c4","sha512_sri":"sha512-D2vrQMRokRqRDZmkToVoB/9/EzNtIvYTcgJ4c4oGWxhwUhlc8m1m1Bq1oUexOeh14Sak2eEKWOJjQvOvhaGP/Q=="}}]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/@azure-growth/signup-ux-components/MAL-2026-18338.json"}}],"references":[{"type":"PACKAGE","url":"https://www.npmjs.com/package/@azure-growth/signup-ux-components"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@azure-growth/signup-ux-components/v/1.2.2"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@azure-growth/signup-ux-components/v/1.2.3"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/@azure-growth/signup-ux-components/v/2.9.9"}],"database_specific":{"iocs":{"domains":["dbg6vplohjpkmtolbi6g18ekofkxjzm4s.oast.fun"],"files":[{"digests":{"sha256":"7a3239956dc0d5026ffe419f9c74063f37256af001518c9d62884e010630f419"},"note":"install hook and entry point: sends username and hostname in a DNS lookup to the oast.fun collector","paths":["index.js"],"source":"PACKAGE_ARCHIVE"}]},"malicious-packages-origins":[{"import_time":"2026-10-27T11:17:52.776606993Z","modified_time":"2026-10-27T11:09:51Z","sha256":"d6aa62a9421f736418e09f0b247beb52637c7cb21f03cfba35656222e48215fc","source":"ossf-package-analysis","versions":["1.2.2"]},{"import_time":"2026-10-27T12:27:31.022325393Z","modified_time":"2026-10-27T11:46:18Z","sha256":"0075bfbec0eb9e4dffecac4389fd2a13c054daefdce07c80df44c7d341a63ce6","source":"ossf-package-analysis","versions":["1.2.3"]},{"id":"IN-MAL-2026-021828","import_time":"2026-10-29T13:14:06.29077056Z","modified_time":"2026-10-29T13:13:01Z","sha256":"26564d72b8951c3f32bcce98641a69228f9e0a79880626f9f76c292793b3d575","source":"amazon-inspector","versions":["1.2.2"]},{"id":"IN-MAL-2026-021829","import_time":"2026-10-29T13:14:06.364981429Z","modified_time":"2026-10-29T13:13:11Z","sha256":"abe2b01490162d3d9f3330f7e49a1960841d24c5007ec1734f82b23480e4c769","source":"amazon-inspector","versions":["1.2.3"]},{"id":"IN-MAL-2026-021883","import_time":"2026-10-29T13:37:14.905571699Z","modified_time":"2026-10-29T13:20:20Z","sha256":"e6d15071d1e0d5aba0263de2826a4fde28064184bd5b38b1294a0ad1493069ef","source":"amazon-inspector","versions":["2.9.9"]}]},"credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"OpenSSF: Package Analysis","contact":["https://github.com/ossf/package-analysis","https://openssf.slack.com/channels/package_analysis"],"type":"FINDER"},{"name":"Robin Frehner, Protet","contact":["https://protet.io","mailto:hello@protet.io"],"type":"FINDER"}]}