Malicious code in gfff5 (npm)
The npm package gfff5, advertised as a system binary configuration tool, contained malicious code that performs covert surveillance including keystroke logging, screenshot capture, clipboard reading, and UI tree inspection, exfiltrating data to a hardcoded endpoint.
- Disclosed
- Last updated
- Blast radius
- Any user who installed and executed the gfff5 npm package
- Ecosystems
- Attack vectors
- Affected entities
- gfff5npm package containing malicious code
The npm package gfff5 was published with malicious code disguised as a legitimate system configuration tool. When the CLI was invoked, the package's index.js silently installed Python 3.12 on Windows systems using winget or by downloading and executing the python.org installer with quiet flags, then used pip to install required dependencies.\n\nThe bundled pointer.py script implemented comprehensive surveillance capabilities, including global low-level keyboard hooks via the keyboard module, screenshot capture using mss and ImageGrab, clipboard content exfiltration via pyperclip, and UI tree inspection of other applications using uiautomation.WalkControl. All collected data (text and images) was POSTed to the hardcoded endpoint https://iq-sec.vercel.app/api.\n\nThe malicious intent was evident from multiple stealth features: blank window titles, transparent overlays, a panic_exit hotkey, and source code comments labeling the installer as "GHOST INSTALLER — No UI, No Admin Popup." These design choices confirm the behavior was intentionally hidden from users and completely unrelated to the package's declared purpose.\n\nThe incident was identified and credited to the OpenSSF's malicious-packages repository.
Indicators of compromise
- Packages
- gfff5
- Domains
- iq-sec.vercel.app
Remediation
- Immediately uninstall the gfff5 package from all systems where it was installed
- Audit systems for unauthorized Python 3.12 installations and remove if not legitimately required
- Review system logs for suspicious keyboard hook activity, screenshot captures, and clipboard access
- Change all passwords and secrets on affected systems, as they may have been captured via keystroke logging
- Monitor network traffic to and from https://iq-sec.vercel.app/api for data exfiltration
- Scan affected systems for additional malware or persistence mechanisms
- Review npm package dependencies to ensure no other malicious packages were installed as transitive dependencies
Sources
- GitHub Advisory GHSA-4cr4-j2xp-jr48 · GitHub Advisory Database
Cite this entry
"Malicious code in gfff5 (npm)." supplychainattack.org, Supply Chain Attack Incident Catalog. Disclosed August 19, 2026; last updated August 19, 2026. https://supplychainattack.org/incident/malicious-code-in-gfff5-npm-15ilvd
Suggest a correction
Found an error or have a newer source? Corrections to factual errors take priority over new entries.
Related incidents
- containedcritical
Malicious code in 3-buildsight-web (npm)
The npm package 3-buildsight-web contains malicious code that fetches and executes arbitrary JavaScript from a remote Bitbucket URL on module load, granting full page privileges to an unverified third party.
npmCompromised package - resolvedcritical
Malicious code in @usaa-grp-personal-profile/personal-profile-common (npm)
Malicious package @usaa-grp-personal-profile/personal-profile-common version 999.0.0 published to public npm as a dependency-confusion attack targeting an organization's internal registry. The package contains preinstall and postinstall hooks that exfiltrate hostname, username, and working directory to an attacker-controlled OAST endpoint on every install.
npmDependency confusionCompromised package - resolvedcritical
Malicious code in create-coin (npm)
create-coin@20.1.1 on npm contained malicious postinstall code that collected sensitive environment variables, credentials, and host reconnaissance data. The package impersonated an esbuild platform build and exfiltrated data to a hardcoded endpoint.
npmCompromised packageTyposquatting - resolvedcritical
Malicious code in @syncraft-labs/vue (npm)
The npm package @syncraft-labs/vue version 0.4.1 contained malicious obfuscated code in its ESM build that implements a blockchain-hosted C2 dropper (EtherHiding pattern), enabling remote code execution on any consumer importing the package.
npmCompromised package