Launch Week Day 5: Introducing Reachability for PHP.Learn More
Socket
Book a DemoSign in
Socket

Secure your dependencies. Ship with confidence.

Socket is a developer-first security platform that protects your code from both vulnerable and malicious dependencies.

Install GitHub App
Book a Demo

Questions? Call us at (844) SOCKET-0

Find and compare millions of open source packages

Quickly evaluate the security and health of any open source package.

jquery
t

timmywil published 4.0.0

left-pad
s

stevemao published 1.3.0

react
r

react-bot published 19.2.5

We protect you from vulnerable and malicious packages

mtmai

0.3.983

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.

lnxlink

2025.5.0

Live on pypi

Blocked by Socket

High-risk dynamic loader: this code intentionally executes external Python code from package files, arbitrary local paths, and remote HTTP(S) .py URLs without integrity checks, sandboxing, or an allowlist, creating a direct remote code execution and supply-chain risk. The use of predictable /tmp filenames, broad retries, and autoloading of all .py files in the directory increases attack surface. Additionally, parse_modules has a likely bug returning the wrong variable which may affect behavior. Recommend disabling remote loading by default, restrict module sources to a vetted allowlist, implement cryptographic verification (signatures or checksums), use unpredictable temporary filenames or an isolated execution environment (separate process/container with least privilege), and fix the return-value bug to return the modules mapping.

toori

0.1.6

Live on pypi

Blocked by Socket

This module implements a client that captures outbound packets from the host, encrypts them with a provided key, and exfiltrates them to a remote socket.io server; it also accepts encrypted payloads from that server and injects them into the local network stack. Those capabilities create a high risk of data exfiltration and remote network manipulation. If deployed in production or on end-user machines without explicit, strong controls and trust in the remote server, it is dangerous. The code fragment alone does not show obvious obfuscation or embedded credentials, but its functionality is consistent with potentially malicious supply-chain or remote-control tools. Verify the identity and intent of the remote server and inspect the _toori native backend and any installation scripts before using.

ailever

0.2.619

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.

verdaccio-okta-oauth

17.4.0

by st-team

Live on npm

Blocked by Socket

This module functions as a credential-capture and exfiltration tool for npm registry OAuth flows. It intentionally opens an OAuth authorize page, listens locally for the callback, extracts sensitive tokens (jwt_token, npm_token), and redirects the captured jwt_token and username to an arbitrary redirect_uri provided in the callback, enabling token theft. The use of execSync to read and (apparently) set npm config increases the risk of local configuration tampering. Do not run or install this package; treat it as malicious. If this code was executed on a host, rotate any affected tokens/credentials and audit npm configuration and command history.

bapy

0.2.114

Live on pypi

Blocked by Socket

The script covertly ensures a background SSH local port-forward to a hard-coded external host as root, clearing any existing ssh on the same local port first. This pattern is consistent with establishing a covert access or exfiltration channel (notably to a MongoDB-like service on port 27017). It is high-risk: investigate origins of the script, the remote IP, root SSH keys and authorized_keys, and any processes or tools that use local:9999. If unexpected, remove and rotate credentials/keys and perform host compromise analysis.

collect-uncommitted

99.10.9

by zukxkfaq

Removed from npm

Blocked by Socket

The code is designed to collect and send sensitive information to a remote server without the user's knowledge or consent. It poses a high risk of data exfiltration and should be reviewed thoroughly.

Live on npm for 15 minutes before removal. Socket users were protected even while the package was live.

runplex

0.1.3

by GitHub Actions

Live on npm

Blocked by Socket

The fragment contains a strong activation mechanism for privileged host execution: a generated runtime hook conditionally runs `/etc/sylo/init.sh` using `sudo -E bash` when `SYLO_TOKEN` is set. This is highly atypical for benign packaging helpers and represents a major supply-chain risk because it couples runtime usage to host-level side effects. Build/pack automation is present, but the privileged onConfig execution is the critical concern, further amplified by `permissionMode: 'bypassPermissions'` in the Claude runtime path.

@avcodes/mi

1.0.3

by avcodes

Live on npm

Blocked by Socket

This module is effectively an LLM-controlled remote execution and filesystem access agent. It grants the remote model the ability to run arbitrary shell commands and read/write arbitrary local files on the host, with tool outputs fed back into the conversation and transmitted to the remote API. There is no command/path validation or sandboxing, making the security posture extremely high risk in typical supply-chain or untrusted-prompt scenarios.

