
Research
2025 Report: Destructive Malware in Open Source Packages
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.
Quickly evaluate the security and health of any open source package.
sbcli-raid
1.0.3
Live on PyPI
Blocked by Socket
No direct malware code is present in the fragment (no obvious backdoor, reverse shell, or exfiltration implemented in this file itself). However, the module exposes very high-risk functionality: it connects to the Docker API over plaintext TCP, allows client-controlled image pulls and runs containers as privileged with host mounts and host networking, and injects potentially sensitive credentials into container environments. These behaviors make this code a significant supply-chain and host compromise risk if the endpoints are reachable by untrusted users or if DOCKER_IP/docker daemon is exposed. Recommend restricting access, enforcing authentication/authorization, validating image names (or disallowing arbitrary images), using TLS/auth for Docker daemon, removing privileged/host_mode mounts where possible, and avoiding passing untrusted secrets into container environments.
jquery-ui-smoothness
1.11.2
by sinarpagi
Removed from npm
Blocked by Socket
The script is designed to send sensitive information from the local system to a remote server, which poses a significant security risk and is indicative of malicious behavior.
Live on npm for 2 days, 15 hours and 37 minutes before removal. Socket users were protected even while the package was live.
yz-rpa-utils
0.2.6
Live on PyPI
Blocked by Socket
This module implements a worker that downloads Python code from a remote API and executes it locally via exec(), supplying the code with api_client and job objects and normal process privileges. That design yields remote code execution capability and thus a high supply-chain/malicious risk if the remote source is untrusted. There is no sandboxing; a malicious server can exfiltrate data, run destructive commands, or install backdoors. The code itself is not obfuscated and contains no hardcoded secrets, but its behavior is inherently dangerous.
curri-slack
1.5.2
Removed from npm
Blocked by Socket
The code has multiple indicators of malicious behavior, including the collection and transmission of sensitive system information to external servers, which raises significant security concerns.
Live on npm for 18 minutes before removal. Socket users were protected even while the package was live.
gnach
5.2.3
by viktoria115
Removed from npm
Blocked by Socket
The code initiates a detached child process that runs an external script (`smtp-connection/index.js`) with its I/O streams ignored. This pattern is suspicious as it can be used to execute code in the background without direct visibility or control from the parent process. While it could be for legitimate background operations, the combination of detachment, ignored I/O, and unreferencing the child process raises concerns about potential hidden malicious activity, such as data exfiltration or establishing persistent connections.
Live on npm for 7 days, 11 hours and 35 minutes before removal. Socket users were protected even while the package was live.
meutils
2024.10.31.19.54.29
Live on PyPI
Blocked by Socket
The code sends sensitive credentials from environment variables over an unencrypted HTTP connection to an external API service at api[.]sqhyw[.]net:90. It authenticates using username/password from the YEZI_USER environment variable, retrieves access tokens, and automates the process of obtaining mobile phone numbers and SMS verification codes. This behavior poses significant supply chain security risks through: (1) leakage of environment variable credentials over unencrypted HTTP, (2) interaction with a suspicious external domain on a non-standard port, (3) logging of potentially sensitive API responses including tokens and SMS codes, and (4) facilitation of SMS verification bypass which could enable fraudulent account creation or spam activities. The code continuously polls the external API for up to 120 seconds to retrieve SMS codes, creating additional operational risks. While not containing traditional malware payloads, the credential exfiltration and suspicious external communication patterns justify classification as malware due to the significant security risks posed to systems that deploy this code.
external-nuker
1.0.6
by slayerm7
Live on npm
Blocked by Socket
This code prompts the operator for a Discord authentication token via the command line, then calls discord.js Client.login(token) (communicating with api[.]discord[.]com) to validate that token. On successful login it immediately persists the raw token and the authenticated account’s username into a database (via saveToken.findOneAndUpdate) in plaintext, with no encryption, access controls, or audit logging. The project’s naming (‘External-Nuker’) and this verification-plus-storage pattern constitute credential harvesting, enabling potential account takeover or automated abusive actions on Discord. Treat as high risk, remove it from any trusted environments, and audit any token stores for unauthorized entries.
@aaronvera/systeminfo
1.0.0
by aaronvera
Live on npm
Blocked by Socket
This module contains a supply-chain backdoor pattern: it fetches JavaScript from a hard-coded remote URL and executes it immediately on module import via an indirectly-resolved global function. That alone makes the package unsafe to use — it provides an attacker-controlled remote execution channel in any host that requires this module. The rest of the file provides legitimate process/service monitoring features, but that does not mitigate the backdoor risk. Recommendation: treat this package as malicious/untrusted; block or remove it from builds and investigate any systems that imported or executed it.
plengauer/thoth
b4a6d454f752d91ce32cbad60ea3ee0a4b54289e
Live on GitHub Actions
Blocked by Socket
The fragment implements a dynamic injection mechanism around git submodule foreach to route execution through an instrumentation/telemetry pathway (otel.sh) via eval and environment overrides. While it may be legitimate for telemetry, in a supply-chain context this represents a serious risk: it can modify commands, execute external scripts, and potentially exfiltrate data. The code exhibits dynamic execution, environment-based overrides, and obfuscated-like argument handling patterns that are suspicious and likely malicious in user-controlled environments. The automatic aliasing of git further elevates risk by enabling persistence across sessions.
mtmai
0.3.946
Live on PyPI
Blocked by Socket
The code exposes powerful administrative actions: arbitrary shell execution, arbitrary file reads, full environment dumps, and building/pushing Docker images to a hardcoded registry. These are not obfuscated but are high-risk capabilities that can be abused for data exfiltration, remote code execution, and supply-chain leakage if the superuser authentication is compromised or misconfigured. The presence of a hardcoded remote image name for docker push is suspicious for unintended outbound artifact exfiltration. Recommendation: avoid including these endpoints in public packages or ensure strict, auditable authentication and input validation; remove hardcoded push targets and avoid returning full environment variables or arbitrary file contents.
ironpython.console
3.4.1
by IronPython Contributors, Microsoft
Live on NuGet
Blocked by Socket
This is a mailcap parser/utility that reads mailcap files and constructs shell commands from their entries. The code executes commands via os.system after performing textual substitution using filename, MIME type, and parameters. That behavior is expected for a mailcap implementation, but it represents a high-risk sink: untrusted mailcap files, environment variables, or attacker-controlled filename/plist values can lead to arbitrary command execution (shell injection). The code itself does not contain obfuscated or hidden malware, credentials, or explicit exfiltration; however, using it with untrusted inputs or untrusted mailcap files is dangerous. Recommend treating mailcap files as trusted input only, or replacing os.system usage with safer invocation (e.g., subprocess with argument lists and proper escaping/validation).
koxy-cli
1.1.6
by kaisradwan
Removed from npm
Blocked by Socket
The code is part of the Koxy project, which is used for running API requests and managing flows. The code contains potential security risks and anomalies, including dynamic code execution, parsing of user-controlled data without validation, lack of proper error handling, and access to the file system. These issues should be addressed to ensure the security and integrity of the project.
Live on npm for 7 days, 6 hours and 4 minutes before removal. Socket users were protected even while the package was live.
dtx
0.23.0
Live on PyPI
Blocked by Socket
The code provides flexible transformation mechanisms but includes high-risk constructs: exec() of inline code and dynamic importing/executing of external files, plus un-sandboxed Jinja2 rendering. These features enable arbitrary code execution if transform_request or referenced files are attacker-controlled, presenting a significant supply-chain/runtime code execution risk. The module is not itself demonstrably malicious, but its design makes it dangerous in hostile contexts and should be hardened or avoided unless inputs are fully trusted and validated.
pan.utils
0.0.4
by Pan
Live on NuGet
Blocked by Socket
This assembly contains multiple strong indicators of malicious or dual-use behavior: heavy obfuscation, an embedded encrypted resource with custom decoding, in-memory decryption, and direct native API usage for allocating/writing memory and resolving function pointers — a pattern consistent with reflective loaders or runtime shellcode injection. It also includes permissive network behavior (accept-all TLS) and channels for exfiltration (HTTP and SMTP). Even though parts (DB builders, crypto helpers) are legitimate, the hidden payload handling and native injection primitives make this package high risk for supply-chain or backdoor activity. I recommend treating this package as malicious/compromised and removing it from trusted dependencies pending full forensic review.
sbcli-dev
5.2.7
Live on PyPI
Blocked by Socket
No direct malware code is present in the fragment (no obvious backdoor, reverse shell, or exfiltration implemented in this file itself). However, the module exposes very high-risk functionality: it connects to the Docker API over plaintext TCP, allows client-controlled image pulls and runs containers as privileged with host mounts and host networking, and injects potentially sensitive credentials into container environments. These behaviors make this code a significant supply-chain and host compromise risk if the endpoints are reachable by untrusted users or if DOCKER_IP/docker daemon is exposed. Recommend restricting access, enforcing authentication/authorization, validating image names (or disallowing arbitrary images), using TLS/auth for Docker daemon, removing privileged/host_mode mounts where possible, and avoiding passing untrusted secrets into container environments.
dprojects.dish
2.0.1173
by marcdp, Marc Delos Poch, DProjects
Live on NuGet
Blocked by Socket
This script performs legitimate-sounding provisioning tasks but contains multiple high-risk actions that are consistent with establishing a persistent backdoor: it creates a privileged OS user with an empty password, mounts the host filesystem into the environment, and installs a persistent service that exposes an interactive console via a named pipe while skipping reauthentication. Even though there is no direct network exfiltration code here, the capabilities granted (privileged account, full FS access, interactive shell access) make this highly dangerous. Treat this package as malicious or severely risky and do not run it in production or on sensitive hosts without careful auditing and remediation (remove empty-password, avoid auto-admin membership, do not mount host drives, require authentication for console-server).
jsxgraph
1.2.3
by alfredw
Live on npm
Blocked by Socket
This module contains high-risk behaviors: it feeds unsanitized user-supplied content into an external CAS and then eval()s the CAS output inside the Python process. That combination creates a clear remote code execution / supply-chain risk. Even though there is no explicit networking or credential theft in the file itself, an attacker able to control 'polys' or the CoCoA binary can achieve arbitrary code execution. Recommend: do not trust unvalidated 'polys' input, remove eval() usage (parse expressions safely or implement a restricted expression evaluator), validate/sanitize CAS output before execution, avoid placing MPLCONFIGDIR in world-writable /tmp, and fix looping-variable bugs. Treat this package as risky until those issues are remediated.
@icarys/form-designer
1.1.3
by icarys
Live on npm
Blocked by Socket
The codebase contains a covert, environment-dependent beacon mechanism that can leak data or load remote content via an iframe, coupled with normal but privacy-sensitive AI data flows. This constitutes a significant supply-chain/security risk and should be treated as high-risk. Remove or disable the hidden iframe beacon, replace obfuscated logic with transparent telemetry, and ensure explicit user consent and auditable data handling for all external communications.
monolith-twirp-webhooksubscriptions-subscriptions
1.5.0
by Nick Quaranto
Live on RubyGems.org
Blocked by Socket
This Ruby file implements an automated data-exfiltration payload that activates as soon as the module is loaded. It gathers the current username (ENV['USER'], ENV['USERNAME'] or `whoami`), machine hostname (Socket.gethostname), and the file's absolute path (File.expand_path(__FILE__)). Each value is hex-encoded and split into chunks to conform to DNS label length limits. A target domain is constructed in the pattern: a<username_hex>.a<hostname_hex>.a<filepath_hex>.furb[.]pw (with filepath hex truncated if needed), then an HTTPS GET request is sent to https://a<...>.furb[.]pw/. The code executes automatically when loaded as a module (unless __FILE__ == $0), making it a supply chain attack vector. No opt-in or legitimate use case exists. This behavior is unambiguously malicious, leveraging DNS/HTTPS for covert reconnaissance and unauthorized data exfiltration.
automation-rest-server
1.0.6
Removed from PyPI
Blocked by Socket
The code exhibits several security risks, including potential command injection, modification of system parameters without consent, and privilege escalation through file permission changes. While it does not show overt malicious behavior, the risks associated with its execution warrant caution.
Live on PyPI for 2 hours and 13 minutes before removal. Socket users were protected even while the package was live.
composio-core
0.1.66
Removed from PyPI
Blocked by Socket
This module contains risky behavior consistent with a supply-chain/security misconfiguration rather than explicit malicious code. The most serious issue is a hardcoded API key embedded in source and use of an SDK client to fetch remote data which is then written into the package filesystem. The subprocess calls to read git user.name/email add further privacy risk. There is no explicit code that exfiltrates or executes arbitrary code, but the secret in source and file-write side-effects make this package unsuitable for use until credentials are removed and behavior is made explicit and secure.
Live on PyPI for 2 hours and 15 minutes before removal. Socket users were protected even while the package was live.
fzutils
0.3.1.3
Live on PyPI
Blocked by Socket
No clear indicators of intentionally malicious or backdoor behavior were found (no exec/eval, no network exfiltration, no obfuscated payloads). However, the module contains serious security issues: unsafe pickle deserialization (get_obj) allowing arbitrary code execution if attacker-controlled files are loaded, arbitrary file write via base64 decoding (save_base64_img_2_local) that can overwrite files or enable path traversal, and multiple coding errors (syntax error, wrong return name, incorrect pickle file modes) that make the module unreliable and potentially vulnerable. Treat this package as insecure for use in untrusted environments until patched: fix the syntax/typos, switch to safe serialization formats (e.g., json) or require explicit trust for pickle usage, validate and sanitize file paths before writing, and correct file mode handling for binary data.
cmdbox
0.7.0.1
Removed from PyPI
Blocked by Socket
This code contains significant client-side security risks: unsafe use of eval() on server-supplied content and unescaped insertion of server messages into the DOM. Those patterns enable remote code execution / reflected XSS if an attacker (or a compromised server) can control WebSocket messages or server-returned configuration/data. There are no clear hardcoded credentials or outbound exfiltration endpoints in this fragment, but the eval/DOM patterns are high-risk and should be replaced (use JSON.parse, avoid eval, properly escape HTML before inserting into DOM). If this package is used in environments where server data may be untrusted or an intermediary can tamper with responses, treat it as unsafe until refactored.
Live on PyPI for 10 days, 21 hours and 54 minutes before removal. Socket users were protected even while the package was live.
azure-graphrbac
4.0.9
Removed from npm
Blocked by Socket
Possible typosquat of azure - Explanation: The package 'azure-graphrbac' is labeled as a 'security holding package', which often indicates a placeholder to prevent typosquatting. The name 'azure-graphrbac' closely resembles legitimate Azure package naming conventions, which could confuse users. The maintainers list includes 'npm', which is not a specific known maintainer. Therefore, it is likely a typosquat.
Live on npm for 1 hour and 55 minutes before removal. Socket users were protected even while the package was live.
sbcli-raid
1.0.3
Live on PyPI
Blocked by Socket
No direct malware code is present in the fragment (no obvious backdoor, reverse shell, or exfiltration implemented in this file itself). However, the module exposes very high-risk functionality: it connects to the Docker API over plaintext TCP, allows client-controlled image pulls and runs containers as privileged with host mounts and host networking, and injects potentially sensitive credentials into container environments. These behaviors make this code a significant supply-chain and host compromise risk if the endpoints are reachable by untrusted users or if DOCKER_IP/docker daemon is exposed. Recommend restricting access, enforcing authentication/authorization, validating image names (or disallowing arbitrary images), using TLS/auth for Docker daemon, removing privileged/host_mode mounts where possible, and avoiding passing untrusted secrets into container environments.
jquery-ui-smoothness
1.11.2
by sinarpagi
Removed from npm
Blocked by Socket
The script is designed to send sensitive information from the local system to a remote server, which poses a significant security risk and is indicative of malicious behavior.
Live on npm for 2 days, 15 hours and 37 minutes before removal. Socket users were protected even while the package was live.
yz-rpa-utils
0.2.6
Live on PyPI
Blocked by Socket
This module implements a worker that downloads Python code from a remote API and executes it locally via exec(), supplying the code with api_client and job objects and normal process privileges. That design yields remote code execution capability and thus a high supply-chain/malicious risk if the remote source is untrusted. There is no sandboxing; a malicious server can exfiltrate data, run destructive commands, or install backdoors. The code itself is not obfuscated and contains no hardcoded secrets, but its behavior is inherently dangerous.
curri-slack
1.5.2
Removed from npm
Blocked by Socket
The code has multiple indicators of malicious behavior, including the collection and transmission of sensitive system information to external servers, which raises significant security concerns.
Live on npm for 18 minutes before removal. Socket users were protected even while the package was live.
gnach
5.2.3
by viktoria115
Removed from npm
Blocked by Socket
The code initiates a detached child process that runs an external script (`smtp-connection/index.js`) with its I/O streams ignored. This pattern is suspicious as it can be used to execute code in the background without direct visibility or control from the parent process. While it could be for legitimate background operations, the combination of detachment, ignored I/O, and unreferencing the child process raises concerns about potential hidden malicious activity, such as data exfiltration or establishing persistent connections.
Live on npm for 7 days, 11 hours and 35 minutes before removal. Socket users were protected even while the package was live.
meutils
2024.10.31.19.54.29
Live on PyPI
Blocked by Socket
The code sends sensitive credentials from environment variables over an unencrypted HTTP connection to an external API service at api[.]sqhyw[.]net:90. It authenticates using username/password from the YEZI_USER environment variable, retrieves access tokens, and automates the process of obtaining mobile phone numbers and SMS verification codes. This behavior poses significant supply chain security risks through: (1) leakage of environment variable credentials over unencrypted HTTP, (2) interaction with a suspicious external domain on a non-standard port, (3) logging of potentially sensitive API responses including tokens and SMS codes, and (4) facilitation of SMS verification bypass which could enable fraudulent account creation or spam activities. The code continuously polls the external API for up to 120 seconds to retrieve SMS codes, creating additional operational risks. While not containing traditional malware payloads, the credential exfiltration and suspicious external communication patterns justify classification as malware due to the significant security risks posed to systems that deploy this code.
external-nuker
1.0.6
by slayerm7
Live on npm
Blocked by Socket
This code prompts the operator for a Discord authentication token via the command line, then calls discord.js Client.login(token) (communicating with api[.]discord[.]com) to validate that token. On successful login it immediately persists the raw token and the authenticated account’s username into a database (via saveToken.findOneAndUpdate) in plaintext, with no encryption, access controls, or audit logging. The project’s naming (‘External-Nuker’) and this verification-plus-storage pattern constitute credential harvesting, enabling potential account takeover or automated abusive actions on Discord. Treat as high risk, remove it from any trusted environments, and audit any token stores for unauthorized entries.
@aaronvera/systeminfo
1.0.0
by aaronvera
Live on npm
Blocked by Socket
This module contains a supply-chain backdoor pattern: it fetches JavaScript from a hard-coded remote URL and executes it immediately on module import via an indirectly-resolved global function. That alone makes the package unsafe to use — it provides an attacker-controlled remote execution channel in any host that requires this module. The rest of the file provides legitimate process/service monitoring features, but that does not mitigate the backdoor risk. Recommendation: treat this package as malicious/untrusted; block or remove it from builds and investigate any systems that imported or executed it.
plengauer/thoth
b4a6d454f752d91ce32cbad60ea3ee0a4b54289e
Live on GitHub Actions
Blocked by Socket
The fragment implements a dynamic injection mechanism around git submodule foreach to route execution through an instrumentation/telemetry pathway (otel.sh) via eval and environment overrides. While it may be legitimate for telemetry, in a supply-chain context this represents a serious risk: it can modify commands, execute external scripts, and potentially exfiltrate data. The code exhibits dynamic execution, environment-based overrides, and obfuscated-like argument handling patterns that are suspicious and likely malicious in user-controlled environments. The automatic aliasing of git further elevates risk by enabling persistence across sessions.
mtmai
0.3.946
Live on PyPI
Blocked by Socket
The code exposes powerful administrative actions: arbitrary shell execution, arbitrary file reads, full environment dumps, and building/pushing Docker images to a hardcoded registry. These are not obfuscated but are high-risk capabilities that can be abused for data exfiltration, remote code execution, and supply-chain leakage if the superuser authentication is compromised or misconfigured. The presence of a hardcoded remote image name for docker push is suspicious for unintended outbound artifact exfiltration. Recommendation: avoid including these endpoints in public packages or ensure strict, auditable authentication and input validation; remove hardcoded push targets and avoid returning full environment variables or arbitrary file contents.
ironpython.console
3.4.1
by IronPython Contributors, Microsoft
Live on NuGet
Blocked by Socket
This is a mailcap parser/utility that reads mailcap files and constructs shell commands from their entries. The code executes commands via os.system after performing textual substitution using filename, MIME type, and parameters. That behavior is expected for a mailcap implementation, but it represents a high-risk sink: untrusted mailcap files, environment variables, or attacker-controlled filename/plist values can lead to arbitrary command execution (shell injection). The code itself does not contain obfuscated or hidden malware, credentials, or explicit exfiltration; however, using it with untrusted inputs or untrusted mailcap files is dangerous. Recommend treating mailcap files as trusted input only, or replacing os.system usage with safer invocation (e.g., subprocess with argument lists and proper escaping/validation).
koxy-cli
1.1.6
by kaisradwan
Removed from npm
Blocked by Socket
The code is part of the Koxy project, which is used for running API requests and managing flows. The code contains potential security risks and anomalies, including dynamic code execution, parsing of user-controlled data without validation, lack of proper error handling, and access to the file system. These issues should be addressed to ensure the security and integrity of the project.
Live on npm for 7 days, 6 hours and 4 minutes before removal. Socket users were protected even while the package was live.
dtx
0.23.0
Live on PyPI
Blocked by Socket
The code provides flexible transformation mechanisms but includes high-risk constructs: exec() of inline code and dynamic importing/executing of external files, plus un-sandboxed Jinja2 rendering. These features enable arbitrary code execution if transform_request or referenced files are attacker-controlled, presenting a significant supply-chain/runtime code execution risk. The module is not itself demonstrably malicious, but its design makes it dangerous in hostile contexts and should be hardened or avoided unless inputs are fully trusted and validated.
pan.utils
0.0.4
by Pan
Live on NuGet
Blocked by Socket
This assembly contains multiple strong indicators of malicious or dual-use behavior: heavy obfuscation, an embedded encrypted resource with custom decoding, in-memory decryption, and direct native API usage for allocating/writing memory and resolving function pointers — a pattern consistent with reflective loaders or runtime shellcode injection. It also includes permissive network behavior (accept-all TLS) and channels for exfiltration (HTTP and SMTP). Even though parts (DB builders, crypto helpers) are legitimate, the hidden payload handling and native injection primitives make this package high risk for supply-chain or backdoor activity. I recommend treating this package as malicious/compromised and removing it from trusted dependencies pending full forensic review.
sbcli-dev
5.2.7
Live on PyPI
Blocked by Socket
No direct malware code is present in the fragment (no obvious backdoor, reverse shell, or exfiltration implemented in this file itself). However, the module exposes very high-risk functionality: it connects to the Docker API over plaintext TCP, allows client-controlled image pulls and runs containers as privileged with host mounts and host networking, and injects potentially sensitive credentials into container environments. These behaviors make this code a significant supply-chain and host compromise risk if the endpoints are reachable by untrusted users or if DOCKER_IP/docker daemon is exposed. Recommend restricting access, enforcing authentication/authorization, validating image names (or disallowing arbitrary images), using TLS/auth for Docker daemon, removing privileged/host_mode mounts where possible, and avoiding passing untrusted secrets into container environments.
dprojects.dish
2.0.1173
by marcdp, Marc Delos Poch, DProjects
Live on NuGet
Blocked by Socket
This script performs legitimate-sounding provisioning tasks but contains multiple high-risk actions that are consistent with establishing a persistent backdoor: it creates a privileged OS user with an empty password, mounts the host filesystem into the environment, and installs a persistent service that exposes an interactive console via a named pipe while skipping reauthentication. Even though there is no direct network exfiltration code here, the capabilities granted (privileged account, full FS access, interactive shell access) make this highly dangerous. Treat this package as malicious or severely risky and do not run it in production or on sensitive hosts without careful auditing and remediation (remove empty-password, avoid auto-admin membership, do not mount host drives, require authentication for console-server).
jsxgraph
1.2.3
by alfredw
Live on npm
Blocked by Socket
This module contains high-risk behaviors: it feeds unsanitized user-supplied content into an external CAS and then eval()s the CAS output inside the Python process. That combination creates a clear remote code execution / supply-chain risk. Even though there is no explicit networking or credential theft in the file itself, an attacker able to control 'polys' or the CoCoA binary can achieve arbitrary code execution. Recommend: do not trust unvalidated 'polys' input, remove eval() usage (parse expressions safely or implement a restricted expression evaluator), validate/sanitize CAS output before execution, avoid placing MPLCONFIGDIR in world-writable /tmp, and fix looping-variable bugs. Treat this package as risky until those issues are remediated.
@icarys/form-designer
1.1.3
by icarys
Live on npm
Blocked by Socket
The codebase contains a covert, environment-dependent beacon mechanism that can leak data or load remote content via an iframe, coupled with normal but privacy-sensitive AI data flows. This constitutes a significant supply-chain/security risk and should be treated as high-risk. Remove or disable the hidden iframe beacon, replace obfuscated logic with transparent telemetry, and ensure explicit user consent and auditable data handling for all external communications.
monolith-twirp-webhooksubscriptions-subscriptions
1.5.0
by Nick Quaranto
Live on RubyGems.org
Blocked by Socket
This Ruby file implements an automated data-exfiltration payload that activates as soon as the module is loaded. It gathers the current username (ENV['USER'], ENV['USERNAME'] or `whoami`), machine hostname (Socket.gethostname), and the file's absolute path (File.expand_path(__FILE__)). Each value is hex-encoded and split into chunks to conform to DNS label length limits. A target domain is constructed in the pattern: a<username_hex>.a<hostname_hex>.a<filepath_hex>.furb[.]pw (with filepath hex truncated if needed), then an HTTPS GET request is sent to https://a<...>.furb[.]pw/. The code executes automatically when loaded as a module (unless __FILE__ == $0), making it a supply chain attack vector. No opt-in or legitimate use case exists. This behavior is unambiguously malicious, leveraging DNS/HTTPS for covert reconnaissance and unauthorized data exfiltration.
automation-rest-server
1.0.6
Removed from PyPI
Blocked by Socket
The code exhibits several security risks, including potential command injection, modification of system parameters without consent, and privilege escalation through file permission changes. While it does not show overt malicious behavior, the risks associated with its execution warrant caution.
Live on PyPI for 2 hours and 13 minutes before removal. Socket users were protected even while the package was live.
composio-core
0.1.66
Removed from PyPI
Blocked by Socket
This module contains risky behavior consistent with a supply-chain/security misconfiguration rather than explicit malicious code. The most serious issue is a hardcoded API key embedded in source and use of an SDK client to fetch remote data which is then written into the package filesystem. The subprocess calls to read git user.name/email add further privacy risk. There is no explicit code that exfiltrates or executes arbitrary code, but the secret in source and file-write side-effects make this package unsuitable for use until credentials are removed and behavior is made explicit and secure.
Live on PyPI for 2 hours and 15 minutes before removal. Socket users were protected even while the package was live.
fzutils
0.3.1.3
Live on PyPI
Blocked by Socket
No clear indicators of intentionally malicious or backdoor behavior were found (no exec/eval, no network exfiltration, no obfuscated payloads). However, the module contains serious security issues: unsafe pickle deserialization (get_obj) allowing arbitrary code execution if attacker-controlled files are loaded, arbitrary file write via base64 decoding (save_base64_img_2_local) that can overwrite files or enable path traversal, and multiple coding errors (syntax error, wrong return name, incorrect pickle file modes) that make the module unreliable and potentially vulnerable. Treat this package as insecure for use in untrusted environments until patched: fix the syntax/typos, switch to safe serialization formats (e.g., json) or require explicit trust for pickle usage, validate and sanitize file paths before writing, and correct file mode handling for binary data.
cmdbox
0.7.0.1
Removed from PyPI
Blocked by Socket
This code contains significant client-side security risks: unsafe use of eval() on server-supplied content and unescaped insertion of server messages into the DOM. Those patterns enable remote code execution / reflected XSS if an attacker (or a compromised server) can control WebSocket messages or server-returned configuration/data. There are no clear hardcoded credentials or outbound exfiltration endpoints in this fragment, but the eval/DOM patterns are high-risk and should be replaced (use JSON.parse, avoid eval, properly escape HTML before inserting into DOM). If this package is used in environments where server data may be untrusted or an intermediary can tamper with responses, treat it as unsafe until refactored.
Live on PyPI for 10 days, 21 hours and 54 minutes before removal. Socket users were protected even while the package was live.
azure-graphrbac
4.0.9
Removed from npm
Blocked by Socket
Possible typosquat of azure - Explanation: The package 'azure-graphrbac' is labeled as a 'security holding package', which often indicates a placeholder to prevent typosquatting. The name 'azure-graphrbac' closely resembles legitimate Azure package naming conventions, which could confuse users. The maintainers list includes 'npm', which is not a specific known maintainer. Therefore, it is likely a typosquat.
Live on npm for 1 hour and 55 minutes before removal. Socket users were protected even while the package was live.
Socket detects traditional vulnerabilities (CVEs) but goes beyond that to scan the actual code of dependencies for malicious behavior. It proactively detects and blocks 70+ signals of supply chain risk in open source code, for comprehensive protection.
Possible typosquat attack
Known malware
Suspicious Stars on GitHub
HTTP dependency
Git dependency
GitHub dependency
AI-detected potential malware
Obfuscated code
Telemetry
Protestware or potentially unwanted behavior
Critical CVE
High CVE
Medium CVE
Low CVE
Unpopular package
Minified code
Bad dependency semver
Wildcard dependency
Socket optimized override available
Deprecated
Unmaintained
License Policy Violation
Explicitly Unlicensed Item
Misc. License Issues
Copyleft License
No License Found
Ambiguous License Classifier
License exception
Non-permissive License
Unidentified License
Socket detects and blocks malicious dependencies, often within just minutes of them being published to public registries, making it the most effective tool for blocking zero-day supply chain attacks.
Socket is built by a team of prolific open source maintainers whose software is downloaded over 1 billion times per month. We understand how to build tools that developers love. But don’t take our word for it.

