{"id":"MAL-2026-10957","summary":"Malicious code in iphouse (npm)","details":"The iphouse package was published to the npm registry by user 'jonothhu' (maintainer email bruemleveroger@gmail.com) as one of 19 packages in a dependency-confusion campaign targeting the 'markscan', 'akrai', and 'iphouse' namespaces, published in both unscoped and scoped (@scope/name) forms so that a misconfigured resolver installs the public lookalike instead of an intended private/internal dependency. Each package self-describes as an 'AUTHORIZED SECURITY RESEARCH CANARY' (static token PATHC-CANARY-2026, contact farouqsa@proton.me), but ships an unconsented install-time beacon and provides no legitimate functionality.\n\nThe package declares a postinstall hook (\"node postinstall.js\") that executes automatically on npm install. The bundled postinstall.js collects host reconnaissance - the package/canary name, the static token 'PATHC-CANARY-2026', an event label, a UTC timestamp, the Node.js version, the current working directory, the platform, and os.hostname() - and exfiltrates it via HTTPS POST to a hardcoded anonymous dead-drop at https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350 (the same collector across all 19 packages). Request errors are swallowed.\n\nThe self-attestation of 'authorized security research' present in the package metadata is unverifiable and does not change the disposition: the package performs unconsented telemetry collection and exfiltration at install time to an anonymous collector, matching the behavior of a dependency-confusion reconnaissance beacon. Install-time behavior and the shared collector endpoint were confirmed by static analysis of a sample spanning all three namespaces and both scoped and unscoped variants.\n\n---\n_-= Per source details. Do not edit below this line.=-_\n\n## Source: amazon-inspector (70186abda59a78392fa403a58be7f3604692b279a7fdd625271b1e00bf53e7f2)\niphouse@1.0.0 ships a postinstall.js lifecycle script that runs unconditionally on `npm install`. It collects installer host identifiers (hostname, platform, current working directory, node version, timestamp) and POSTs them as JSON to a hardcoded webhook.site endpoint (https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350) controlled by the package author. There is no opt-in, no disclosure to the installer, and no legitimate package functionality accompanying the beacon — the package's only behavior is host-metadata exfiltration to an anonymous author-controlled endpoint.\n","modified":"2026-08-04T23:05:14.523705585Z","published":"2026-07-20T00:00:00Z","database_specific":{"malicious-packages-origins":[{"modified_time":"2026-08-04T21:56:19Z","sha256":"70186abda59a78392fa403a58be7f3604692b279a7fdd625271b1e00bf53e7f2","source":"amazon-inspector","versions":["1.0.0"],"id":"IN-MAL-2026-011265","import_time":"2026-08-04T22:30:08.09639398Z"}]},"references":[{"type":"WEB","url":"https://www.npmjs.com/package/iphouse"},{"type":"PACKAGE","url":"https://www.npmjs.com/package/iphouse/v/1.0.0"}],"affected":[{"package":{"name":"iphouse","ecosystem":"npm","purl":"pkg:npm/iphouse"},"ranges":[{"type":"SEMVER","events":[{"introduced":"0"}]}],"versions":["1.0.0"],"database_specific":{"iocs":{"urls":["https://webhook.site/129cb2ee-ba08-4b3c-989c-270dc0030350"],"domains":["webhook.site"]},"source":"https://github.com/ossf/malicious-packages/blob/main/osv/malicious/npm/iphouse/MAL-2026-10957.json","cwes":[{"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."}],"indicators":{"evidence_files":[{"sha256":"c10fcdaa1570376157fe5eec1aeb03cefdbc41d52ad69eaad3a73e68b726a0d9","tlsh":"170110f08674e33e5f7492d4e3a0dd2b93b6e22076028573fbf912d92b425580561ebc","path":"postinstall.js"}],"package_integrity":[{"filename":"iphouse-1.0.0.tgz","hashes":{"sha1":"80848249aa42a24689f80ac2741db9346105622a","sha512_sri":"sha512-kq+f+VrbWkkDrdR4/kqd6k3AwXy6D6XWujuWh4zFV2PD/zzz/14BN8rCCi36G//NGdWniQbfiyz6qZoBmNAyeg=="}}]}}}],"schema_version":"1.8.0","credits":[{"name":"Amazon Inspector","contact":["inspector-research@amazon.com"],"type":"FINDER"},{"name":"SafeDep","contact":["https://safedep.io"],"type":"FINDER"}]}