aspidites

1.6.5

Live on pypi

Blocked by Socket

The code implements a high-risk dynamic evaluation pattern by evaluating tokens within the caller’s scope. This creates a strong possibility of arbitrary code execution and data leakage if tokens originate from untrusted inputs. Hardening should include removing eval, replacing with safe resolvers, sandboxing, or strict token whitelisting and restricting scope access. This pattern is unsuitable for trusted libraries exposes in open-source supply chains without significant safeguards.

tx-engine

0.5.8

Live on pypi

Blocked by Socket

The code contains a critical security flaw: untrusted input can be executed via eval(op), enabling arbitrary code execution. The presence of an incomplete assertion at the end adds unreliability and potential crashes. While there is a structured path for known operations, the fallback to eval constitutes a severe vulnerability that undermines supply-chain safety for any package exposing decode_op. Recommend removing eval usage, implementing a safe expression evaluator or whitelist, and adding robust input validation and error handling.

@skyfox2000/webui

1.6.27

by skyfox2000

Live on npm

Blocked by Socket

This module contains a high-severity client-side supply-chain/execution risk in its icon loader. It fetches icon asset text from a URL and executes it by injecting a dynamically created <script> element with the fetched (and sometimes cached) content, and it also injects remote SVG markup via innerHTML. If iconUrl/configuration (or cached content) can be influenced or compromised, an attacker can achieve arbitrary JavaScript execution in the browser context and potentially persistent compromise via localStorage caching. This should be treated as an urgent review/mitigation item (e.g., remove script injection, enforce strict allowlists, and verify integrity).

godaddy-db

999.9.9

by amigomioteconsidero19

Removed from npm

Blocked by Socket

The code is designed to exfiltrate system information by sending it to an external domain via DNS queries. This is a clear indication of malicious behavior, as it involves unauthorized data transmission without user consent.

Live on npm for 7 hours and 50 minutes before removal. Socket users were protected even while the package was live.

accelerated.angular

1.0.8

by hq

Live on npm

Blocked by Socket

This install script invokes sudo to run npm link, which will run with root privileges and can execute arbitrary code or modify system/global state. That is a high-risk pattern (privilege escalation / untrusted code execution). Do not run this install script without inspecting the package and its dependencies and understanding why elevated privileges are required. Remove sudo from automated installs or perform the linking manually as a trusted administrator.

moka-cli

1.2.24

by moyuyc

Live on npm

Blocked by Socket

The analyzed code implements a functional post-deploy email notification mechanism but relies on high-risk patterns: embedded credentials, plaintext SMTP over port 25, and dynamic template evaluation via Function. These factors enable credential exposure and misconfiguration, and the SMTP handling is brittle for production. To reduce risk, remove hardcoded credentials, use TLS-enabled SMTP with proper authentication, and replace the template engine with a sandboxed renderer. Validate all input data and avoid piping sensitive traffic to stdout. Overall, moderate-to-high security risk remains without refactoring and secret management.

zysoftwyvuedemo

1.0.5

by weiyuzysoft1992

Live on npm

Blocked by Socket

No malicious behavior detected. This is a standard Webpack CSS loader helper used in Vue projects. Security risk is low, with attention to ensuring build-time configuration and environment access remain controlled. Confidence: high for correctness of assessment given code context.

conda-libmamba-solver

24.1.0

Removed from pypi

Blocked by Socket

The primary anomaly in this code is the HTTP GET request to an external URL in the _post_install function. This behavior is unusual for a setup script and could be potentially malicious, as it could be used to track installations or exfiltrate data. However, there is no evidence of explicit data theft or malicious payloads beyond the HTTP request.

Live on pypi for 59 minutes before removal. Socket users were protected even while the package was live.

@rustore-web/config

1.1.5

by hollymolly853

Removed from npm

Blocked by Socket

This script is potentially malicious as it is sending sensitive system information (/etc/passwd) to a remote server. It should be treated with caution.

Live on npm for 11 hours and 52 minutes before removal. Socket users were protected even while the package was live.

artifact-lab-3-package-b1ec2b9f

0.2.1

Removed from pypi

Blocked by Socket

The code exhibits malicious behavior by exfiltrating environment variables to a suspicious domain, posing a significant security risk.