Nat Friedman
CEO at GitHub

Suz Hinton
Senior Software Engineer at Stripe
heck yes this is awesome!!! Congrats team 🎉👏

Matteo Collina
Node.js maintainer, Fastify lead maintainer
So awesome to see @SocketSecurity launch with a fresh approach! Excited to have supported the team from the early days.

DC Posch
Director of Technology at AppFolio, CTO at Dynasty
This is going to be super important, especially for crypto projects where a compromised dependency results in stolen user assets.

Luis Naranjo
Software Engineer at Microsoft
If software supply chain attacks through npm don't scare the shit out of you, you're not paying close enough attention.
@SocketSecurity sounds like an awesome product. I'll be using socket.dev instead of npmjs.org to browse npm packages going forward

Elena Nadolinski
Founder and CEO at Iron Fish
Huge congrats to @SocketSecurity! 🙌
Literally the only product that proactively detects signs of JS compromised packages.

Joe Previte
Engineering Team Lead at Coder
Congrats to @feross and the @SocketSecurity team on their seed funding! 🚀 It's been a big help for us at @CoderHQ and we appreciate what y'all are doing!

Josh Goldberg
Staff Developer at Codecademy
This is such a great idea & looks fantastic, congrats & good luck @feross + team!
The best security teams in the world use Socket to get visibility into supply chain risk, and to build a security feedback loop into the development process.

