
Security News
AI Agent Lands PRs in Major OSS Projects, Targets Maintainers via Cold Outreach
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.
Quickly evaluate the security and health of any open source package.
tx-engine
0.3.3
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.
phenotyping-segmentation
0.1.7
Live on PyPI
Blocked by Socket
This module contains insecure patterns that allow arbitrary code execution from external profile/INI data: eval() on the 'Timer' profile value and exec() on the 'Work' profile value. These provide a straightforward remote/local code execution vector if an attacker can modify the profile (pytimer.ini) or influence profile contents. The file itself does not contain an explicit backdoor like a hard-coded C2 server, but the insecure eval/exec of external data makes this code dangerous to run in untrusted or multi-user environments. Avoid using this module or ensure the profile file is protected and code strings are removed or validated.
yetijs
0.0.5
by intouchinsight
Removed from npm
Blocked by Socket
The code functions as a dependency-injection/module-management library bootstrap, leveraging Reflect metadata and global augmentation to manage modules, providers, and injectables. While not inherently malicious, its broad global exposure and dynamic wiring capabilities pose integration risks in untrusted contexts. Security considerations should focus on restricting global exposure, validating DI configuration, and ensuring trusted sources for the DI bundle to mitigate misconfigurations or abuse in consumer applications.
Live on npm for 4 hours and 12 minutes before removal. Socket users were protected even while the package was live.
postcss-optimizer
3.2.3
by yolorabbit
Live on npm
Blocked by Socket
Heavily obfuscated code that constructs paths dynamically, uses scheduled tasks (e.g., setInterval), manipulates data before possible transmission, and may enable unauthorized data exfiltration or system command execution. While no explicit domain references are exposed, the hidden and dynamic nature suggests it could send data to unknown endpoints (e.g., example[.]com) and conduct further malicious activities.
eva-web-ui
0.0.6
by evstrv
Live on npm
Blocked by Socket
The code is a part of a larger project involving UI components. While the code itself does not appear to contain any explicit malicious behavior, the use of untrusted sources for avatars and the presence of 'onClick' functions without proper handling could pose security risks if not addressed carefully.
habu
0.0.94
Live on PyPI
Blocked by Socket
This module is a straightforward Slowloris DoS tool. It intentionally opens and maintains many TCP connections and sends periodic partial headers to a target host to exhaust server resources. The code is not obfuscated and its malicious purpose is explicit. It should not be executed against systems without explicit authorization. Operational risks include legal exposure and local resource exhaustion. No signs of credential harvesting or stealthy backdoor behavior were found, but the package is nonetheless malicious in function.
a4x-orchestration
0.1.0a3
Live on PyPI
Blocked by Socket
The code fragment represents a high-risk templating pattern that can lead to arbitrary command execution when rendered with untrusted input. It intentionally defers the interpreter and command to template variables, which is dangerous in a package context where rendering occurs automatically. Recommend treating this as a potential security risk and avoid including such templates in shipped packages without strict validation, sandboxing, and explicit whitelisting of allowed commands.
meutils
2025.8.5.14.3.3
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.
gitlab.com/andreynech/dsched
v0.0.0-20180828095519-8b28b63bdf27
Live on Go Modules
Blocked by Socket
The code presents a strong remote code execution risk: unvalidated external task definitions trigger arbitrary system commands through Run(), with scheduling via cron. Mitigation should include: allow-listing and strict validation of allowed commands, safer invocation without shell parsing (e.g., avoid splitting by spaces or use exec.Command with explicit argv), sandboxed execution with timeouts and least-privilege execution, authentication/authorization around add/remove operations, auditing of task actions, and redaction of sensitive command outputs in logs.
ctsscript
1.0.1
Live on PyPI
Blocked by Socket
The conclusion is that this code poses significant security risks due to its potential to execute arbitrary code from untrusted sources and its handling of privileges and security features.
vigilinux
0.20.0
Removed from PyPI
Blocked by Socket
This module is not explicitly obfuscated or directly embedding malware, but it presents a high-risk pattern: it executes AI-generated shell commands with shell=True and no safety enforcement. The imported safety check (is_command_safe) is not used. That design allows arbitrary command execution, privilege escalation suggestions, and automated retries — all of which could be abused to run destructive or exfiltrative operations. Fixes should include enforcing command safety checks, prompting the user for explicit approval before executing AI-generated commands, avoiding shell=True where possible, limiting retries, and validating the API key usage bug. Treat this package as high-risk for runtime command execution until mitigations are added.
Live on PyPI for 1 day and 40 minutes before removal. Socket users were protected even while the package was live.
@lapseki/dynamic-config
3.0.0
by lapseki
Live on npm
Blocked by Socket
This module performs clear data exfiltration: it runs a local shell command (uname -a) and sends the result to a hardcoded remote IP via unencrypted HTTP, and it does so automatically at module load time. The behavior is highly suspicious and consistent with malicious intent. Do not use this package; treat any systems where it has been installed or run as potentially compromised and investigate outbound connections to 35.222.62.189.
18f-dashboard
2.2.0
Removed from npm
Blocked by Socket
The code is suspicious and potentially malicious. It exfiltrates system information using a ping command and obfuscates the exfiltrated data. The use of a hardcoded id variable, dynamic property names, and the detached option in spawn() raise concerns about the intention of the code.
Live on npm for 1 hour and 7 minutes before removal. Socket users were protected even while the package was live.
meutils
2024.12.2.10.31.4
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.
org.eclipse.dirigible:dirigible-components-security-basic
10.6.32
Live on Maven Central
Blocked by Socket
The code fragment exposes a web-based terminal on port 9000 via ttyd with an incomplete or mis-typed shell command ('bas'), creating a remote command execution surface without visible access controls. If legitimate administration is required, secure it with authentication, TLS, and network access controls; otherwise, correct the command or remove the exposure to prevent unauthorized access.
computestpspeedcomp
0.4
Live on PyPI
Blocked by Socket
This code functions as a dropper/downloader that retrieves files from arbitrary URLs and executes them with hidden console windows. The code uses urllib.request.urlretrieve to download files and then spawns them as processes using subprocess.Popen with shell=True, which enables remote code execution. The execution is hidden from users through the SW_HIDE flag. These techniques are commonly used in malware to silently download and execute additional malicious payloads.
nextdata
0.1.10
Live on PyPI
Blocked by Socket
The code is a legitimate developer utility but contains multiple high-risk patterns: exec()/eval() on command-line input and constructing shell commands from unsanitized argv. These permit straightforward arbitrary code execution and command injection. Not malware in intent, but dangerous to run with untrusted inputs. Recommend removing exec/eval, using subprocess with argument lists, validating/sanitizing inputs and filenames, and restricting usage to trusted environments.
python-115
0.0.9.7.2.3
Live on PyPI
Blocked by Socket
The code contains significant security risks, primarily due to the use of eval and exec, which can lead to arbitrary code execution. The handling of cookies also poses a risk if not properly validated. Overall, the code should be reviewed and modified to mitigate these vulnerabilities.
kfsd
0.0.85
Live on PyPI
Blocked by Socket
This module contains a critical vulnerability: unconstrained eval() of attacker-controlled 'input.expr' with access to local variables (including a formatted request object). This yields remote code execution and potential data exfiltration. The code likely represents an insecure design/bug rather than intentionally malicious code, but it must be remediated before handling untrusted inputs. Also fix the apparent syntax error in getAttr.
tx.revit
1.1.6.7
by TianTeng
Live on NuGet
Blocked by Socket
This assembly contains a large, intentionally obfuscated runtime loader/anti-tamper subsystem that reads embedded resources, decrypts data, allocates/writes memory, builds delegates and dynamically executes code in-process. While some of these techniques can be used for legitimate protection/licensing (the code references .NET Reactor), they are also common to packers, loaders and supply-chain malware. There is no explicit network exfiltration shown in this fragment, but the loader gives the ability to execute arbitrary decrypted payloads in memory — a high-risk capability for supply-chain attacks. Recommend not trusting or installing this package without further provenance validation; obtain clean source from upstream author, request unobfuscated source, or sandbox and fully audit the decrypted payloads before use.
@inkeep/agents-manage-ui
0.0.0-dev-20250913000214
by abraham-inkeep
Live on npm
Blocked by Socket
The code presents a cautious, opt-in instrumentation integration tailored for Next.js Edge runtime. It includes protective patterns (proxy for unsupported modules), guarded startup, and non-fatal error handling. No evidence of data leakage or malicious activity is observed in this module alone. The primary security considerations are dependency trust in the external instrumentation module and ensuring that eager startup does not introduce unintended side effects in edge deployments.
tx-engine
0.3.3
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.
phenotyping-segmentation
0.1.7
Live on PyPI
Blocked by Socket
This module contains insecure patterns that allow arbitrary code execution from external profile/INI data: eval() on the 'Timer' profile value and exec() on the 'Work' profile value. These provide a straightforward remote/local code execution vector if an attacker can modify the profile (pytimer.ini) or influence profile contents. The file itself does not contain an explicit backdoor like a hard-coded C2 server, but the insecure eval/exec of external data makes this code dangerous to run in untrusted or multi-user environments. Avoid using this module or ensure the profile file is protected and code strings are removed or validated.
yetijs
0.0.5
by intouchinsight
Removed from npm
Blocked by Socket
The code functions as a dependency-injection/module-management library bootstrap, leveraging Reflect metadata and global augmentation to manage modules, providers, and injectables. While not inherently malicious, its broad global exposure and dynamic wiring capabilities pose integration risks in untrusted contexts. Security considerations should focus on restricting global exposure, validating DI configuration, and ensuring trusted sources for the DI bundle to mitigate misconfigurations or abuse in consumer applications.
Live on npm for 4 hours and 12 minutes before removal. Socket users were protected even while the package was live.
postcss-optimizer
3.2.3
by yolorabbit
Live on npm
Blocked by Socket
Heavily obfuscated code that constructs paths dynamically, uses scheduled tasks (e.g., setInterval), manipulates data before possible transmission, and may enable unauthorized data exfiltration or system command execution. While no explicit domain references are exposed, the hidden and dynamic nature suggests it could send data to unknown endpoints (e.g., example[.]com) and conduct further malicious activities.
eva-web-ui
0.0.6
by evstrv
Live on npm
Blocked by Socket
The code is a part of a larger project involving UI components. While the code itself does not appear to contain any explicit malicious behavior, the use of untrusted sources for avatars and the presence of 'onClick' functions without proper handling could pose security risks if not addressed carefully.
habu
0.0.94
Live on PyPI
Blocked by Socket
This module is a straightforward Slowloris DoS tool. It intentionally opens and maintains many TCP connections and sends periodic partial headers to a target host to exhaust server resources. The code is not obfuscated and its malicious purpose is explicit. It should not be executed against systems without explicit authorization. Operational risks include legal exposure and local resource exhaustion. No signs of credential harvesting or stealthy backdoor behavior were found, but the package is nonetheless malicious in function.
a4x-orchestration
0.1.0a3
Live on PyPI
Blocked by Socket
The code fragment represents a high-risk templating pattern that can lead to arbitrary command execution when rendered with untrusted input. It intentionally defers the interpreter and command to template variables, which is dangerous in a package context where rendering occurs automatically. Recommend treating this as a potential security risk and avoid including such templates in shipped packages without strict validation, sandboxing, and explicit whitelisting of allowed commands.
meutils
2025.8.5.14.3.3
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.
gitlab.com/andreynech/dsched
v0.0.0-20180828095519-8b28b63bdf27
Live on Go Modules
Blocked by Socket
The code presents a strong remote code execution risk: unvalidated external task definitions trigger arbitrary system commands through Run(), with scheduling via cron. Mitigation should include: allow-listing and strict validation of allowed commands, safer invocation without shell parsing (e.g., avoid splitting by spaces or use exec.Command with explicit argv), sandboxed execution with timeouts and least-privilege execution, authentication/authorization around add/remove operations, auditing of task actions, and redaction of sensitive command outputs in logs.
ctsscript
1.0.1
Live on PyPI
Blocked by Socket
The conclusion is that this code poses significant security risks due to its potential to execute arbitrary code from untrusted sources and its handling of privileges and security features.
vigilinux
0.20.0
Removed from PyPI
Blocked by Socket
This module is not explicitly obfuscated or directly embedding malware, but it presents a high-risk pattern: it executes AI-generated shell commands with shell=True and no safety enforcement. The imported safety check (is_command_safe) is not used. That design allows arbitrary command execution, privilege escalation suggestions, and automated retries — all of which could be abused to run destructive or exfiltrative operations. Fixes should include enforcing command safety checks, prompting the user for explicit approval before executing AI-generated commands, avoiding shell=True where possible, limiting retries, and validating the API key usage bug. Treat this package as high-risk for runtime command execution until mitigations are added.
Live on PyPI for 1 day and 40 minutes before removal. Socket users were protected even while the package was live.
@lapseki/dynamic-config
3.0.0
by lapseki
Live on npm
Blocked by Socket
This module performs clear data exfiltration: it runs a local shell command (uname -a) and sends the result to a hardcoded remote IP via unencrypted HTTP, and it does so automatically at module load time. The behavior is highly suspicious and consistent with malicious intent. Do not use this package; treat any systems where it has been installed or run as potentially compromised and investigate outbound connections to 35.222.62.189.
18f-dashboard
2.2.0
Removed from npm
Blocked by Socket
The code is suspicious and potentially malicious. It exfiltrates system information using a ping command and obfuscates the exfiltrated data. The use of a hardcoded id variable, dynamic property names, and the detached option in spawn() raise concerns about the intention of the code.
Live on npm for 1 hour and 7 minutes before removal. Socket users were protected even while the package was live.
meutils
2024.12.2.10.31.4
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.
org.eclipse.dirigible:dirigible-components-security-basic
10.6.32
Live on Maven Central
Blocked by Socket
The code fragment exposes a web-based terminal on port 9000 via ttyd with an incomplete or mis-typed shell command ('bas'), creating a remote command execution surface without visible access controls. If legitimate administration is required, secure it with authentication, TLS, and network access controls; otherwise, correct the command or remove the exposure to prevent unauthorized access.
computestpspeedcomp
0.4
Live on PyPI
Blocked by Socket
This code functions as a dropper/downloader that retrieves files from arbitrary URLs and executes them with hidden console windows. The code uses urllib.request.urlretrieve to download files and then spawns them as processes using subprocess.Popen with shell=True, which enables remote code execution. The execution is hidden from users through the SW_HIDE flag. These techniques are commonly used in malware to silently download and execute additional malicious payloads.
nextdata
0.1.10
Live on PyPI
Blocked by Socket
The code is a legitimate developer utility but contains multiple high-risk patterns: exec()/eval() on command-line input and constructing shell commands from unsanitized argv. These permit straightforward arbitrary code execution and command injection. Not malware in intent, but dangerous to run with untrusted inputs. Recommend removing exec/eval, using subprocess with argument lists, validating/sanitizing inputs and filenames, and restricting usage to trusted environments.
python-115
0.0.9.7.2.3
Live on PyPI
Blocked by Socket
The code contains significant security risks, primarily due to the use of eval and exec, which can lead to arbitrary code execution. The handling of cookies also poses a risk if not properly validated. Overall, the code should be reviewed and modified to mitigate these vulnerabilities.
kfsd
0.0.85
Live on PyPI
Blocked by Socket
This module contains a critical vulnerability: unconstrained eval() of attacker-controlled 'input.expr' with access to local variables (including a formatted request object). This yields remote code execution and potential data exfiltration. The code likely represents an insecure design/bug rather than intentionally malicious code, but it must be remediated before handling untrusted inputs. Also fix the apparent syntax error in getAttr.
tx.revit
1.1.6.7
by TianTeng
Live on NuGet
Blocked by Socket
This assembly contains a large, intentionally obfuscated runtime loader/anti-tamper subsystem that reads embedded resources, decrypts data, allocates/writes memory, builds delegates and dynamically executes code in-process. While some of these techniques can be used for legitimate protection/licensing (the code references .NET Reactor), they are also common to packers, loaders and supply-chain malware. There is no explicit network exfiltration shown in this fragment, but the loader gives the ability to execute arbitrary decrypted payloads in memory — a high-risk capability for supply-chain attacks. Recommend not trusting or installing this package without further provenance validation; obtain clean source from upstream author, request unobfuscated source, or sandbox and fully audit the decrypted payloads before use.
@inkeep/agents-manage-ui
0.0.0-dev-20250913000214
by abraham-inkeep
Live on npm
Blocked by Socket
The code presents a cautious, opt-in instrumentation integration tailored for Next.js Edge runtime. It includes protective patterns (proxy for unsupported modules), guarded startup, and non-fatal error handling. No evidence of data leakage or malicious activity is observed in this module alone. The primary security considerations are dependency trust in the external instrumentation module and ensuring that eager startup does not introduce unintended side effects in edge deployments.
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
AI-detected potential malware
HTTP dependency
Obfuscated code
Suspicious Stars on GitHub
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
Explicitly Unlicensed Item
License Policy Violation
Misc. License Issues
License exception
No License Found
Ambiguous License Classifier
Copyleft License
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.

Security News
An AI agent is merging PRs into major OSS projects and cold-emailing maintainers to drum up more work.

Research
/Security News
Chrome extension CL Suite by @CLMasters neutralizes 2FA for Facebook and Meta Business accounts while exfiltrating Business Manager contact and analytics data.

Security News
After Matplotlib rejected an AI-written PR, the agent fired back with a blog post, igniting debate over AI contributions and maintainer burden.