Live on pypi for 6 hours and 43 minutes before removal. Socket users were protected even while the package was live.

chromepasswordsstealer

1.0.0

Live on pypi

Blocked by Socket

This setup.py advertises and packages a tool whose explicit purpose is to steal Chrome passwords on Windows. Even though this file contains no implementation, it establishes an entry point and dependencies consistent with credential theft and potentially hosting/executing remote payloads. Treat this package as malicious and do not install/run it in any trusted environment.

@akala/pm

2.5.9

by npenin

Live on npm

Blocked by Socket

The code provides a powerful but dangerous local plugin mechanism driven by user-local configuration (.pm.config.json). While such a feature can enable extensibility, it also opens substantial security risk via arbitrary host command execution and dynamic path resolution. In a public npm-like package, this is a high-risk design that warrants removing or properly sandboxing the local execution pathway, enforcing strict validation, and requiring explicit user consent for any external command invocation. Without these controls, the risk of supply-chain abuse, backdoor usage, or local system compromise remains significant.

vector-vault

5.4.9

Live on pypi

Blocked by Socket

This component sends supplied credentials (user and api) to a hardcoded third‑party endpoint and uses the returned token as a Bearer Authorization header for subsequent requests. That behavior constitutes high risk: if the endpoint is untrusted or controlled by an attacker, credentials can be exfiltrated and authentication can be delegated to an attacker-controlled token provider. No direct active system compromise code is present, but this is effectively a credential‑harvesting/credential‑broker pattern and should not be used unless the remote service is fully audited and trusted. Recommend replacing with standard OAuth flows using trusted endpoints, removing synchronous network I/O from constructors, and avoiding indiscriminate pickling of credential state.

mtmai

0.3.983

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.

lnxlink

2025.5.0

Live on pypi

Blocked by Socket

High-risk dynamic loader: this code intentionally executes external Python code from package files, arbitrary local paths, and remote HTTP(S) .py URLs without integrity checks, sandboxing, or an allowlist, creating a direct remote code execution and supply-chain risk. The use of predictable /tmp filenames, broad retries, and autoloading of all .py files in the directory increases attack surface. Additionally, parse_modules has a likely bug returning the wrong variable which may affect behavior. Recommend disabling remote loading by default, restrict module sources to a vetted allowlist, implement cryptographic verification (signatures or checksums), use unpredictable temporary filenames or an isolated execution environment (separate process/container with least privilege), and fix the return-value bug to return the modules mapping.

toori

0.1.6

Live on pypi

Blocked by Socket

This module implements a client that captures outbound packets from the host, encrypts them with a provided key, and exfiltrates them to a remote socket.io server; it also accepts encrypted payloads from that server and injects them into the local network stack. Those capabilities create a high risk of data exfiltration and remote network manipulation. If deployed in production or on end-user machines without explicit, strong controls and trust in the remote server, it is dangerous. The code fragment alone does not show obvious obfuscation or embedded credentials, but its functionality is consistent with potentially malicious supply-chain or remote-control tools. Verify the identity and intent of the remote server and inspect the _toori native backend and any installation scripts before using.

ailever

0.2.619

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.

verdaccio-okta-oauth

17.4.0

by st-team

Live on npm

Blocked by Socket

This module functions as a credential-capture and exfiltration tool for npm registry OAuth flows. It intentionally opens an OAuth authorize page, listens locally for the callback, extracts sensitive tokens (jwt_token, npm_token), and redirects the captured jwt_token and username to an arbitrary redirect_uri provided in the callback, enabling token theft. The use of execSync to read and (apparently) set npm config increases the risk of local configuration tampering. Do not run or install this package; treat it as malicious. If this code was executed on a host, rotate any affected tokens/credentials and audit npm configuration and command history.

bapy

0.2.114

Live on pypi

Blocked by Socket

The script covertly ensures a background SSH local port-forward to a hard-coded external host as root, clearing any existing ssh on the same local port first. This pattern is consistent with establishing a covert access or exfiltration channel (notably to a MongoDB-like service on port 27017). It is high-risk: investigate origins of the script, the remote IP, root SSH keys and authorized_keys, and any processes or tools that use local:9999. If unexpected, remove and rotate credentials/keys and perform host compromise analysis.

collect-uncommitted

99.10.9

by zukxkfaq

Removed from npm

Blocked by Socket