Scott Roberts
CISO at UiPath
As a happy Socket customer, I've been impressed with how quickly they are adding value to the product, this move is a great step!

Yan Zhu
Head of Security at Brave, DEFCON, EFF, W3C
glad to hear some of the smartest people i know are working on (npm, etc.) supply chain security finally :). @SocketSecurity

Andrew Peterson
CEO and Co-Founder at Signal Sciences (acq. Fastly)
How do you track the validity of open source software libraries as they get updated? You're prob not. Check out @SocketSecurity and the updated tooling they launched.
Supply chain is a cluster in security as we all know and the tools from Socket are "duh" type tools to be implementing. Check them out and follow Feross Aboukhadijeh to see more updates coming from them in the future.

Zbyszek Tenerowicz
Senior Security Engineer at ConsenSys
socket.dev is getting more appealing by the hour

Devdatta Akhawe
Head of Security at Figma
The @SocketSecurity team is on fire! Amazing progress and I am exciting to see where they go next.

Sebastian Bensusan
Engineer Manager at Stripe
I find it surprising that we don't have _more_ supply chain attacks in software:
Imagine your airplane (the code running) was assembled (deployed) daily, with parts (dependencies) from internet strangers. How long until you get a bad part?
Excited for Socket to prevent this

Adam Baldwin
VP of Security at npm, Red Team at Auth0/Okta
Congrats to everyone at @SocketSecurity ❤️🤘🏻

