{"id":"MAL-2026-18318","revision":"3b62174aa5144fc9aee6858a5158ec14","records":[{"revision":"3b62174aa5144fc9aee6858a5158ec14","observedAt":"2026-10-26T04:25:30.072+00:00","statement":{"source":"osv","id":"MAL-2026-18318","aliases":[],"title":"Malicious code in @greenlake/mfe-login-url (npm)","description":"@greenlake/mfe-login-url is a dependency-confusion package: it is described as a \"Compatibility shim\", uses inflated version numbers, and its README calls it an \"authorized dependency-confusion test\". Each listed version (2.0.0, 1.0.0, 3.0.0) has a postinstall script that runs `node beacon.cjs` on npm install, and index.js calls the same code when the package is imported; it POSTs the hostname, install path and current working directory over plain HTTP to `http://185.158.107.175:8787/_ah/dc`, and index.js exports a Proxy that returns no-op functions so builds importing the real package keep running. The npm account wiseke published 14 such packages under the @greenlake, @sxm-web, @drone-js-ext and @ppa-web-components scopes between 2026-10-23 21:23 and 2026-10-25 14:28 UTC; index.js is byte-identical to that of ph-common (MAL-2026-1809), which sends to the same endpoint.","state":0,"publishedAt":"2026-10-23T21:33:58+00:00","modifiedAt":"2026-10-26T03:30:05.1849399+00:00","affected":[{"ecosystem":"npm","name":"@greenlake/mfe-login-url","ranges":[],"versions":["2.0.0","1.0.0","3.0.0"],"rawVersionEvidence":null}],"metrics":[],"references":["https://www.npmjs.com/package/@greenlake/mfe-login-url"],"sourceUrl":"https://osv.dev/vulnerability/MAL-2026-18318","license":"OSV · upstream source license applies","key":"osv:MAL-2026-18318","identifiers":["MAL-2026-18318"]},"retained":false,"historicalAffected":[]}],"coverage":[]}