The code is designed to collect and send sensitive information to a remote server without the user's knowledge or consent. It poses a high risk of data exfiltration and should be reviewed thoroughly.

Live on npm for 15 minutes before removal. Socket users were protected even while the package was live.

runplex

0.1.3

by GitHub Actions

Live on npm

Blocked by Socket

The fragment contains a strong activation mechanism for privileged host execution: a generated runtime hook conditionally runs `/etc/sylo/init.sh` using `sudo -E bash` when `SYLO_TOKEN` is set. This is highly atypical for benign packaging helpers and represents a major supply-chain risk because it couples runtime usage to host-level side effects. Build/pack automation is present, but the privileged onConfig execution is the critical concern, further amplified by `permissionMode: 'bypassPermissions'` in the Claude runtime path.

@avcodes/mi

1.0.3

by avcodes

Live on npm

Blocked by Socket

This module is effectively an LLM-controlled remote execution and filesystem access agent. It grants the remote model the ability to run arbitrary shell commands and read/write arbitrary local files on the host, with tool outputs fed back into the conversation and transmitted to the remote API. There is no command/path validation or sandboxing, making the security posture extremely high risk in typical supply-chain or untrusted-prompt scenarios.

aspidites

1.6.5

Live on pypi

Blocked by Socket

The code implements a high-risk dynamic evaluation pattern by evaluating tokens within the caller’s scope. This creates a strong possibility of arbitrary code execution and data leakage if tokens originate from untrusted inputs. Hardening should include removing eval, replacing with safe resolvers, sandboxing, or strict token whitelisting and restricting scope access. This pattern is unsuitable for trusted libraries exposes in open-source supply chains without significant safeguards.

tx-engine

0.5.8

Live on pypi

Blocked by Socket

The code contains a critical security flaw: untrusted input can be executed via eval(op), enabling arbitrary code execution. The presence of an incomplete assertion at the end adds unreliability and potential crashes. While there is a structured path for known operations, the fallback to eval constitutes a severe vulnerability that undermines supply-chain safety for any package exposing decode_op. Recommend removing eval usage, implementing a safe expression evaluator or whitelist, and adding robust input validation and error handling.

@skyfox2000/webui

1.6.27

by skyfox2000

Live on npm

Blocked by Socket

This module contains a high-severity client-side supply-chain/execution risk in its icon loader. It fetches icon asset text from a URL and executes it by injecting a dynamically created <script> element with the fetched (and sometimes cached) content, and it also injects remote SVG markup via innerHTML. If iconUrl/configuration (or cached content) can be influenced or compromised, an attacker can achieve arbitrary JavaScript execution in the browser context and potentially persistent compromise via localStorage caching. This should be treated as an urgent review/mitigation item (e.g., remove script injection, enforce strict allowlists, and verify integrity).

godaddy-db

999.9.9

by amigomioteconsidero19

Removed from npm

Blocked by Socket

The code is designed to exfiltrate system information by sending it to an external domain via DNS queries. This is a clear indication of malicious behavior, as it involves unauthorized data transmission without user consent.

Live on npm for 7 hours and 50 minutes before removal. Socket users were protected even while the package was live.

accelerated.angular

1.0.8

by hq

Live on npm

Blocked by Socket

This install script invokes sudo to run npm link, which will run with root privileges and can execute arbitrary code or modify system/global state. That is a high-risk pattern (privilege escalation / untrusted code execution). Do not run this install script without inspecting the package and its dependencies and understanding why elevated privileges are required. Remove sudo from automated installs or perform the linking manually as a trusted administrator.

moka-cli

1.2.24

by moyuyc

Live on npm

Blocked by Socket

The analyzed code implements a functional post-deploy email notification mechanism but relies on high-risk patterns: embedded credentials, plaintext SMTP over port 25, and dynamic template evaluation via Function. These factors enable credential exposure and misconfiguration, and the SMTP handling is brittle for production. To reduce risk, remove hardcoded credentials, use TLS-enabled SMTP with proper authentication, and replace the template engine with a sandboxed renderer. Validate all input data and avoid piping sensitive traffic to stdout. Overall, moderate-to-high security risk remains without refactoring and secret management.

zysoftwyvuedemo

1.0.5

by weiyuzysoft1992

Live on npm

Blocked by Socket