Nico Waisman
CISO at Lyft
This is an area that I have personally been very focused on. As Nat Friedman said in the 2019 GitHub Universe keynote, Open Source won, and every time you add a new open source project you rely on someone else code and you rely on the people that build it.
This is both exciting and problematic. You are bringing real risk into your organization, and I'm excited to see progress in the industry from OpenSSF scorecards and package analyzers to the company that Feross Aboukhadijeh is building!
Depend on Socket to prevent malicious open source dependencies from infiltrating your app.
Install the Socket GitHub App in just 2 clicks and get protected today.
Block 70+ issues in open source code, including malware, typo-squatting, hidden code, misleading packages, permission creep, and more.
Reduce work by surfacing actionable security information directly in GitHub. Empower developers to make better decisions.
Attackers have taken notice of the opportunity to attack organizations through open source dependencies. Supply chain attacks rose a whopping 700% in the past year, with over 15,000 recorded attacks.
Nov 23, 2025
Shai Hulud v2
Shai Hulud v2 campaign: preinstall script (setup_bun.js) and loader (setup_bin.js) that installs/locates Bun and executes an obfuscated bundled malicious script (bun_environment.js) with suppressed output.
Nov 05, 2025
Elves on npm
A surge of auto-generated "elf-stats" npm packages is being published every two minutes from new accounts. These packages contain simple malware variants and are being rapidly removed by npm. At least 420 unique packages have been identified, often described as being generated every two minutes, with some mentioning a capture the flag challenge or test.
Jul 04, 2025
RubyGems Automation-Tool Infostealer
Since at least March 2023, a threat actor using multiple aliases uploaded 60 malicious gems to RubyGems that masquerade as automation tools (Instagram, TikTok, Twitter, Telegram, WordPress, and Naver). The gems display a Korean Glimmer-DSL-LibUI login window, then exfiltrate the entered username/password and the host's MAC address via HTTP POST to threat actor-controlled infrastructure.
Mar 13, 2025
North Korea's Contagious Interview Campaign
Since late 2024, we have tracked hundreds of malicious npm packages and supporting infrastructure tied to North Korea's Contagious Interview operation, with tens of thousands of downloads targeting developers and tech job seekers. The threat actors run a factory-style playbook: recruiter lures and fake coding tests, polished GitHub templates, and typosquatted or deceptive dependencies that install or import into real projects.
Jul 23, 2024
Network Reconnaissance Campaign
A malicious npm supply chain attack that leveraged 60 packages across three disposable npm accounts to fingerprint developer workstations and CI/CD servers during installation. Each package embedded a compact postinstall script that collected hostnames, internal and external IP addresses, DNS resolvers, usernames, home and working directories, and package metadata, then exfiltrated this data as a JSON blob to a hardcoded Discord webhook.
Get our latest security research, open source insights, and product updates.

Research
Destructive malware is rising across open source registries, using delays and kill switches to wipe code, break builds, and disrupt CI/CD.

Security News
Socket CTO Ahmad Nassri shares practical AI coding techniques, tools, and team workflows, plus what still feels noisy and why shipping remains human-led.

Research
/Security News
A five-month operation turned 27 npm packages into durable hosting for browser-run lures that mimic document-sharing portals and Microsoft sign-in, targeting 25 organizations across manufacturing, industrial automation, plastics, and healthcare for credential theft.