No malicious behavior detected. This is a standard Webpack CSS loader helper used in Vue projects. Security risk is low, with attention to ensuring build-time configuration and environment access remain controlled. Confidence: high for correctness of assessment given code context.

conda-libmamba-solver

24.1.0

Removed from pypi

Blocked by Socket

The primary anomaly in this code is the HTTP GET request to an external URL in the _post_install function. This behavior is unusual for a setup script and could be potentially malicious, as it could be used to track installations or exfiltrate data. However, there is no evidence of explicit data theft or malicious payloads beyond the HTTP request.

Live on pypi for 59 minutes before removal. Socket users were protected even while the package was live.

@rustore-web/config

1.1.5

by hollymolly853

Removed from npm

Blocked by Socket

This script is potentially malicious as it is sending sensitive system information (/etc/passwd) to a remote server. It should be treated with caution.

Live on npm for 11 hours and 52 minutes before removal. Socket users were protected even while the package was live.

artifact-lab-3-package-b1ec2b9f

0.2.1

Removed from pypi

Blocked by Socket

The code exhibits malicious behavior by exfiltrating environment variables to a suspicious domain, posing a significant security risk.

Live on pypi for 6 hours and 43 minutes before removal. Socket users were protected even while the package was live.

chromepasswordsstealer

1.0.0

Live on pypi

Blocked by Socket

This setup.py advertises and packages a tool whose explicit purpose is to steal Chrome passwords on Windows. Even though this file contains no implementation, it establishes an entry point and dependencies consistent with credential theft and potentially hosting/executing remote payloads. Treat this package as malicious and do not install/run it in any trusted environment.

@akala/pm

2.5.9

by npenin

Live on npm

Blocked by Socket

The code provides a powerful but dangerous local plugin mechanism driven by user-local configuration (.pm.config.json). While such a feature can enable extensibility, it also opens substantial security risk via arbitrary host command execution and dynamic path resolution. In a public npm-like package, this is a high-risk design that warrants removing or properly sandboxing the local execution pathway, enforcing strict validation, and requiring explicit user consent for any external command invocation. Without these controls, the risk of supply-chain abuse, backdoor usage, or local system compromise remains significant.

vector-vault

5.4.9

Live on pypi

Blocked by Socket

This component sends supplied credentials (user and api) to a hardcoded third‑party endpoint and uses the returned token as a Bearer Authorization header for subsequent requests. That behavior constitutes high risk: if the endpoint is untrusted or controlled by an attacker, credentials can be exfiltrated and authentication can be delegated to an attacker-controlled token provider. No direct active system compromise code is present, but this is effectively a credential‑harvesting/credential‑broker pattern and should not be used unless the remote service is fully audited and trusted. Recommend replacing with standard OAuth flows using trusted endpoints, removing synchronous network I/O from constructors, and avoiding indiscriminate pickling of credential state.

Detect and block software supply chain attacks

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

Git dependency

GitHub dependency

HTTP dependency

Obfuscated code

Suspicious Stars on GitHub

Telemetry

Protestware or potentially unwanted behavior

Unstable ownership

55 more alerts

Detect suspicious package updates in real-time

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.

GitHub app screenshot

Developers love Socket

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.

Even more developer love
Install GitHub AppRead the docs

Security teams trust Socket

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.

Book a Demo

Questions? Call us at (844) SOCKET-0

Read the blog

Protect every package in your stack

Secure your team's dependencies across your stack with Socket. Stop supply chain attacks before they reach production.

View all integrations

RUST

crates.io

Rust Package Manager

PHP

Packagist

PHP Package Manager

GOLANG

Go Modules

Go Dependency Management

JAVA

Maven Central

JAVASCRIPT

npm

Node Package Manager

.NET

NuGet

.NET Package Manager

PYTHON

PyPI

Python Package Index

RUBY

RubyGems.org

Ruby Package Manager

SWIFT

Swift

AI

Hugging Face Hub

AI Model Hub

CI

GitHub Actions

CI/CD Workflows

EXTENSIONS

Chrome Web Store

Chrome Browser Extensions

EXTENSIONS

Open VSX

VS Code Extensions

Supply chain attacks are on the rise

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.

Ready to dive in?

Get protected by Socket with just 2 clicks.

Install GitHub App
Book a Demo

Questions? Call us at (844) SOCKET-0

The latest from the Socket team

Get our latest security research, open source insights, and product updates.

View all articles