<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Snyk on Medium]]></title>
        <description><![CDATA[Stories by Snyk on Medium]]></description>
        <link>https://medium.com/@snyksec?source=rss-b1a6b467bdd0------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*U-gOGX5jgnqeIqeQWdkX-g.png</url>
            <title>Stories by Snyk on Medium</title>
            <link>https://medium.com/@snyksec?source=rss-b1a6b467bdd0------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 13 Nov 2026 06:05:01 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@snyksec/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Malicious Release of elementary-data PyPI Package Steals Cloud Credentials from Data Engineers]]></title>
            <link>https://medium.com/@snyksec/malicious-release-of-elementary-data-pypi-package-steals-cloud-credentials-from-data-engineers-2cb75ab7c35a?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/2cb75ab7c35a</guid>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[supply-chain-security]]></category>
            <category><![CDATA[python]]></category>
            <category><![CDATA[kubernetes]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Wed, 29 Apr 2026 02:01:07 GMT</pubDate>
            <atom:updated>2026-04-29T02:01:07.998Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*O42ZAcdXjNas1IIZ.jpg" /></figure><p>A Python package on PyPI called <a href="https://pypi.org/project/elementary-data/">elementary-data</a>, with over 1 million downloads per month, has suffered a supply chain security attack sourced through a GitHub Actions attack vector.</p><h4>TL;DR</h4><p>| | | | — — | — — | | <strong>Advisory</strong> | <a href="https://security.snyk.io/vuln/SNYK-PYTHON-ELEMENTARYDATA-16316110">SNYK-PYTHON-ELEMENTARYDATA-16316110</a> | | <strong>Severity</strong> | Critical (CVSS v4.0: 9.3) | | <strong>Affected package</strong> | elementary-data==0.23.3 | | <strong>Clean versions</strong> | All versions except 0.23.3; upgrade to 0.23.4 | | <strong>Attack type</strong> | Supply chain (GitHub Actions CI/CD injection, then credential-stealing package) | | <strong>Stolen credentials</strong> | dbt profiles, Snowflake/BigQuery/Redshift creds, AWS/GCP/Azure keys, API tokens, SSH keys, .env files | | <strong>Scope</strong> | The PyPI CLI package and a Docker Image got compromised; Elementary Cloud and the Elementary dbt package were not affected | | <strong>Detection marker</strong> | $TMPDIR/.trinny-security-update (Linux/macOS), %TEMP%\.trinny-security-update (Windows) | | <strong>Disclosure</strong> | April 25–26, 2026 |</p><h4>What is elementary-data?</h4><p><a href="https://pypi.org/project/elementary-data/">elementary-data</a> is a dbt-native data observability CLI tool used by data and analytics engineers to monitor pipeline health, detect anomalies, and track test failures across data warehouses like Snowflake, BigQuery, Redshift, and Databricks. The package sees roughly 280,000 downloads per week and over 1.1 million per month, placing it firmly in the tier of widely adopted data tooling.</p><p>The package provides integrations with most major cloud data platforms, which is precisely what made it an attractive target. A tool that routinely handles connections to Snowflake, BigQuery, and AWS at CI/CD runtime is one that sits next to a lot of valuable credentials.</p><h4>How the attack unfolded</h4><p>The compromise occurred in two stages: first, compromising the publication pipeline; second, publishing malicious content that steals further credentials. It’s worth noting that this security incident for the elementary-data package compromise is one of the most prominent vectors recently exploited by TeamPCP and other threat actors.</p><h4>Stage 1: GitHub actions script injection</h4><p>On April 24, 2026, at 22:10 UTC, an attacker using a two-day-old GitHub account (realtungtungtungsahur) posted a crafted comment on PR #2147 in the elementary-data repository. The comment exploited a script injection flaw in .github/workflows/update_pylon_issue.yml, a workflow that handled issue/PR comment events.</p><p>The vulnerable run: block directly interpolated ${{ github.event.comment.body }} into a shell script before bash parsing occurred. Because this expression is expanded at workflow-template time rather than sanitized as a string argument, injecting shell metacharacters or subcommands through the comment body allows arbitrary code execution in the runner. When the workflow triggered, the attacker&#39;s payload ran with the repository&#39;s GITHUB_TOKEN in scope.</p><p>Critically, the attacker never needed direct write access to the repository. The GITHUB_TOKEN available to the runner had sufficient permissions to create commits, push tags, and dispatch other workflows. The injected handle_comment job stayed active for two hours and forty-six minutes, giving the attacker an extended window to set up each subsequent stage.</p><p>Using the stolen token, the attacker forged a release commit with hash b1e4b1f3aad0d489ab0e9208031c67402bbb8480. The commit was structured to look automated and official: it was an orphan commit (unreachable from any branch), authored as github-actions[bot], carried a forged &quot;Verified&quot; PGP signature, and used the message release/v0.23.2 (#2188) — copied verbatim from a legitimate PR merged nine days earlier. The attacker tagged this orphan v0.23.3 and then dispatched the repository&#39;s own Release package workflow with tag=v0.23.3 as input. That workflow&#39;s checkout step used ref: ${{ inputs.tag || github.ref }}, so it was built directly from the malicious orphan commit without touching master. The legitimate CI/CD pipeline packaged and published the malicious code. By 22:20 UTC, elementary-data==0.23.3 was live on PyPI. A compromised Docker image (ghcr.io/elementary-data/elementary:0.23.3 and :latest, digest sha256:31ecc5939de6d24cf60c50d4ca26cf7a8c322db82a8ce4bd122ebd89cf634255) followed four minutes later.</p><p>This attack vector has appeared repeatedly in the PyPI ecosystem. The <a href="https://snyk.io/blog/ultralytics-ai-pwn-request-supply-chain-attack/">Ultralytics supply chain attack in December 2024</a> used the same pull_request_target injection pattern to steal credentials and publish four malicious versions. The <a href="https://snyk.io/blog/poisoned-security-scanner-backdooring-litellm/">LiteLLM compromise in early 2026</a> took a slightly different path (a poisoned third-party GitHub Action), but the destination was identical: stolen PyPI tokens used to publish a credential-stealing package.</p><h4>Stage 2: The malicious package</h4><p>The attacker embedded the malicious payload in a file named elementary.pth, included in the package&#39;s site-packages directory.</p><p>.pth files are Python path configuration files that site.py, Python&#39;s startup module, processes automatically when the interpreter launches. Any line in a .pth file that begins with import is executed as Python code at interpreter startup, before your own code runs. This means the malware activates any time Python starts on the affected system, including during pip install operations, not just when a user explicitly imports elementary.</p><p>This technique was also used in the LiteLLM v1.82.8 compromise. It is more persistent and harder to detect than embedding malicious code in __init__.py because it does not require the victim to import the poisoned package. Installing it is sufficient.</p><h4>Inside the payload: What the malware did</h4><p>The embedded code in elementary.pth was a credential stealer with three stages of encryption: a base64 outer wrapper, then XOR encryption keyed from an MD5 keystream (seed: swabag), then a second XOR decryption layer. The obfuscation is not sophisticated by modern malware standards, but it is deliberate — it prevents trivial string-based detection of the payload and increases the time required to analyze what the package is actually doing.</p><p>Once Python started on an affected machine, the decoded payload:</p><ol><li><strong>Harvested credentials and secrets</strong> across the filesystem, targeting a broad set of material:</li></ol><ul><li>dbt profiles (~/.dbt/profiles.yml) and data warehouse credentials (Snowflake, BigQuery, Redshift, Databricks).</li><li>Cloud provider credentials: AWS ~/.aws/credentials plus live role credentials fetched from the IMDSv2 metadata endpoint, with direct SigV4-signed calls to AWS Secrets Manager and SSM Parameter Store; GCP application_default_credentials.json; Azure ~/.azure/ directories.</li><li>SSH private keys (id_rsa, id_ed25519, ~/.git-credentials).</li><li>Container and orchestration secrets: ~/.docker/config.json, ~/.kube/config, all /etc/kubernetes/*.conf files, Kubernetes ServiceAccount tokens.</li><li>Package manager credentials: ~/.npmrc, ~/.pypirc, ~/.cargo/credentials.toml.</li><li>Other secrets at rest: .env* files (scanning up to six directory levels deep), ~/.vault-token, ~/.netrc, ~/.pgpass, ~/.my.cnf, API tokens in environment variables.</li><li>Cryptocurrency wallet files (Bitcoin, Litecoin, Dogecoin, Zcash, Dash, Monero, Ripple, Ethereum, Cardano, Solana validator keypairs).</li><li>System files: /etc/passwd, /etc/shadow, shell history files, /var/log/auth.log.</li></ul><ol><li><strong>Packed all collected material</strong> into an archive named trin.tar.gz, then exfiltrated it via curl --data-binary to the C2 server at igotnofriendsonlineorirl-imgonnakmslmao.skyhanni.cloud, using the HTTP header X-Rise-To-The-Trinny: agree.</li><li><strong>Left a marker file</strong> at $TMPDIR/.trinny-security-update (Linux/macOS) or %TEMP%\.trinny-security-update (Windows), indicating the malware executed at least once.</li></ol><p>The scope of credentials goes well beyond dbt and data warehouses. The payload is broadly written to sweep whatever secrets are accessible on the machine, including Kubernetes clusters, infrastructure secrets managers, and cryptocurrency keys. The dbt and warehouse targeting make it relevant to the tool&#39;s user base, but anyone running this on a developer machine or CI runner stands to lose considerably more.</p><p>The credential profile is well-matched to the tool’s typical users. Data engineers running the elementary-data CLI are almost certainly using it against a connected data warehouse, with cloud provider credentials, often in a CI/CD environment where those credentials are stored as secrets or environment variables. This is a targeted attack, not a generic spray.</p><h4>Impact and scope</h4><p>The attack window ran from April 24, 22:20 UTC (when the package appeared on PyPI) until the package was removed on April 25, between 8:51 and 11:51 UTC, after community members flagged the issue at 6:18 UTC. That is roughly eight to ten hours of exposure.</p><p>Anyone to whom the following applies should assume the malware has executed and that their credentials have been exfiltrated:</p><ul><li>ran pip install elementary-data or upgraded during that window,</li><li>used a Docker image pulled from the elementary-data registry between April 24, 22:24 UTC and removal,</li><li>or had a CI/CD pipeline that automatically pulled the latest version</li></ul><p>Elementary Cloud and the Elementary dbt package were not affected, and no other CLI versions contained the malicious code.</p><h4>Detection: Are You Affected?</h4><h4><strong>Step 1: Check your installed version</strong></h4><pre>pip show elementary-data</pre><p>If the output shows Version: 0.23.3, your environment was exposed.</p><h4><strong>Step 2: Check for the execution marker</strong></h4><p>The malware writes a marker file on execution:</p><pre># Linux / macOS (checks $TMPDIR, which defaults to /tmp if unset)<br>ls -la &quot;${TMPDIR:-/tmp}/.trinny-security-update&quot;<br><br># Windows (PowerShell)<br>Test-Path &quot;$env:TEMP\.trinny-security-update&quot;</pre><p>The presence of this file means the credential-stealing code ran in that environment. Its absence does not guarantee safety; the malware may not have written the marker in all execution paths, or the temp directory may have been cleared.</p><h4><strong>Step 3: Review with Snyk</strong></h4><p>To check your Python dependencies for this and other known malicious or vulnerable packages:</p><pre># Scan your project dependencies<br>snyk test --file=requirements.txt<br><br># Or for pip-based environments<br>pip freeze &gt; requirements_check.txt &amp;&amp; snyk test --file=requirements_check.txt</pre><p>Snyk’s vulnerability database includes <a href="https://security.snyk.io/vuln/SNYK-PYTHON-ELEMENTARYDATA-16316110">SNYK-PYTHON-ELEMENTARYDATA-16316110</a> and will flag any environment still pinned to 0.23.3.</p><p>Note: We recommend you review our <a href="https://snyk.io/blog/python-security-best-practices-cheat-sheet/">Python security best practices cheat sheet</a> and write-up on <a href="https://snyk.io/blog/best-practices-containerizing-python-docker/">Best practices for containerizing Python applications with Docker</a> to practice secure development guidelines.</p><h4>Remediation</h4><h4><strong>1. Upgrade immediately</strong></h4><pre>pip install --upgrade elementary-data</pre><p>Version 0.23.4 was published on April 25, 2026, and contains no malicious code.</p><p>If you are using a requirements.txt or pyproject.toml, update the pin:</p><pre>elementary-data&gt;=0.23.4</pre><h4><strong>2. Rotate all credentials that may have been exposed</strong></h4><p>Treat any credentials accessible to Python processes on affected machines as compromised. Specifically:</p><ul><li><strong>dbt profiles</strong>: Rotate warehouse passwords and OAuth tokens in ~/.dbt/profiles.yml.</li><li><strong>Cloud provider keys</strong>: Rotate or revoke AWS IAM keys (and check Secrets Manager and SSM Parameter Store for accessed values), GCP service account keys, Azure service principals.</li><li><strong>Kubernetes</strong>: Rotate ServiceAccount tokens, and audit any /etc/kubernetes/*.conf files that were accessible.</li><li><strong>Container registries</strong>: Rotate credentials stored in ~/.docker/config.json.</li><li><strong>Package manager tokens</strong>: Rotate ~/.npmrc, ~/.pypirc, ~/.cargo/credentials.toml tokens.</li><li><strong>Secrets managers</strong>: Rotate HashiCorp Vault tokens (~/.vault-token) and any .netrc, .pgpass, or .my.cnf credentials.</li><li><strong>SSH keys</strong>: If private keys were present on the machine, consider them exposed and rotate them.</li><li><strong>CI/CD secrets</strong>: If the affected machine was a CI runner, rotate all secrets stored in that environment.</li></ul><p>Rotation alone is not sufficient. Review access logs for the exfiltration domain igotnofriendsonlineorirl-imgonnakmslmao.skyhanni.cloud and for any of your services to detect unauthorized access that may have already occurred.</p><h4><strong>3. Clear Python caches</strong></h4><pre># Remove any cached .pth files or bytecode<br>pip cache purge<br><br># Find and remove any elementary.pth artifacts<br>find / -name &quot;elementary.pth&quot; 2&gt;/dev/null</pre><h4><strong>4. Pull clean Docker images</strong></h4><p>The compromised image (ghcr.io/elementary-data/elementary:0.23.3 and :latest) carried digest sha256:31ecc5939de6d24cf60c50d4ca26cf7a8c322db82a8ce4bd122ebd89cf634255. The last known-clean image is 0.23.2 at digest sha256:b3bbfafde1a0db3a4d47e70eb0eb2ca19daef4a19410154a71abee567b35d3d9. Pull a clean image built after April 25, 2026:</p><pre>docker pull ghcr.io/elementary-data/elementary:latest</pre><p>Verify you are not running a cached copy of the compromised image:</p><pre>docker images ghcr.io/elementary-data/elementary --digests</pre><h4><strong>5. Audit your GitHub Actions workflows</strong></h4><p>If you maintain Python packages, this incident is a prompt to audit any workflow that processes issue or PR comment events. The specific pattern to search for is unquoted context expressions interpolated directly into run: blocks:</p><pre># Vulnerable: ${{ github.event.comment.body }} expands before bash parses the command<br>- run: echo &quot;Comment: ${{ github.event.comment.body }}&quot;<br><br># Safe: pass untrusted input through an environment variable<br>- run: echo &quot;Comment: $COMMENT_BODY&quot;<br>  env:<br>    COMMENT_BODY: ${{ github.event.comment.body }}</pre><p>Snyk’s post on <a href="https://snyk.io/blog/exploring-vulnerabilities-github-actions">GitHub Actions vulnerabilities</a> and the <a href="https://snyk.io/blog/reconstructing-tj-actions-changed-files-github-actions-compromise/">TJ Actions compromise analysis</a> covers the broader patterns to look for.</p><p>Beyond sanitizing inputs, the more durable fix is to remove long-lived PyPI API tokens from your workflow secrets entirely. PyPI supports <a href="https://docs.pypi.org/trusted-publishers/">Trusted Publishers</a>, which use short-lived OIDC tokens scoped to a specific workflow on a specific repository — tokens that cannot be exfiltrated and reused. The elementary-data attacker needed a long-lived secret to publish; Trusted Publishers eliminate that attack surface. Also, keep privileged release workflows behind manual approval gates that require human confirmation before the publish step runs.</p><h4>The repeating pattern</h4><p>This attack follows a now-familiar playbook: find a gap in a project’s GitHub Actions configuration, inject code that steals the PyPI publishing token, use that token to publish a malicious version, embed a .pth file or similar startup hook to maximize reach.</p><p>The same pattern appeared in the <a href="https://snyk.io/blog/ultralytics-ai-pwn-request-supply-chain-attack/">Ultralytics attack</a> (December 2024, pull_request_target branch injection, cryptocurrency miner), the <a href="https://snyk.io/blog/poisoned-security-scanner-backdooring-litellm/">LiteLLM attack</a> (early 2026, poisoned Trivy action, credential stealer with persistent backdoor), and the <a href="https://snyk.io/blog/cline-supply-chain-attack-prompt-injection-github-actions/">Cline/Clinejection incident</a> (AI-assisted prompt injection into Actions, stolen tokens).</p><p>The pattern is not novel. The tooling to exploit it is well-understood and appears to be in active, repeated use. For package maintainers, the priority is workflow hardening: restrict the use of pull_request_target, require manual approval for release workflows, use short-lived OIDC tokens for PyPI publishing instead of long-lived API tokens, and implement branch protection rules to prevent unauthorized release triggers.</p><p>For elementary-data users, the Elementary team responded quickly: from community report to initial remediation was under four hours, and the team published a full incident report. That response tempo is worth noting alongside the incident itself.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2cb75ab7c35a" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Hardcoding Security into Every Commit: The Future of Snyk Secrets]]></title>
            <link>https://medium.com/@snyksec/hardcoding-security-into-every-commit-the-future-of-snyk-secrets-62b7838e651e?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/62b7838e651e</guid>
            <category><![CDATA[kubernetes]]></category>
            <category><![CDATA[vscode]]></category>
            <category><![CDATA[secrets]]></category>
            <category><![CDATA[scm]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Fri, 24 Apr 2026 02:00:51 GMT</pubDate>
            <atom:updated>2026-04-24T02:00:51.541Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*S2c25TT8A8ZFO0-e.jpg" /></figure><p>In the modern software development lifecycle, the speed of innovation is often at odds with the security of our most sensitive data. As organizations embrace cloud-native development and AI-generated code, they face a phenomenon known as “secret sprawl”, aka, the uncontrolled and widespread distribution of API keys, passwords, and tokens across repositories, CI/CD logs, and developer collaboration tools.</p><p>However, the challenge has evolved beyond static credentials. We are entering a new phase of AI adoption where autonomous, stateful agents are not just writing code; they are executing workflows, connecting to Model Context Protocol (MCP) servers, and operating applications at machine speed. Secrets are no longer just accidentally exposed; they are now generated and executed by agents. An AI agent might be tasked with setting up a server, and while completing this task, it creates its own temporary secrets or access keys to talk to other services.</p><p>This process allows AI to go far beyond “knowing” the password — it uses it to log in, move data, or change settings without a human ever seeing the password. Without a <a href="https://snyk.io/articles/human-in-the-loop-leveraging-human-expertise-in-ai-systems/">human-in-the-loop</a>, AI that is poorly programmed or “hallucinates” may create a key that is too powerful or leave a backdoor open. Every agent is, by design, a consumer and executor of secrets.</p><h4>An invisible and autonomous attack surface</h4><p>Traditional security has often been a “checkbox” feature that is noisy, reactive, and disconnected from the developer’s workflow. This leads to critical frustrations, exacerbated by the growing presence of AI:</p><ul><li><strong>Alert fatigue</strong>: Legacy engines produce high rates of false positives, while public-facing AI agents can be manipulated via prompt-injection to perform unsafe actions, such as confirming legally binding offers for pennies.</li><li><strong>Dire lack of visibility</strong>: <a href="https://snyk.io/lp/end-of-human-speed-security-dwn-typ/">72% of organizations struggle to maintain visibility of embedded AI</a>. Developers are integrating “<a href="https://snyk.io/articles/what-is-shadow-ai-preventing-and-managing-ai-risks/">Shadow AI</a>” — unapproved agents and third-party tools — without security oversight</li><li><strong>Reactive remediation</strong>: Once a secret is leaked or an autonomous agent deletes a production database, the cost of recovery is catastrophic. The <a href="https://snyk.io/blog/servicenow-virtual-agent-vulnerability/">ServiceNow Bodysnatcher incident</a> exploited insecure configurations in hardcoded secrets and was known as “the most severe AI-driven vulnerability to date”.</li></ul><p>The result is clear: exposed credentials and untrusted agentic development represent a unified front of risk that traditional AppSec was never designed to manage.</p><h4>Building a comprehensive picture of risk to power holistic AI security governance</h4><p>Before organizations can move fast with AI, they need a stable <a href="https://snyk.io/blog/building-ai-security-with-our-customers/#1-visibility-is-the-key-to-uncovering-ai-sprawl-at-ai-speed">foundation built on visibility</a>. Risk must be discovered before it can be prioritized and remediated. Traditional application security scanning across your proprietary code (<a href="https://snyk.io/articles/application-security/static-application-security-testing/">SAST</a>) and open source repositories (<a href="https://snyk.io/articles/open-source-security/software-composition-analysis-sca/">SCA</a>) is no longer enough. AppSec teams are fighting a two-front battle between risk originating within AI itself (models and artifacts), as well as a drastically increased speed in which risk can be discovered by threat actors using AI to power their own discovery.</p><p>Snyk is built on best-in-class security engines across <a href="https://snyk.io/product/snyk-code/">SAST</a>, <a href="https://snyk.io/product/open-source-security-management/">SCA</a>, <a href="https://snyk.io/product/dast-api-web/">DAST</a>, and <a href="https://snyk.io/platform/">more</a> — validated by leading analysts and trusted at enterprise scale. Throughout our history, we’ve understood the need for AppSec teams to have a complete picture of risk, evidenced most recently in our release of <a href="https://snyk.io/blog/introducing-agent-security/">Evo AI-SPM</a> to extend visibility further left into AI models and artifacts. This principle has guided our journey to deliver holistic AppSec governance to our customers. This very principle is why we’re so excited to share our vision for the future of Secrets detection.</p><h4>Our vision: Total visibility and proactive prevention</h4><p>Snyk Secrets isn’t just another scanner; it is an integrated platform play designed to bridge the gap between code and commit. Our goal is to empower developers to stay fast while ensuring sensitive data remains hidden. Let’s take a look at how we will deliver on this:</p><h4>1. High-precision detection powered by AI</h4><p>We are moving beyond simple pattern matching. Snyk Secrets leverages a best-in-class engine that combines ML-driven semantic and contextual analysis with high-entropy scanning and regex. By understanding the surrounding code and metadata, we can dramatically reduce false positives and provide a high-fidelity signal that developers can trust.</p><p>Organizations also tend to have proprietary Secrets (such as DB passwords), so ensuring that you can supplement the Snyk Secrets engine with custom regex and patterns to scan, you can feel confident that we’ll detect Secrets across all of your plain-text code files in your repos.</p><h4>2. Shifting left to prevention</h4><p>The most effective way to manage a leak is to prevent it from occurring in the first place. Snyk’s shift-left strategy has been our beacon over the last ten years, and Secrets is no exception. Real-time feedback directly within developers’ native tools is essential:</p><ul><li>Prevention: By scanning through the IDE and CLI, you can prevent Secrets from ever reaching a commit, saving time and improving your security posture</li><li>Detection: You can scan for Secrets in PR checks to ensure they never merge to a major branch, and by integrating with the SCM and CI/CD pipeline, you can detect Secrets at build time and through scheduled testing.</li></ul><h4>3. Unified visibility and integrated governance</h4><p>Security cannot properly be managed through a fragmented lens. Snyk Secrets fits seamlessly into Snyk’s single pane of glass approach to providing AppSec teams to manage risks across all repos:</p><ul><li>Unified reporting: Track trends in detection and remediation (MTTR) across your entire organization, with the ability to export them to provide you with a single pane of glass view of your security posture.</li><li>Ignore approval workflow: Democratize the ability to request and triage ignores whilst consistently managing and governing risk acceptance for false positives through a centralized dashboard.</li></ul><h4>Join the journey</h4><p>The secret-scanning market has matured, and value lies not just in finding secrets but in finding the <strong>right</strong> ones and preventing exposure at the source. Snyk is energized and committed to helping customers consolidate secrets sprawl into our unified platform, closing an essential visibility gap in the age of AI.</p><p>However, secrets are only one piece of a much larger puzzle. As organizations move toward <a href="https://snyk.io/de/articles/ai-skills-new-agentic-attack-surface/">agentic development</a>, where autonomous systems plan, execute, and interact across tools and environments, the attack surface expands beyond static code to include agent inputs, tool usage, and runtime decision-making. Snyk Secrets is a foundational component of our broader <a href="https://snyk.io/blog/ai-security-fabric/">AI Security Fabric</a>. It is an invisible, intelligent layer providing continuous, context-aware security across code, agents, and AI-native systems.</p><p>By integrating Secrets into the Snyk AI Security Platform, we ensure that your security posture keeps pace with agents operating at machine speed. Our vision for the future of Secrets is tied directly to the core principles of Agentic Development Security: validating what agents use, controlling what they do, and preventing insecure output.</p><p>Interested in what Snyk Secrets and the Snyk AI Security Platform can do for your team? <a href="https://snyk.io/schedule-a-demo/">Book a demo</a> and be sure to stay tuned for more excitement to come!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=62b7838e651e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[JPMorgan Just Published a Cyber To-Do List and Snyk Covers 8 of the 10 Items. How do you stack up?]]></title>
            <link>https://medium.com/@snyksec/jpmorgan-just-published-a-cyber-to-do-list-and-snyk-covers-8-of-the-10-items-how-do-you-stack-up-6206050fc9d3?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/6206050fc9d3</guid>
            <category><![CDATA[supply-chain-security]]></category>
            <category><![CDATA[vulnerabilityinsights]]></category>
            <category><![CDATA[open-source-security]]></category>
            <category><![CDATA[iac-security]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Fri, 24 Apr 2026 02:00:45 GMT</pubDate>
            <atom:updated>2026-04-24T02:00:45.930Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*uBhWnMJKV2Giymlm.jpg" /></figure><h4>Key takeaway</h4><p>JPMorganChase’s Global Technology Leadership published “<a href="https://www.jpmorganchase.com/about/technology/blog/fortifying-the-enterprise-10-actions-to-take-now-for-ai-ready-cyber-resilience">Fortifying the enterprise: 10 actions to take now for AI-ready cyber resilience</a>” on April 17, 2026. It’s a CISO mandate for every large enterprise. Snyk directly addresses 8 of those 10 actions — out of the box, in the developer workflow, with one platform.</p><h4>Why this directive landed with a thud</h4><p>When JPMorgan’s global technology leadership publishes a public cyber checklist, security teams at large enterprises take notice. JPMorgan spends roughly $15 billion a year on technology and runs one of the most battle-tested security programs on the planet. When they say “do these 10 things,” it lands less like advice and more like a preview of what regulators and boards will soon require.</p><p>The timing is no accident. AI is rapidly narrowing the window between a vulnerability’s discovery and exploitation. Processes designed for quarterly release cycles are now a liability. The JPMC directive acknowledges this directly — as does Anthropic’s companion security post from April 10, which describes AI models as increasingly effective at chaining known bugs into working exploits.</p><blockquote><em>“Adversaries are scaling attacks, compressing the time from vulnerability discovery to exploitation, and increasing the volume of threats that enterprises face each day.”</em></blockquote><p>— JPMorganChase Global Technology Leadership, April 17, 2026</p><h4>All 10 actions, explained simply</h4><p>Here’s what JPMorgan said, what it means in practice, and where Snyk fits.</p><h4>1. Run the latest software versions</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Stop using outdated open source packages and end-of-life libraries. Only use current, well-maintained releases from trusted repositories.</p><p><strong>How Snyk helps:</strong> Snyk SCA continuously scans every open source dependency, flags outdated or vulnerable packages, and opens automated fix pull requests — at every commit, before anything ships.</p><h4>2. Manage assets and software components</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Know exactly what’s in every application. Build a <a href="https://snyk.io/articles/software-bill-of-materials/">Software Bill of Materials (SBOM)</a> for each one, enriched with who owns it and how critical it is.</p><p><strong>How Snyk helps:</strong> <a href="https://snyk.io/blog/evo-adds-cyclonedx/">Snyk generates SPDX and CycloneDX SBOMs</a> for every application and container, maps all open source dependencies, and integrates with tools like ServiceNow and Jira for ownership tracking.</p><h4>3. Build a robust vulnerability management program</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Fix known vulnerabilities in priority order — internet-facing systems first. Scan continuously, not quarterly. Factor in real-world exploit availability and CISA’s Known Exploited Vulnerabilities (KEV) list.</p><p><strong>How Snyk helps:</strong> Snyk scans every PR and build, prioritizes based on <a href="https://snyk.io/blog/Reachability-for-vuln-prioritization/">reachability</a> and exploit maturity, natively ingests CISA KEV data, and uses <a href="https://snyk.io/blog/building-ai-trust-with-snyk-code-and-snyk-agent-fix/">Agent Fix</a> to auto-generate remediation PRs that developers can accept with one click.</p><h4>4. Stress-test incident response plans</h4><h4>⚠️ Foundational</h4><p><strong>JPMC requirements:</strong> Run tabletop exercises and live simulations. Test backup and recovery. Include legal, comms, and business leaders — and close the gaps you find.</p><p><strong>How Snyk helps:</strong> IR planning is a program function, not a code scanner’s job. Snyk supports post-incident reviews through audit trails, exception tracking, SBOM lineage, and compliance reporting. Pair with a dedicated IR platform for the exercises themselves.</p><h4>5. Know your SaaS and outsourced dependencies</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Maintain a current register of every third-party service your critical systems depend on. Assess their security posture. Have an exit plan.</p><p><strong>How Snyk helps:</strong> <a href="https://snyk.io/blog/introducing-agent-security/">Snyk Evo AI-SPM</a> inventories AI models, third-party AI services, agent frameworks, and MCP servers, extending supply chain visibility into the AI layer that most security teams still can’t see. <a href="https://snyk.io/lp/state-of-agentic-ai-adoption/">Discovery data shows 28% of enterprises already run agentic AI in production</a>, most of it invisible to their security teams.</p><h4>6. Speed up change management</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Know how long it takes a patch to reach production. Automate testing and staged rollouts. Make security scanning a built-in quality gate — not a separate bottleneck.</p><p><strong>How Snyk helps:</strong> This is the core Snyk use case. Native integrations with GitHub, GitLab, Bitbucket, Azure DevOps, Jenkins, CircleCI, and more. Security gates run automatically at PR, build, and deploy. JPMC is describing, in their own words, the category Snyk created.</p><h4>7. Aggressively filter outbound traffic</h4><h4>⚠️ Foundational</h4><p><strong>JPMC requirements:</strong> Default-deny outbound traffic from production environments. Only allow approved endpoints. JPMC notes that this single control would have substantially mitigated both Log4Shell and SolarWinds.</p><p><strong>How Snyk helps:</strong> Network egress is enforced by firewalls and cloud network policy — not code scanners. However, Snyk IaC catches misconfigurations that silently weaken those controls: overly broad NAT gateways, unrestricted 0.0.0.0/0 rules in Terraform, and Kubernetes NetworkPolicy drift.</p><h4>8. Remove standing privileges</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Eliminate persistent admin access. Use just-in-time entitlement. Require MFA and session recording. Pay special attention to service accounts — they’re the most targeted.</p><p><strong>How Snyk helps:</strong> PAM tools handle the identity plane. Snyk handles the upstream of the problem: Snyk Secrets detection finds embedded credentials, API keys, cloud tokens, and SSH keys in code and containers before they ever merge — removing the most common source of standing privilege leakage.</p><h4>9. Manage remote access and segment networks</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Require MFA for all remote access. Segment environments by trust level. Authenticate every system-to-system connection. Test with red team exercises.</p><p><strong>How Snyk helps:</strong> Snyk IaC validates zero-trust and segmentation controls as code — VPC peering, private endpoints, service mesh mTLS, network ACLs, and firewall rules. Drift between your policy-as-code and the deployed network is caught at merge time, not after a red team finds it.</p><h4>10. Embed security into AI development and deployment</h4><h4>✅ Snyk helps</h4><p><strong>JPMC requirements:</strong> Threat-model AI systems. Treat AI models and training data as high-value assets. Validate AI-generated code the same way you’d validate human-written code. Red-team for prompt injection and data poisoning.</p><p><strong>How Snyk helps:</strong> Snyk Evo delivers the full AI security lifecycle: Agent Scan (scan AI-generated code), Snyk Studio (secure-by-default guardrails for coding agents like Cursor, Claude Code, Copilot), AI-SPM (model and agent inventory), Agent Red Teaming (adversarial testing for prompt injection), and MCP/agent supply chain security.</p><h4>Why this is more urgent than it looks</h4><p>The JPMC directive wasn’t written in a vacuum. It’s a direct response to AI changing the economics of cyberattacks. “We need to know that we can release it safely, and it’s not exactly clear how we can do that with full confidence,” <a href="https://www.wsj.com/tech/ai/ai-is-finding-bugs-that-hackers-can-exploit-get-ready-for-bugmageddon-baaff236">said Logan Graham</a>, the head of Anthropic’s Frontier Red Team, which evaluates AI for risks.</p><p>Both documents land on the same conclusion: defenders must use AI at the code level, continuously, at the speed of change. Quarterly scans and manual triage simply won’t keep pace with automated exploitation at scale.</p><p>External research reinforces the stakes: BaxBench (ETH Zurich, UC Berkeley, 2025) found that 62% of frontier LLM-generated backend code is incorrect or insecure. As teams lean more heavily on coding agents, the volume of security issues entering codebases is rising — without automated scanning designed to detect AI-generated patterns.</p><h4>How to operationalize this in 90 days</h4><p>If you’re a security team that needs to demonstrate progress against the JPMC 10, here’s a practical phased approach:</p><p>| | | | — — | — — | | <strong>Days 1–30</strong> | <strong>Close the most urgent code gaps</strong>Deploy Snyk Open Source, Snyk Code, and Snyk Secrets across your top 25 revenue-critical applications. Covers Actions 1, 2, 3, and the secrets portion of Action 8. | | <strong>Days 31–60</strong> | <strong>Extend to cloud infrastructure</strong> Roll out Snyk IaC across production cloud accounts. Covers Actions 6, 7 (adjacent), and 9 — catching misconfigurations before they reach runtime. | | <strong>Days 61–90</strong> | <strong>Secure the AI development layer</strong> Deploy Evo AI-SPM, Agent Scan, and Snyk Studio guardrails across active coding-agent deployments. Covers Actions 5 and 10. By day 90, 8 of 10 Actions are instrumented on one control plane. |</p><p>JPMorganChase published the mandate, and Anthropic published the mechanics behind why it’s urgent. Snyk is the platform that operationalizes both — natively in the developer workflow, across 8 of the 10 actions — at the speed AI is now generating code.</p><p>If you’re a CISO, AppSec lead, or procurement owner mapping vendors to the JPMC 10, the table above is your RFP foundation. If you’re a security team preparing for an order-of-magnitude increase in vulnerability volume, Snyk is the platform already instrumented for it.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6206050fc9d3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Governing Security in the Age of Infinite Signal — From Discovery to Control]]></title>
            <link>https://medium.com/@snyksec/governing-security-in-the-age-of-infinite-signal-from-discovery-to-control-e00d6d521b78?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/e00d6d521b78</guid>
            <category><![CDATA[supply-chain-security]]></category>
            <category><![CDATA[vulnerabilityinsights]]></category>
            <category><![CDATA[application-security]]></category>
            <category><![CDATA[devsecops]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Sat, 11 Apr 2026 02:00:40 GMT</pubDate>
            <atom:updated>2026-04-11T02:00:40.740Z</atom:updated>
            <content:encoded><![CDATA[<p>Anthropic just open-sourced vulnerability discovery at scale. Now what?</p><p>A few weeks ago, Anthropic launched <a href="https://www.anthropic.com/glasswing">Glasswing</a>, a $100 million initiative to use AI to identify vulnerabilities at scale. Around the same time, they introduced Claude Mythos, a system that can autonomously discover and exploit software flaws.</p><p>I wrote about this trajectory in my previous <a href="https://snyk.io/articles/anthropic-launches-claude-code-security/">analysis</a>: AI accelerates discovery, but enterprise trust still depends on deterministic validation, remediation automation, and governance at scale. Everything that’s happened since has reinforced that thesis and made the next step more urgent: we need to move from detection to control.</p><p>Anthropic’s <a href="https://www.anthropic.com/claude-mythos-preview-system-card">System Card: Claude Mythos Preview (PDF)</a> says it plainly: this class of system is not ready for broad release. The breakthrough and the risk arrive at the same time, and that tension defines the new era of enterprise AI security.</p><h4>More capability doesn’t mean more security</h4><p>Every time something like this drops, the conversation splits into two camps. Is AI good for security, <em>or</em> does it introduce new risks? The answer is more consequential than either side wants to admit: it’s <em>both</em>. Systems like Mythos can surface vulnerabilities that have gone undiscovered for decades, reason across complex environments, and operate at a speed no human team can match.</p><p>But at the same time, <a href="https://snyk.io/blog/ai-is-building-your-attack-surface-are-you-testing-it/">code is being generated faster than it can be reviewed</a>, behavior is becoming less predictable, <a href="https://snyk.io/articles/ai-skills-new-agentic-attack-surface/">attack surfaces are expanding</a>, and <a href="https://snyk.io/blog/introducing-agent-security/">autonomous systems</a> are starting to take real action inside production environments.</p><h4>Discovery without control creates risk</h4><p>Experienced security leaders reacted to these announcements quickly and with some useful context. As one former enterprise CISO put it: “When the metric every practitioner asks for is missing, the vulnerability count starts to read like a prospectus.”</p><p>Security leaders inside systemically important financial institutions <a href="https://www.linkedin.com/pulse/beginning-end-cybersecurity-jen-easterly-ch97c/">are already thinking this way</a>, recognizing that as software supply chains accelerate, governance (not discovery) becomes the limiting factor in managing systemic risk.</p><p>Here’s what that actually means in practice: detection without validation creates noise, discovery without prioritization creates backlog, and capability without governance creates risk. Security is defined by what you can control, not just by what you can find.</p><h4>Your AI system is now part of your threat model</h4><p>The most important signal here isn’t just what these systems can do. It’s what their creators are telling us about them.</p><p>In their own <a href="https://red.anthropic.com/2026/mythos-preview/">preview</a> documentation, Anthropic describes models that have escaped constrained environments, accessed external systems, retrieved sensitive credentials that were intentionally out of scope, modified running processes, and leaked internal artifacts. In some cases, these systems showed signs of concealing behavior and manipulating evaluation mechanisms.</p><p>Let that sink in for a second. The company <em>building</em> these systems is publicly stating: “This is the highest alignment risk of anything we’ve ever released, and you should not deploy it in environments where its actions could cause irreversible harm.”</p><p>Recent events make this even more concrete. When the internal workings of AI development tools get exposed (as with the Claude Code leak), the effort required to find and exploit their weaknesses drops significantly. What was opaque becomes analyzable, and therefore attackable.</p><p><a href="https://www.linkedin.com/posts/katie-d-norton_i-literally-had-on-my-schedule-today-to-record-activity-7445126889717022721-7Kp-/">As IDC has noted</a>, the industry has focused heavily on securing the code AI produces, but far less on securing the tools themselves within the software supply chain.</p><p>Think about what that means. The same systems that generate production-ready code, discover vulnerabilities, and orchestrate complex workflows can also operate outside intended boundaries, access sensitive systems, and make decisions that are hard to predict or audit.</p><p><strong>As systems become more capable, they become less deterministic and harder to govern.</strong> If the organizations building these systems are explicitly warning us about their behavior, the question for every enterprise is straightforward: <em>who</em> is responsible for governing them once they’re in your environment?</p><h4>3 major category shifts in the age of AI</h4><h4>1: More signal increases risk without control</h4><p>For years, the security industry operated under one constraint: we couldn’t find enough risk. That constraint is gone. We’re now in a world where detection is effectively infinite, code generation is accelerating, and AI is participating directly in the development process.</p><p>The more risk you can find, the harder it becomes to manage. That’s the paradox of AI in security: the bottleneck is no longer discovery, it’s control.</p><p>This is a fundamental shift in the operating model. Security leaders need to answer a different set of questions now:</p><ul><li>What matters in this environment?</li><li>What behavior is allowed?</li><li>How is risk prioritized?</li><li>How is remediation enforced?</li><li>How do you maintain governance across both human developers and AI systems?</li></ul><h4>2: AI can reason about risk, but it cannot enforce it</h4><p>AI can find and fix, but it can’t be trusted to enforce. AI systems are getting very good at reasoning: identifying vulnerabilities, suggesting fixes, simulating attack paths. But enterprise security doesn’t run on reasoning. It runs on enforcement.</p><p>You can ask an AI to reason about risk. You cannot ask it to guarantee compliance. That means:</p><ul><li>Policies must be applied consistently.</li><li>Controls must behave predictably.</li><li>Remediation must be verified.</li><li>Risk must be auditable.</li></ul><h4>3: Security has shifted from discovery to control</h4><p>As detection becomes more prevalent, a new layer becomes essential: a control plane that translates signals into context, applies policy consistently, prioritizes what matters, orchestrates remediation, and enforces governance across both human and machine actors.</p><p>Discovery becomes input. Control becomes the system. Governance becomes the outcome. Security is no longer about finding risk. It’s about controlling it.</p><p>But here’s something that needs to be said directly, because it gets glossed over in this conversation: <em>you can’t control everything, and it’s unrealistic to expect that you will.</em></p><p>Controls are critical, full stop. But the idea that a sufficiently robust control framework will prevent every breach and catch every vector? That’s a fantasy. The threat landscape moves too fast, systems are too complex, and AI is introducing failure modes we haven’t fully mapped yet.</p><p>So the question isn’t only “how do we prevent this?” It’s also: <em>how fast can we detect and respond when something inevitably slips through?</em></p><p>Incident response is not a fallback. It’s a core competency, and it’s only going to matter more with each passing year. The teams that come out ahead won’t just have the tightest controls. They’ll be the ones that can contain, respond, and recover faster than an attacker can escalate. As AI systems get more autonomous and the blast radius of any given failure grows, that response muscle becomes a genuine competitive advantage.</p><p>And even prevention and response together aren’t the full picture. You need <strong>world-class security expertise, constantly iterating on and improving your posture</strong>, people who understand not just the technology but the adversary. That means deploying the best AI models (plural, not just one, because different models have different strengths and relying on a single one is a single point of failure), the best deterministic rulesets and bleeding-edge analysis techniques, <em>and</em> experienced security experts bringing human intuition and judgment to close the gaps automation alone can’t cover.</p><p>This combination of best-in-class AI, deterministic controls, and human expertise is exactly what we’re building at Snyk. Not because any single layer is sufficient on its own, but because the threat landscape is evolving too fast for any one approach to keep pace. We’re deploying the best tools available across every layer, working together as a complete security stack that can actually evolve alongside the threats it’s designed to address.</p><p>Meanwhile, AI is already in production, and governance isn’t. Organizations are shipping AI-generated code into production, embedding models into critical workflows, and allowing autonomous systems to act on their behalf.</p><p>Without a control layer, this leads to unbounded exposure, inconsistent remediation, limited visibility, and growing regulatory pressure. With the right model in place, risk becomes measurable, remediation becomes scalable, AI becomes governable, and security becomes a genuine strategic advantage.</p><h4>Control will define the next era of security</h4><p>Anthropic’s announcements signal something fundamental: the future of security won’t be defined by how much risk we can discover. It’ll be defined by how well we can control it.</p><p>In a world of infinite signals, detection becomes expected, and noise becomes dangerous. Control matters. Response speed matters. Continuous improvement driven by real expertise matters. The organizations that build for all three, in equal measure, will be ready for what security actually looks like in the age of AI.</p><p>That’s the shift the best platforms are building toward: turning raw signal into enforceable policy, verified remediation, and governance that scales alongside AI-driven development.</p><h4>The boardroom reality</h4><p>Here’s the bottom line: AI is changing what risk <em>looks like</em>, not just how we find it. The systems building your software today can act faster, smarter, and more unpredictably than ever before. That leaves boards, CISOs, and senior leadership with a straightforward question: <em>who is accountable when AI misbehaves, and who governs it before it ships?</em></p><p>The organizations that get this right won’t be chasing every vulnerability. They’ll be controlling risk at scale, enforcing governance in real time, and turning infinite signals into actionable, auditable decisions. And when something inevitably breaks, they’ll respond fast enough that it doesn’t become a catastrophe.</p><p>That’s the shift the best platforms are building toward, turning raw signal into enforceable policy, verified remediation, and governance that scales alongside AI-driven development. This is the direction we’re actively building toward at Snyk.</p><p>In the age of AI, control isn’t optional. It’s the only path to trust.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=e00d6d521b78" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Secure What Matters: Scaling Effortless Container Security for the AI Era]]></title>
            <link>https://medium.com/@snyksec/secure-what-matters-scaling-effortless-container-security-for-the-ai-era-69967492b7ea?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/69967492b7ea</guid>
            <category><![CDATA[vulnerabilityinsights]]></category>
            <category><![CDATA[go]]></category>
            <category><![CDATA[docker]]></category>
            <category><![CDATA[devsecops]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Wed, 08 Apr 2026 02:00:50 GMT</pubDate>
            <atom:updated>2026-04-08T02:00:50.118Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/803/0*8SLewbY-Q7mjtV2D.png" /></figure><p>In November, we shared our vision for the <a href="https://snyk.io/blog/future-snyk-container/">Future of Snyk Container</a>, outlining a fundamental shift in how teams secure the modern container lifecycle. We promised a future where security doesn’t just “scan” but scales effortlessly with the speed of the AI-driven, agentic world.</p><p>Today, we are thrilled to announce that we are moving from vision to reality.</p><p>With the General Availability (GA) of <strong>Container Registry Sync</strong> and a suite of powerful new enhancements, we are delivering the milestones promised in November. As the velocity of software creation skyrockets, the need for scalable, developer-first container security has never been more critical.</p><p>One of the biggest challenges in container security is keeping up with the sheer volume of new images being pushed to your registries every single day — and dealing with the clutter of old images left behind.</p><p>With the <strong>GA launch of Container Registry Sync</strong>, Snyk is delivering a massive improvement that streamlines inventory management. Instead of manual, all-or-nothing imports, Snyk Container will automatically monitor your container registries and pick up new images to scan and secure, empowering you with <strong>customizable rules for both adding and pruning images</strong>.</p><p>You can define specific policies detailing exactly which new images should be automatically imported and scanned by Snyk when they hit your registry, and exactly which older images should be dropped — regardless of whether those old images still physically exist in the registry itself.</p><p>By automating the discovery of new images and the pruning of stale ones, your security visibility finally scales alongside your deployment speed. Your teams will no longer waste time on vulnerability notifications for images that aren’t in use, drastically reducing alert fatigue and keeping your focus where it belongs: on active code and, with signals from runtime, live containers.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qYLUwzpwYgv4lHnC.png" /></figure><h4>Extending visibility and enhancing prioritization</h4><p>Scaling our registry capabilities was just step one. We are also introducing several fundamental enhancements to the Snyk Container product experience, <strong>now available in beta</strong>. These new capabilities further extend visibility and redefine how you prioritize risk.</p><ul><li><strong>A unified platform experience:</strong> We are rolling out a brand-new platform experience for visualizing, managing, and remediating container images. This unified view aggregates data irrespective of where the images were originally scanned, be it in your CLI, CI/CD, or registry, or how the image has been tagged. Gain a single source of truth for your entire container posture, eliminating the “visibility gap” between different stages of the SDLC.</li><li><strong>Runtime intelligence via 3rd-party signals:</strong> Not all vulnerabilities pose the same risk. By ingesting signals from our 3rd-party runtime partners, Snyk Container can now prioritize the scanning and remediation of images actually running in production. We help you cut through the noise to find what is truly exploitable in production. Stop asking developers to fix thousands of vulnerabilities; instead, give them the ten that actually pose a risk to your live environment.</li><li><strong>Broader support for multiple profiles:</strong> We’ve built in deeper, more flexible support for multiple profiles, giving enterprise teams the nuanced governance and access controls they need to manage complex, multi-tenant environments.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*QkQYl1DezFRoDSBv.png" /></figure><h4>Built on a foundation of continuous innovation</h4><p>These launches are supported by months of robust architectural improvements and ecosystem expansion that ensure enterprise-grade stability and robustness. Recent improvements to Snyk Container include:</p><ul><li><strong>Hardened base images:</strong> Broader, more accurate support for hardened base images, ensuring you have the best starting point for secure applications. Snyk Container has been building support for hardened images with partners like Chainguard, Minimus, Canonical, and Docker.</li><li><strong>Expanded ecosystem support:</strong> We’re adding comprehensive support for the <strong>Go standard library</strong>, container scan support for <strong>cgo and stripped Go binaries</strong>, and <strong>pnpm lockfile</strong> support.</li><li><strong>Broader OS distribution coverage:</strong> Seamless scanning for the latest operating systems, including Ubuntu 24.04 (Noble Numbat) and 24.10 (Oracular Oriole).</li></ul><h4>Evo by Snyk: Guardrails for the agentic AI era</h4><p>Why are these massive updates to Snyk Container so crucial right now? It all ties back to the <a href="https://snyk.io/blog/ai-security-fabric/"><strong>AI Security Fabric</strong></a> and <a href="https://evo.ai.snyk.io/"><strong>Evo by Snyk</strong></a>.</p><p>We are entering the era of agentic AI. Autonomous AI coding agents are generating code, pulling in dependencies, and spinning up containerized environments faster than humanly possible. As a result, the sheer volume of software — and its potential attack surface — is exploding.</p><p>In an AI-native world, you cannot rely on manual security reviews or disconnected point-in-time scans. <strong>Y</strong><a href="https://snyk.io/blog/future-of-ai-agent-security-guardrails/"><strong>ou need guardrails that operate at the speed of AI</strong></a><strong>.</strong> Snyk Container’s scalable visibility, runtime prioritization, and automated remediation provide exactly that. By connecting container context to the broader Snyk AI Security Fabric, we ensure that as you accelerate your AI use, you maintain absolute governance over your security posture. We are making sure that AI-generated sprawl doesn’t become an unmanageable risk.</p><h4>Looking ahead</h4><p>We are proud to have delivered on the promises we made in November, but we aren’t stopping there. We will build upon this foundation to continue to deliver innovative governance and remediation features that simplify Container security over the upcoming quarters.</p><p><strong>Ready to experience true scale?</strong> Enable Container Registry Sync in your Snyk dashboard today, and reach out to your account team to opt into our new beta features to explore the unified platform experience!</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=69967492b7ea" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Axios npm Package Compromised: Supply Chain Attack Delivers Cross-Platform RAT]]></title>
            <link>https://medium.com/@snyksec/axios-npm-package-compromised-supply-chain-attack-delivers-cross-platform-rat-373f81a3a169?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/373f81a3a169</guid>
            <category><![CDATA[supply-chain-security]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Wed, 01 Apr 2026 02:00:47 GMT</pubDate>
            <atom:updated>2026-04-01T02:00:47.178Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*S-13QwAs7w8Wcms1.png" /></figure><p>On March 31, 2026, two malicious versions of <a href="https://snyk.io/advisor/npm-package/axios">axios</a>, the enormously popular JavaScript HTTP client with over 100 million weekly downloads, were briefly published to npm via a compromised maintainer account. The packages contained a hidden dependency that deployed a cross-platform remote access trojan (RAT) to any machine that ran npm install (or equivalent in other package managers like Bun) during a two-hour window.</p><p>The malicious versions (1.14.1 and 0.30.4) were removed from npm by 03:29 UTC. But in the window they were live, anyone whose CI/CD pipeline, developer environment, or build system pulled a fresh install could have been compromised without ever touching a line of Axios code.</p><h4>TL;DR</h4><p>| | | | — — | — — | | <strong>Snyk Advisory</strong> | <a href="https://security.snyk.io/vuln/SNYK-JS-AXIOS-15850650">SNYK-JS-AXIOS-15850650</a> | | <strong>Affected versions</strong> | axios@1.14.1, axios@0.30.4 | | <strong>Root cause</strong> | Hijacked npm maintainer account | | <strong>Malicious dependency</strong> | plain-crypto-js@4.2.1 (<a href="https://security.snyk.io/vuln/SNYK-JS-PLAINCRYPTOJS-15850652">SNYK-JS-PLAINCRYPTOJS-15850652</a>) | | <strong>Payload</strong> | Cross-platform RAT (macOS, Windows, Linux) | | <strong>C2 server</strong> | sfrclak[.]com:8000 | | <strong>Published</strong> | 1.14.1 at 00:21 UTC; 0.30.4 at 01:00 UTC | | <strong>Removed</strong> | 03:29 UTC (March 31, 2026) | | <strong>Safe versions</strong> | Any version other than 1.14.1 or 0.30.4 | | <strong>Immediate action</strong> | Audit lockfiles for affected versions; rotate secrets if exposed |</p><h4>How the attack was constructed</h4><p>This is not a case of a typosquatted package or a rogue dependency slipping into a build. The attacker had (or gained) direct publishing access to the official axios package on npm, likely by compromising a maintainer&#39;s account. According to a collaborator in the <a href="https://github.com/axios/axios/issues/10604">official GitHub issue thread</a>, the suspected compromised account belonged to maintainer @jasonsaayman, whose repository permissions were higher than those of other collaborators, complicating rapid remediation.</p><p>The attacker did not modify any Axios source files directly. Instead, they added a pre-staged malicious dependency, plain-crypto-js@4.2.1, to the package.json of the new axios releases. The plain-crypto-js package itself was purpose-built for this attack: an earlier &quot;clean&quot; version (4.2.0) had been published 18 hours prior, likely to give it a brief history on the registry. Version 4.2.1 contained the malicious payload.</p><p>When a developer or CI system runs npm install axios@1.14.1, npm resolves the dependency tree, pulls plain-crypto-js@4.2.1, and automatically runs its postinstall hook: node setup.js. That single script execution is where the compromise begins.</p><h4>The dropper: Double-obfuscated and self-erasing</h4><p>The setup.js postinstall dropper uses two layers of obfuscation to avoid static analysis:</p><ol><li>Reversed Base64 encoding with padding character substitution</li><li>XOR cipher with the key OrDeR_7077 and a constant value of 333</li></ol><p>Once deobfuscated, the script detects the host operating system via os.platform() and reaches out to the C2 server at sfrclak[.]com:8000 (IP: 142.11.206.73) to download a second-stage payload appropriate for the platform.</p><p>After execution, the malware erases its own tracks: it deletes setup.js, removes the package.json that contained the postinstall hook, and replaces it with a clean package.md renamed to package.json. If you inspect node_modules/plain-crypto-js after the fact, you would find no obvious signs of a postinstall script ever having been there.</p><h4>Platform-specific payloads</h4><p>The second-stage payloads are purpose-built for each platform.</p><h4><strong>macOS</strong></h4><p>An AppleScript downloads a binary to /Library/Caches/com.apple.act.mond, deliberately spoofing an Apple background daemon naming convention to blend in. Once established, the RAT:</p><ul><li>Generates a 16-character unique victim ID</li><li>Fingerprints the system: hostname, username, macOS version, boot/install times, CPU architecture (mac_arm or mac_x64), running processes</li><li>Beacons to the C2 every 60 seconds using a fake IE8/Windows XP User-Agent string</li><li>Accepts four commands from the attacker:</li><li>peinject: receives a Base64-encoded binary from the C2, decodes it, writes it to a hidden temp file (e.g., /private/tmp/.XXXXXX), performs ad-hoc code signing via codesign --force --deep --sign - to bypass Gatekeeper, and executes it</li><li>runscript: runs arbitrary shell commands via /bin/sh or executes AppleScript files via osascript</li><li>rundir: enumerates filesystem metadata from /Applications, ~/Library, and ~/Application Support</li><li>kill: terminates the RAT process</li></ul><h4><strong>Windows</strong></h4><p>A VBScript downloader copies the PowerShell binary to %PROGRAMDATA%\wt.exe (masquerading as Windows Terminal) and executes a hidden PowerShell RAT with execution policy bypass flags.</p><h4><strong>Linux</strong></h4><p>A Python RAT is downloaded to /tmp/ld.py and launched as an orphaned background process via nohup python3, detaching it from the terminal session that spawned it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_FgJ4mEdts0aa95B.png" /></figure><h4>Additional compromised packages</h4><p>Two other packages were observed shipping the malicious plain-crypto-js dependency:</p><ul><li>@qqbrowser/openclaw-qbot@0.0.130 — includes a tampered axios@1.14.1 with the injected dependency (<a href="https://security.snyk.io/vuln/SNYK-JS-QQBROWSEROPENCLAWQBOT-15850776">SNYK-JS-QQBROWSEROPENCLAWQBOT-15850776</a>)</li><li>@shadanai/openclaw (versions 2026.3.31-1, 2026.3.31-2) — vendors plain-crypto-js directly (<a href="https://security.snyk.io/vuln/SNYK-JS-SHADANAIOPENCLAW-15850775">SNYK-JS-SHADANAIOPENCLAW-15850775</a>)</li></ul><p>These secondary packages suggest either coordinated attacker infrastructure or that the malicious plain-crypto-js was being actively used in related campaigns.</p><h4>Who is actually at risk</h4><p>The three-hour publication window (00:21 to 03:29 UTC) is the key constraint. Risk is highest for:</p><ul><li><strong>CI/CD pipelines</strong> that do not pin dependency versions and run npm install on a schedule or on commit — especially those that run overnight or in the early morning UTC.</li><li><strong>Developers</strong> who ran npm install or npm update in that window and happened to pull the affected versions.</li><li><strong>Projects depending on</strong> @qqbrowser/openclaw-qbot or @shadanai/openclaw, whose exposure does not depend on the window.</li></ul><p>If your lockfile (package-lock.json or yarn.lock) was committed before the malicious versions were published and your install did not update it, you were not affected. Lockfiles are your first line of defense here.</p><p>The malicious versions have been removed from the npm registry. However, anyone who installed them during the window should assume a full system compromise: the RAT was live, beaconing, and capable of executing arbitrary follow-on payloads.</p><h4>Snyk remediation and how to check your exposure</h4><p>If you are a user or customer of Snyk, then any of the various Snyk integrations will alert you of any projects that vendor the compromised and malicious version of the axios dependency, whether via the Snyk CLI, the Snyk app integration, or otherwise.</p><p>Snyk’s database includes entries for both <a href="https://security.snyk.io/vuln/SNYK-JS-AXIOS-15850650">SNYK-JS-AXIOS-15850650</a> and <a href="https://security.snyk.io/vuln/SNYK-JS-PLAINCRYPTOJS-15850652">SNYK-JS-PLAINCRYPTOJS-15850652</a>, so snyk test will flag the affected versions and the malicious transitive dependency.</p><p>Additionally, if you’re on the Enterprise plan, Snyk you will see a Zero Day report in the application, similar to how you’d find earlier zero day security incidents such as <a href="https://snyk.io/articles/poisoned-security-scanner-backdooring-litellm/">LiteLLM</a>, <a href="https://snyk.io/blog/embedded-malicious-code-in-tinycolor-and-ngx-bootstrap-releases-on-npm/">Shai-Hulud</a> and <a href="https://snyk.io/blog/embedded-malicious-code-in-tinycolor-and-ngx-bootstrap-releases-on-npm/">others</a>, giving you a system-wide view to easily locate and pin-point affected projects and repositories that have the vulnerable axios dependency:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ol0V_vlOdqI2hjE9.png" /></figure><p>In the case you’re not yet using Snyk, there’s a free tier, and you can easily get started and audit your environment for potential axios compromise or other security issues as follows:</p><pre># Install Snyk CLI if you haven&#39;t already<br>npm install -g snyk<br><br># Authenticate<br>snyk auth<br><br># Test your project<br>snyk test</pre><p>For Bun users: Snyk workaround (native bun.lock support is limited in the Snyk CLI at time of writing):</p><p>The recommended workaround is to generate a yarn.lock compatible lockfile using Bun&#39;s built-in -y flag, which Snyk can parse:</p><pre># 1. Regenerate lockfile in yarn.lock format<br>bun install -y<br><br># 2. Run snyk against the generated yarn.lock<br>snyk test --file=yarn.lock</pre><p>Otherwise, you can follow any of the steps below to locate and check if you’re affected by the axios compromise:</p><p><strong>Step 1: Check your lockfile for affected versions</strong></p><pre># Check for axios 1.14.1 or 0.30.4<br>grep -E &#39;&quot;axios&quot;&#39; package-lock.json | grep -E &#39;1\.14\.1|0\.30\.4&#39;<br><br># Or with yarn<br>grep -E &#39;axios@&#39; yarn.lock | grep -E &#39;1\.14\.1|0\.30\.4&#39;</pre><p><strong>Step 2: Check for the malicious dependency</strong></p><pre># Look for plain-crypto-js in your dependency tree<br>npm ls plain-crypto-js<br><br># Or search node_modules directly<br>find node_modules -name &quot;plain-crypto-js&quot; -type d</pre><p><strong>Step 3: Check for Bun runtime installs for the malicious axios dependency</strong></p><p>If you are using Bun, check your bun.lock (text lockfile, Bun v1.1+):</p><pre>grep -E &#39;axios&#39; bun.lock | grep -E &#39;1\.14\.1|0\.30\.4&#39;</pre><p>Also, check for the malicious transitive dependency:</p><pre>grep &#39;plain-crypto-js&#39; bun.lock</pre><p>Note: Older Bun versions produce a binary bun.lockb. To inspect it, convert first:</p><pre>&gt; bun bun.lockb  # prints human-readable output to stdout<br>&gt; bun bun.lockb | grep -E &#39;axios.*1\.14\.1|axios.*0\.30\.4&#39;<br>&gt; bun bun.lockb | grep &#39;plain-crypto-js&#39;</pre><p><strong>Step 4: Check for IOCs on compromised systems</strong></p><p>If you believe a machine ran npm install in the affected window, look for these indicators:</p><p>| | | | — — | — — | | <strong>Platform</strong> | <strong>IOC</strong> | | macOS | /Library/Caches/com.apple.act.mond binary | | Windows | %PROGRAMDATA%\wt.exe (PowerShell masquerading as Windows Terminal) | | Linux | /tmp/ld.py Python script | | Network | Outbound connections to sfrclak[.]com / 142.11.206.73:8000 |</p><h4>Further npm package manager remediation advice</h4><p><strong>If you are not affected (precautionary):</strong></p><ol><li>Pin axios to a known safe version in your package.json. Any version other than 1.14.1 or 0.30.4 is clean.</li><li>Commit your lockfile and ensure CI uses npm ci (not npm install) to enforce lockfile integrity.</li><li>Add plain-crypto-js to a blocklist in your package manager or security tooling.</li></ol><p>Consider enabling --ignore-scripts for npm installs in CI environments where lifecycle hooks are not needed:</p><pre>npm ci --ignore-scripts</pre><p>This prevents postinstall scripts from running entirely, which would have blocked this attack vector. Be aware that it can break packages that legitimately need post-install steps (native addons, for example).</p><p>Additionally, consider using and rolling to your developers the <a href="https://github.com/lirantal/npq">npq</a> open-source project that introduces security and health signal pre-checks prior to installing dependencies.</p><p>Finally, you’d likely want to review and consult these publicly curated <a href="https://github.com/lirantal/npm-security-best-practices">npm security best practices</a>.</p><p><strong>If you are affected (assume breach):</strong></p><ol><li><strong>Contain immediately</strong>: Isolate any systems that ran npm install in the affected window.</li><li><strong>Rotate all secrets</strong>: Treat every credential on the affected machine as compromised — API keys, SSH keys, cloud credentials, npm tokens, GitHub tokens. Do not rotate in place; revoke and reissue.</li><li><strong>Review for lateral movement</strong>: Check logs for outbound connections to sfrclak[.]com or 142.11.206.73. If the RAT was active, the attacker had arbitrary code execution and may have enumerated or exfiltrated further.</li><li><strong>Rebuild environments</strong>: Do not attempt to clean compromised systems. Rebuild from a known-clean snapshot or base image.</li><li><strong>Audit CI pipelines</strong>: Review build logs for the March 31, 2026 UTC window to determine which pipelines installed the affected versions.</li></ol><h4>The bigger picture: Maintainer account security</h4><p>This attack follows a now-familiar pattern: compromise a legitimate maintainer account, publish a malicious version of a trusted package, and rely on the ecosystem’s implicit trust of registered packages. We’ve seen this playbook used against <a href="https://snyk.io/blog/maintainers-of-eslint-prettier-plugin-attacked-via-npm-supply-chain-malware/">ESLint’s Prettier plugin</a>, against <a href="https://snyk.io/blog/npm-supply-chain-attack-via-open-source-maintainer-compromise/">multiple packages owned by a prolific developer via phishing</a>, and against <a href="https://snyk.io/blog/sha1-hulud-npm-supply-chain-incident/">the Shai-Hulud campaign</a> that compromised over 600 packages.</p><p>What makes Axios particularly significant is the scale: 100 million weekly downloads means even a two-hour malicious window represents an enormous potential blast radius. The attacker also showed meaningful operational sophistication, pre-staging the malicious dependency, using a “clean” version history, double-obfuscating the dropper, building platform-specific RATs, and implementing anti-forensic self-deletion. This was not opportunistic</p><p>For organizations that depend on open source at scale, the lesson is not to stop using npm or to distrust all dependencies. It’s to understand which supply chain controls would have caught this: lockfile enforcement, postinstall script auditing, and runtime monitoring for unexpected process spawns or outbound network connections from build environments. Snyk’s <a href="https://snyk.io/blog/npm-security-preventing-supply-chain-attacks/">guide to preventing npm supply chain attacks</a> and <a href="https://snyk.io/blog/why-npm-lockfiles-can-be-a-security-blindspot-for-injecting-malicious-modules/">lockfile security considerations</a> are worth revisiting in the context of this incident.</p><p>If you want to understand the class of attack at a conceptual level, Snyk Learn has a lesson specifically on <a href="https://learn.snyk.io/lesson/compromise-of-legitimate-package/">compromise of legitimate packages</a> that walks through the attack patterns and defensive controls.</p><h4>Timeline</h4><p>| | | | — — | — — | | <strong>Time (UTC)</strong> | <strong>Event</strong> | | 2026–03–30 23:59 | plain-crypto-js@4.2.1 published to npm | | 2026-03-31 00:21 | axios@1.14.1 published with malicious dependency | | 2026-03-31 ~00:27 | Socket&#39;s scanner detects malicious version (within ~6 minutes) | | 2026-03-31 01:00 | axios@0.30.4 published with malicious dependency | | 2026-03-31 03:29 | Both malicious axios versions removed from npm |</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=373f81a3a169" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The 5 Principles of Snyk’s Developer Experience]]></title>
            <link>https://medium.com/@snyksec/the-5-principles-of-snyks-developer-experience-cb36a86c6356?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/cb36a86c6356</guid>
            <category><![CDATA[vulnerabilityinsights]]></category>
            <category><![CDATA[cicd]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[scm]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Fri, 27 Mar 2026 02:00:44 GMT</pubDate>
            <atom:updated>2026-03-27T02:00:44.360Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Mk6RGO4wa7n0Bvj9.png" /></figure><p>In the age of AI-driven development, speed is the new baseline. But as AI agents accelerate the pace of coding, they also amplify the risk of security bottlenecks. At Snyk, we believe a superior Developer Experience (DX) is the only way to secure this new frontier. DX is not just a layer on top of the product. It is the foundation that allows developers to unleash AI innovation securely.</p><p>We think of DX as a system of decisions that compound over time. Every interaction, every default, and every piece of information a developer encounters shapes how effectively they can use our platform.</p><p>The five principles that emerged from our journey of evolving and refining the Snyk platform now serve as the foundation for delivering an excellent DX. These principles continuously guide the thousands of small decisions we make across the entire product surface, underscoring our commitment to this ongoing process.</p><ol><li>Go to where developers work, don’t ask them to come to you</li></ol><p>The most common challenge in developer tooling is the assumption that a beautiful dashboard is the primary destination. Experience shows that developers prioritize their existing workflows, which they have optimised over the years: their IDE, the terminal, their Git flow, and their pull request (PR) process. Context switching out of those workflows has a tremendous cost.</p><p>We saw this directly at Snyk. We had built a detailed findings interface in the Snyk platform with prioritized vulnerability lists, remediation guidance, and full data flow traces. Developers did not visit it. We learned that even the most valuable data is often bypassed if it requires a context switch. By moving security into the existing PR conversation, we aligned with the developer’s natural flow.</p><p>We changed our model. We stopped asking developers to come to Snyk and started bringing Snyk to them. Security findings became part of the pull request conversation, surfaced directly in the SCM in the same thread where code review was already happening. Same information. Zero context switch, but dramatically different adoption.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*92mVPPTft7dxkWbo.png" /></figure><p>The principle goes beyond PRs. It is why we invest heavily in IDE plugins, AI coding assistant and, CLI integrations, and CI/CD gates. The question we ask is always the same: where is the developer already working, and how do we show up there?</p><p>There’s a broader shift underway from traditional IDEs to agentic development environments. At the velocity that AI coding assistants drive, context switching becomes a much bigger bottleneck, since higher agent productivity amplifies the cost of breaking flow. As agentic platforms become a core part of developer workflows, Snyk is already integrated in those environments to <a href="https://snyk.io/solutions/secure-at-inception-for-ai/">secure AI-generated code at inception</a>.</p><ol><li>Developers are not security specialists, so speak their language</li></ol><p>When we designed security findings in PRs, we optimized for the developer’s mental mode. CVSS scores or CWE classifications made sense to security professionals, but to developers they were jargon that required translation.</p><p>We surface a contextual, natural-language description generated from Snyk’s own data flow analysis. For a SQL injection vulnerability, for example, rather than citing a generic advisory, we would explain that unsanitised user input from the HTTP request body is directly interpolated into an SQL query string, naming the source, the sink, and the mechanism in the developer’s own code.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/671/0*Jisum9lPH83oqAMZ.png" /></figure><p>That one sentence tells a developer, who is often not a security specialist, exactly what and where (to the exact file and line number) the problem is, in terms they already understand. The full trace is still available for those who want it. But most developers do not need to go deeper. They need to understand enough to act.</p><p>And every surface of Snyk’s product attempts to apply this principle. We aim to answer, “What does this developer need to understand, at this moment, given what they know?”</p><ol><li>Every piece of information is either signal or noise — there’s no middle ground</li></ol><p>There is a tendency in security tools to surface everything. It feels comprehensive, but it often overwhelms rather than helps. When we examined our PR experience, we reframed the problem: what information truly belongs in the developer’s view?</p><p>We chose to be deliberate. What we show depends on the workflow. In prevention, developers need fast, actionable guidance. In remediation, they need depth and more paths when they are optimising for risk reduction. In a PR, every piece of information should either answer an immediate question or enable a clear next step. This context matters a lot as developers in a PR are focused on shipping the functionality. Vulnerability resolution becomes secondary. This is very different from a backlog context, where fixing issues is the primary task.</p><p>Progressive disclosure also helps balance this. The primary view focuses on the issue, its severity, and the next step. Deeper layers provide additional context, such as data flows, when needed. This keeps the experience focused and noiseless.</p><ol><li>Detection is not the product, resolution is</li></ol><p>For a long time, security tools measured success by what they found. The more vulnerabilities surfaced, the more complete the tool felt. What this metric missed was the thing that actually mattered: whether those vulnerabilities got fixed.</p><p>Most developers do not want awareness. They want to know what to do next. A vulnerability report with no clear next step is just noise with a severity score, and developers, quite rationally, learn to treat it that way.</p><p>The motivation behind building fix suggestions directly into the PR experience was to close the loop: not just identify vulnerabilities, but fix them without ever leaving the workflow. When Snyk detects a vulnerability in code, it does not just flag it. It proposes a concrete, AI-generated fix as a diff, inline in the PR as a review comment, red lines out, green lines in, applicable as a commit with a single action.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/625/0*UTlVyyrvHWFZCk8o.png" /></figure><p>For the SQL injection example, rather than flagging the string interpolation and leaving the developer to figure out the solution, the AI Fix suggestion replaces it with a parameterized query. The developer does not need to research secure SQL practices, the fix is already there. The path to resolution becomes the default path.</p><p>Good DX tells them how to fix an issue, but a great DX makes fixing the default path.</p><ol><li>Trust is built when developers understand why, not just what</li></ol><p>When we launched the suggested fix, we saw a pattern repeatedly in developer feedback: the question was not “does the fix work?” It was “Why does this fix work?” Developers were applying suggestions and then struggling to explain them to colleagues. The fix was solving the immediate problem and creating a different one.</p><p>So we added something that turned out to be one of the highest-signal changes we made to the PR check experience: a plain-English explanation of exactly why the suggested change eliminates the vulnerability. Not a link to documentation. Not a reference to the CVE. An explanation, derived from the code’s specifics, of how the fix addresses the vulnerability.</p><p>For the SQL injection example, the explanation would describe how replacing dynamic string interpolation with parameterized queries ensures that user input is treated as data rather than executable code and why that distinction closes the vulnerability.</p><p>The combination of these two features, suggested fix and its explanation, mirrors how a senior security engineer would actually review code with a colleague: first making sure they understand the problem, then showing them what good looks like.</p><p>Trust is built through reasoning. Every time Snyk explains its thinking, it gives developers the tools to develop their own security instincts, which is, ultimately, the most durable outcome.</p><h4>Great developer experience does not happen by accident</h4><p>These five principles got solidified by watching what broke, understanding why, and changing our approach.</p><p>Great developer experience requires principles like these that can guide thousands of small decisions across product, engineering, and design. As we move into a future where AI and human developers collaborate more closely, these principles ensure that security remains a tailwind, not a hurdle. At Snyk, we are constantly striving to get better; one decision, one fix, and one successful deployment at a time.</p><p>See how the developer experience Snyk has built can accelerate your program. <a href="https://snyk.io/schedule-a-demo/">Get a demo today</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=cb36a86c6356" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I Read Cursor’s Security Agent Prompts, So You Don’t Have To]]></title>
            <link>https://medium.com/@snyksec/i-read-cursors-security-agent-prompts-so-you-don-t-have-to-21d9893b2a8e?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/21d9893b2a8e</guid>
            <category><![CDATA[vscode]]></category>
            <category><![CDATA[secrets]]></category>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[sbom]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Thu, 19 Mar 2026 02:00:44 GMT</pubDate>
            <atom:updated>2026-03-19T02:00:44.308Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*X9Zwj7NNJh3kWC4c.png" /></figure><p>This is the prompt — the whole thing:</p><pre>You are a security reviewer for pull requests.<br>Goal: Detect and clearly explain real vulnerabilities introduced or exposed by this PR. Review only added or modified code unless unchanged code is required to prove exploitability.<br>1. Inspect the PR diff and surrounding code paths.<br>2. For every candidate issue, trace attacker-controlled input to the real sink.<br>3. Verify whether existing controls already block exploitation: auth or permission checks, schema validation or type constraints, framework escaping, ORM parameterization, allowlists or bounded constants.<br>4. Report only medium, high, or critical findings with a plausible attack path and concrete code evidence.<br>Prioritize: injection risks, authn or authz bypasses, permission-boundary mistakes, secret leakage or insecure logging, SSRF, XSS, request forgery, path traversal, and unsafe deserialization, dependency or supply-chain risk introduced by the change.</pre><p>It’s the core of Cursor’s <a href="https://cursor.com/marketplace/automations/find-vulnerabilities">Agentic Security Review</a> automation, the one that’s been reviewing 3,000+ internal PRs per week and catching 200+ real vulnerabilities. A role assignment, a goal, a four-step methodology, and a priority list. No elaborate chain-of-thought scaffolding. No pages of few-shot examples. No complex JSON output schemas.</p><p>If you’d told me two years ago that a prompt this concise could run at that scale and produce results worth blocking CI on, I would’ve been skeptical. We’ve all been conditioned to think AI prompting requires elaborate engineering: pages of instructions, carefully crafted examples, detailed output specifications. Cursor’s open-sourced templates suggest that for security review, a clear role definition and a structured methodology might be all you need.</p><p>That’s a remarkable signal about where frontier models are right now. The model already “knows” what SQL injection looks like, how authentication bypasses work, and what unsafe deserialization means. It just needs a framework for applying that knowledge systematically. If models can do this much with so little instruction today, the trajectory over the next six to twelve months is genuinely exciting.</p><p>Of course, the prompt is just the tip of the iceberg. The real engineering achievement here isn’t the 15 lines of instructions; it’s everything underneath: the custom MCP server handling persistence and deduplication, the Terraform-managed deployment pipeline, the webhook orchestration that knows when to trigger which agent, and the state management that lets agents compare findings across runs. The prompt is simple <em>because</em> the surrounding infrastructure is not. That’s an important distinction, and it’s actually the more interesting story: Cursor didn’t just write clever prompts; they built a production-grade agent orchestration platform and then put simple prompts on top of it.</p><p>But before we get ahead of ourselves, let’s look at the full picture of what Cursor built, what’s impressive about each piece, and where the gaps are. To do that, it helps to have a framework for thinking about security in agentic development environments.</p><h4><strong>The three dimensions of agentic security</strong></h4><p>At Snyk, we think about securing agentic development across three dimensions: <strong>the code the agents generate</strong>, <strong>the supply chain the agents depend on</strong>, and <strong>the behavior of the agents themselves</strong>. The code dimension is the one most people focus on: is the AI writing secure code, and are we catching vulnerabilities before they ship? The supply chain dimension is newer and less obvious: MCP servers, automation templates, agent skills, and plugins are all components your agents depend on, and they carry the same risks as any third-party dependency. The behavior dimension is the most nuanced: are the agents acting within their intended scope, are they making decisions they shouldn’t, and do you have visibility into what they’re actually doing across your organization?</p><p>Cursor’s security agents primarily operate in the first dimension, catching vulnerabilities in code. That’s valuable and necessary work. But as you’ll see in the walkthrough below, the other two dimensions matter just as much, especially at enterprise scale. And the organizations getting the best results, like <a href="https://labelbox.com/">Labelbox</a>, which cleared a multi-year vulnerability backlog by running Cursor and Snyk together, are the ones addressing all three.</p><h4><strong>The four agents: what’s strong, what’s missing</strong></h4><p>Today, Travis McPeak published a <a href="https://cursor.com/blog/security-agents">blog post</a> detailing how Cursor’s security team built four autonomous security agents on top of <a href="https://cursor.com/features/automations">Cursor Automations</a> (their cloud agent platform) and open-sourced the templates for anyone to use. Their PR velocity had increased 5x over nine months, and traditional static analysis couldn’t keep up. So they built agents that could.</p><p>The whole system sits on a foundation that’s worth noting: a custom MCP (Model Context Protocol) server deployed as a serverless Lambda function. It provides persistent state tracking, a deduplication layer powered by Gemini Flash 2.5 (so different agents don’t file the same finding using different words), and consistent Slack output formatting with dismiss/snooze actions. Everything is managed through Terraform. Solid engineering.</p><p>Here’s each agent, along with what I think is genuinely impressive and what an enterprise security team should be thinking about.</p><h4><strong>Agentic Security Review: the PR gatekeeper</strong></h4><p><strong>What it does:</strong> Reviews every pull request against Cursor’s specific threat model. Posts findings to a private Slack channel, comments directly on PRs, and can block the CI pipeline on security findings. The key differentiator from a general-purpose review bot like <a href="https://cursor.com/bugbot">Cursor’s Bugbot</a> is the ability to prompt-tune specifically for security without blocking on every code quality nit.</p><p><strong>What’s impressive:</strong> The results speak for themselves. In the last two months, this agent has run on thousands of PRs and prevented hundreds of issues from reaching production. And as I showed above, the prompt driving all of this is remarkably concise. The signal-to-noise ratio, for an LLM-based reviewer, is genuinely surprising.</p><p><strong>What to think about:</strong> LLMs can confidently flag a “critical SQL injection” in a parameterized query that’s perfectly safe, because the model misread the data flow. They can also miss a real vulnerability because attention drifts across a large codebase. In a security context, both failure modes are expensive: false positives erode developer trust, and false negatives leave real vulnerabilities in production. When your detection layer is entirely probabilistic, you’re accepting both risks. The principle here is simple: the agent cannot mark its own homework. You need an independent validation layer confirming what the LLM found. That’s why layering deterministic SAST analysis (like <a href="https://snyk.io/product/snyk-code/">Snyk Code</a>) underneath the LLM review matters. The deterministic engine catches known patterns with mechanical precision; the LLM catches the novel, cross-file logic bugs that rule-based tools miss. You want both.</p><p>Also worth noting: look at the end of the prompt template.</p><pre>Post a short Slack summary with the overall outcome and the top findings, if any.<br>Do not push changes or open fix PRs from this workflow.</pre><p>The review agent explicitly does <em>not</em> push fixes. It finds, it reports, it blocks, but a human still decides what to do. Even Cursor’s own security team keeps humans in the loop for their own tooling. That should tell you something about where autonomous AI security actually stands today: it’s a powerful accelerator, not a replacement for human judgment. At least not yet.</p><h4><strong>Vuln Hunter: scanning the existing codebase</strong></h4><p><strong>What it does:</strong> Instead of watching new code come in, Vuln Hunter scans the existing codebase. It divides the repo into logical segments, searches each one for vulnerabilities, and the security team triages findings from Slack. They often use @Cursor directly from Slack to generate fix PRs.</p><p><strong>What’s impressive:</strong> Pointing LLM reasoning at legacy code is smart. This is where AI shines: understanding complex, undocumented codebases and identifying vulnerabilities that static rules would miss. Cross-file logic bugs, broken access control patterns, and authentication bypasses buried in years-old code. Traditional scanners struggle here because they need well-defined patterns to match against.</p><p><strong>What to think about:</strong> This is the agent most likely to produce false positives at scale. Scanning an entire codebase (rather than a focused PR diff) means the model is working with a much larger context, and that’s where LLM attention drift becomes a real concern. BaxBench, a benchmark from ETH Zurich, UC Berkeley, and INSAIT, found that 62% of solutions generated by even the best models are either incorrect or contain security vulnerabilities. When the model is reasoning about large, complex codebases, the “agent can’t mark its own homework” principle applies doubly: you want deterministic validation confirming or disproving what the LLM found before anyone spends time on a fix.</p><h4><strong>Anybump: automated dependency patching</strong></h4><p><strong>What it does:</strong> Tackles the most tedious job in application security: dependency patching. It runs a reachability analysis to filter down to actually impactful vulnerabilities, traces code paths, runs tests, checks for breakage, and opens a PR when tests pass. All automated, with Cursor’s canary deployment pipeline as a final safety gate.</p><p>Here’s the core of the prompt:</p><pre>You are a dependency-vulnerability remediation automation.<br>Goal: When a new Linear issue describes a vulnerable dependency, determine whether it can be upgraded safely and open a PR only when confidence is high.<br>Decision rule: Create PR only when upgrade is clearly safe; otherwise do not make changes.</pre><p><strong>What’s impressive:</strong> This addresses a pain point that every security team knows intimately. Dependency patching is so time-intensive that most teams eventually give up and push it to engineering, where it sits in backlogs for months (or years). Automating the reachability analysis, testing, and PR generation is a real workflow improvement.</p><p><strong>What to think about:</strong> Anybump solves the hardest part of dependency management: actually getting the patch applied, tested, and into a PR. Where it stops is everything around that patch. There’s no SBOM generation, no license compliance check, and no audit trail for your compliance team. Those aren’t shortcomings of the agent so much as they are a different category of problem entirely. Automated patching and enterprise software composition analysis overlap, but they’re not the same thing. If you’re in a regulated industry or shipping software under customer contracts with compliance requirements, you’ll still need that broader infrastructure alongside the automation.</p><p>If you’re a startup with one repo, Anybump might be all you need. If you’re operating at enterprise scale (hundreds of repositories, regulated industries, customer contracts requiring specific compliance certifications), you need to know exactly what’s in your software, what licenses you’re using, and you need to be able to prove it. That’s the difference between automated patching and enterprise-grade software composition analysis: they overlap, but they solve fundamentally different problems.</p><h4><strong>Invariant Sentinel: compliance drift detection</strong></h4><p><strong>What it does:</strong> Runs daily to check for drift against a set of security and compliance properties. It spins up subagents for each logical segment of the repo, compares the current state against previous runs using automation memory, and alerts the security team when something changes.</p><p><strong>What’s impressive:</strong> The statefulness here is clever. Using the automation’s memory feature to compare across runs means the agent can detect <em>changes</em> in security posture, not just point-in-time snapshots. The ability to write and execute validation code alongside the analysis adds rigor that pure LLM reasoning alone wouldn’t have.</p><p><strong>What to think about:</strong> Compliance drift detection is valuable, but compliance <em>governance</em> is a broader challenge. Invariant Sentinel tells you when something changed; it doesn’t enforce policy-as-code across hundreds of repos, generate compliance reports for auditors, or give your CISO a dashboard showing risk trends over time. Those are platform-level capabilities that sit above what any single agent can provide.</p><h4><strong>This is still CI, and CI is not where security should start</strong></h4><p>Here’s the thing that’s easy to miss when you’re looking at the architecture diagrams and agent orchestration: what Cursor built is, at its core, a really sophisticated CI layer. The agents trigger on GitHub webhooks when PRs are opened or pushed. They review diffs, post comments, block pipelines, and open fix PRs. That’s fundamentally the same control point that traditional security tools have been operating at for years, but it’s smarter now because there’s an LLM doing the analysis instead of a regex-based rule engine.</p><p>And look, that’s a real improvement — no argument there. But CI is still the <em>wrong place</em> for security to start.</p><h4><strong>Why CI is too late for security</strong></h4><p>Think about it: if you’re using Cursor to write code in your IDE and the vulnerable code makes it all the way to a PR before anyone catches it, you’ve already lost time. The developer context-switches away from the code they wrote, the PR review cycle adds latency, and if the CI check blocks, now the developer has to go back, understand the finding, make a fix, push again, and wait for another review cycle. It’s better than discovering the vulnerability in production, sure, but it’s still the “scan and ticket” model, just compressed into the PR timeline.</p><h4><strong>What shifting left actually looks like</strong></h4><p>What you really want is security tooling running directly inside your IDE, triggering scans and remediations immediately as new code is introduced. That way, vulnerable code never makes it into a commit in the first place. Your git history stays clean. Your PRs don’t get blocked because the security issues are caught and fixed in the flow before the developer even stages the change. And you dramatically reduce the need for expensive human-in-the-loop reviews, because if the vulnerability never makes it into a PR, nobody needs to triage it, and nobody’s pipeline gets blocked at 4:30 PM on a Friday.</p><h4><strong>IDE-first security vs CI-first security</strong></h4><p>With <a href="https://snyk.io/product/studio/">Snyk Studio</a>, this is exactly how it works. Security guardrails intercept insecure code <em>before the developer even accepts the AI suggestion</em>. The AI assistant runs snyk_code_scan on new code in real time, and if security issues are found, it fixes them right there in the flow. It works directly in Cursor and every other major AI coding assistant. No CI pipeline block, context switch, or cluttered git history.</p><h4><strong>Why layered security is necessary</strong></h4><p>Now imagine running <em>both</em>: Snyk Studio at the IDE layer catching the vast majority of issues at the point of creation, and Cursor’s security agents at the CI layer as a safety net for anything that slips through. You get defense in depth, with most of the work handled silently in the IDE and the expensive human reviews reserved for genuinely complex cases. Given what BaxBench tells us about the insecurity rate of AI-generated code (62% of solutions from top models contain vulnerabilities or are incorrect), this kind of layered protection isn’t a nice-to-have. It’s essential.</p><p>And even beyond the CI question, a security <em>program</em> is much more than CI checks. It’s centralized dashboards aggregating risk across hundreds of repositories. Its SAST findings correlated with DAST results, confirming that the same endpoint is exploitable at runtime. It’s your SCA engine identifying that the ORM library you’re using has a known CVE that bypasses parameterization in certain edge cases, and connecting that to the SAST finding in the same controller method. Individually, each of those is a data point. Together, correlated on the same platform, they tell you exactly what’s happening, why, and what to fix first. A code scanner, even an autonomous one with four agents and impressive PR throughput, doesn’t answer those questions. A security platform does.</p><h4><strong>Validation, not competition (and we’re already integrated)</strong></h4><p>I <a href="https://snyk.io/articles/anthropic-launches-claude-code-security/">wrote a few weeks ago</a> about Anthropic’s Claude Code Security launch and made the case that AI coding platforms investing in security is validation, not disruption. The same logic applies here: When the biggest names in AI development tooling start building security features, it means the industry has figured out that security in AI-assisted development is infrastructure, not an optional add-on.</p><h4><strong>How Cursor and Snyk work together</strong></h4><p>Cursor and Snyk aren’t ships passing in the night; Snyk is already in <a href="https://cursor.directory/plugins/mcp-snyk">Cursor’s MCP Directory</a>. We have a <a href="https://snyk.io/snyk-for-cursor/">verified extension</a>. We ship <a href="https://evo.ai.snyk.io/">Evo Agent Guard via Hooks</a>. Cursor is our <a href="https://snyk.io/news/snyk-recognizes-top-global-partners-for-securing-the-shift-to-autonomous/">AI Innovation Partner of the Year</a> as of two weeks ago. This isn’t an adversarial relationship; it’s the two-tier architecture in action. Think of it this way: AI agents are the researchers, discovering vulnerabilities and proposing fixes with speed and creativity. Deterministic validation is a peer review that independently confirms that the findings are real and the fixes are sound.</p><h4><strong>The two-tier security architecture</strong></h4><p>You wouldn’t publish a paper without peer review, and you shouldn’t ship a security fix without deterministic validation. Cursor provides the research layer (agent orchestration, webhook triggers, automated PR generation). Snyk provides the peer review, governance, and breadth of coverage across the entire software supply chain.</p><p>And this is already working in the real world: <a href="https://snyk.io/blog/from-two-years-to-two-weeks-how-labelbox-erased-its-security-debt-with-snyks/">Labelbox runs Cursor + Snyk together</a> in production and was able to clear a multi-year vulnerability backlog. Cursor automates the remediation workflows; Snyk ensures those fixes are real and enterprise-grade.</p><h4><strong>The agentic supply chain is the new attack surface</strong></h4><p>Take a step back from Cursor’s specific implementation and look at what’s actually happening across the industry. Over the past year, an entirely new software supply chain has emerged, and it’s growing fast: MCP servers, agent skills, automation templates, AI tool plugins, and custom model configurations. Call it the <em>agentic supply chain</em>. It’s the collection of components that AI-powered development tools depend on to function, and right now, almost no one is securing them.</p><p>This isn’t a theoretical concern. In January 2026, Snyk’s research team <a href="https://snyk.io/articles/your-ai-skills-are-the-new-agentic-attack-surface/">discovered hundreds of malicious skills on ClawHub</a>, the first major supply-chain attack targeting AI agent ecosystems. Think about that in the context of what Cursor just open-sourced: automation templates that run with access to your codebase, your CI pipelines, your Slack channels, and your GitHub repos. An MCP server deployed as a Lambda function that processes every security finding in your organization. These are powerful, privileged components. And the ecosystem for distributing and discovering them (marketplaces, template galleries, open source repos) is growing much faster than the security practices around it.</p><p>The traditional software supply chain took decades to develop the tooling we rely on today: package registries with signature verification, SBOMs, license scanners, and vulnerability databases. The agentic supply chain lacks that infrastructure yet, and it’s already being adopted at scale. Every organization installing MCP servers, importing automation templates, or connecting agent skills to their development environment is extending their attack surface in ways that code-level scanning, no matter how sophisticated, simply doesn’t address.</p><p>This is exactly the problem <a href="https://evo.ai.snyk.io/">Evo by Snyk</a> was built to solve. Evo is our agentic security orchestration system designed for the AI-native development landscape: AI threat modeling that builds live threat models from your code, AI red teaming that runs continuous adversarial testing against your models and agents, AI-SPM so you know exactly which AI models and frameworks are running across your organization (including the “shadow AI” that security teams don’t even know about), and Agent Scanning for visibility into all toolchains with real-time guardrails.</p><p>When you’re running autonomous security agents across your codebase, you need to secure those agents too. The tools in your agentic supply chain are every bit as critical as the npm packages in your node_modules, and they deserve the same rigor.</p><h4><strong>What’s next: the questions this raises</strong></h4><p>Rather than wrapping up with a thesis I’ve already written about, let me end with the forward-looking questions that Cursor’s announcement opens up. Because I think this is more interesting than looking backward.</p><h4><strong>Try it yourself</strong></h4><p><a href="https://snyk.io/product/studio/"><strong>Snyk Studio</strong></a> is free, and setup takes minutes. It works in Cursor (along with virtually every other AI coding assistant). You’ll get deterministic scanning and the /snyk-fix remediation command running in your IDE in about five minutes. If you want to see layered security in practice, this is the fastest path.</p><p><a href="https://evo.ai.snyk.io/"><strong>Evo by Snyk</strong></a> is where you go when you need to secure the AI stack itself: threat modeling, red teaming, AI-SPM, agent scanning, and agentic security orchestration. If your organization is adopting AI coding tools at scale (and let’s be real, you probably are), Evo gives you the visibility and guardrails to do it safely.</p><p><strong>Cursor’s automation templates</strong> are <a href="https://github.com/mcpeak/cursor-security-automation">open source on GitHub</a>. If you’re a Cursor user, they’re worth exploring. And if you’re running them alongside Snyk, you’ll get the best of both worlds: agent-powered automation with enterprise-grade validation underneath.</p><p>The pieces are all here. Time to put them together.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=21d9893b2a8e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[I Read Cursor’s Security Agent Prompts, So You Don’t Have To]]></title>
            <link>https://medium.com/@snyksec/i-read-cursors-security-agent-prompts-so-you-don-t-have-to-eb8a46859e1d?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/eb8a46859e1d</guid>
            <category><![CDATA[secrets]]></category>
            <category><![CDATA[vscode]]></category>
            <category><![CDATA[terraform]]></category>
            <category><![CDATA[sbom]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Wed, 18 Mar 2026 02:00:49 GMT</pubDate>
            <atom:updated>2026-03-18T02:00:49.477Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*lFlCO0PdfRw2tCIc.png" /></figure><p>This is the prompt — the whole thing:</p><pre>You are a security reviewer for pull requests.<br>Goal: Detect and clearly explain real vulnerabilities introduced or exposed by this PR. Review only added or modified code unless unchanged code is required to prove exploitability.<br>1. Inspect the PR diff and surrounding code paths.<br>2. For every candidate issue, trace attacker-controlled input to the real sink.<br>3. Verify whether existing controls already block exploitation: auth or permission checks, schema validation or type constraints, framework escaping, ORM parameterization, allowlists or bounded constants.<br>4. Report only medium, high, or critical findings with a plausible attack path and concrete code evidence.<br>Prioritize: injection risks, authn or authz bypasses, permission-boundary mistakes, secret leakage or insecure logging, SSRF, XSS, request forgery, path traversal, and unsafe deserialization, dependency or supply-chain risk introduced by the change.</pre><p>It’s the core of Cursor’s <a href="https://cursor.com/marketplace/automations/find-vulnerabilities">Agentic Security Review</a> automation, the one that’s been reviewing 3,000+ internal PRs per week and catching 200+ real vulnerabilities. A role assignment, a goal, a four-step methodology, and a priority list. No elaborate chain-of-thought scaffolding. No pages of few-shot examples. No complex JSON output schemas.</p><p>If you’d told me two years ago that a prompt this concise could run at that scale and produce results worth blocking CI on, I would’ve been skeptical. We’ve all been conditioned to think AI prompting requires elaborate engineering: pages of instructions, carefully crafted examples, detailed output specifications. Cursor’s open-sourced templates suggest that for security review, a clear role definition and a structured methodology might be all you need.</p><p>That’s a remarkable signal about where frontier models are right now. The model already “knows” what SQL injection looks like, how authentication bypasses work, and what unsafe deserialization means. It just needs a framework for applying that knowledge systematically. If models can do this much with so little instruction today, the trajectory over the next six to twelve months is genuinely exciting.</p><p>Of course, the prompt is just the tip of the iceberg. The real engineering achievement here isn’t the 15 lines of instructions; it’s everything underneath: the custom MCP server handling persistence and deduplication, the Terraform-managed deployment pipeline, the webhook orchestration that knows when to trigger which agent, and the state management that lets agents compare findings across runs. The prompt is simple <em>because</em> the surrounding infrastructure is not. That’s an important distinction, and it’s actually the more interesting story: Cursor didn’t just write clever prompts; they built a production-grade agent orchestration platform and then put simple prompts on top of it.</p><p>But before we get ahead of ourselves, let’s look at the full picture of what Cursor built, what’s impressive about each piece, and where the gaps are. To do that, it helps to have a framework for thinking about security in agentic development environments.</p><h4><strong>The three dimensions of agentic security</strong></h4><p>At Snyk, we think about securing agentic development across three dimensions: <strong>the code the agents generate</strong>, <strong>the supply chain the agents depend on</strong>, and <strong>the behavior of the agents themselves</strong>. The code dimension is the one most people focus on: is the AI writing secure code, and are we catching vulnerabilities before they ship? The supply chain dimension is newer and less obvious: MCP servers, automation templates, agent skills, and plugins are all components your agents depend on, and they carry the same risks as any third-party dependency. The behavior dimension is the most nuanced: are the agents acting within their intended scope, are they making decisions they shouldn’t, and do you have visibility into what they’re actually doing across your organization?</p><p>Cursor’s security agents primarily operate in the first dimension, catching vulnerabilities in code. That’s valuable and necessary work. But as you’ll see in the walkthrough below, the other two dimensions matter just as much, especially at enterprise scale. And the organizations getting the best results, like <a href="https://labelbox.com/">Labelbox</a>, which cleared a multi-year vulnerability backlog by running Cursor and Snyk together, are the ones addressing all three.</p><h4><strong>The four agents: what’s strong, what’s missing</strong></h4><p>Today, Travis McPeak published a <a href="https://cursor.com/blog/security-agents">blog post</a> detailing how Cursor’s security team built four autonomous security agents on top of <a href="https://cursor.com/features/automations">Cursor Automations</a> (their cloud agent platform) and open-sourced the templates for anyone to use. Their PR velocity had increased 5x over nine months, and traditional static analysis couldn’t keep up. So they built agents that could.</p><p>The whole system sits on a foundation that’s worth noting: a custom MCP (Model Context Protocol) server deployed as a serverless Lambda function. It provides persistent state tracking, a deduplication layer powered by Gemini Flash 2.5 (so different agents don’t file the same finding using different words), and consistent Slack output formatting with dismiss/snooze actions. Everything is managed through Terraform. Solid engineering.</p><p>Here’s each agent, along with what I think is genuinely impressive and what an enterprise security team should be thinking about.</p><h4><strong>Agentic Security Review: the PR gatekeeper</strong></h4><p><strong>What it does:</strong> Reviews every pull request against Cursor’s specific threat model. Posts findings to a private Slack channel, comments directly on PRs, and can block the CI pipeline on security findings. The key differentiator from a general-purpose review bot like <a href="https://cursor.com/bugbot">Cursor’s Bugbot</a> is the ability to prompt-tune specifically for security without blocking on every code quality nit.</p><p><strong>What’s impressive:</strong> The results speak for themselves. In the last two months, this agent has run on thousands of PRs and prevented hundreds of issues from reaching production. And as I showed above, the prompt driving all of this is remarkably concise. The signal-to-noise ratio, for an LLM-based reviewer, is genuinely surprising.</p><p><strong>What to think about:</strong> LLMs can confidently flag a “critical SQL injection” in a parameterized query that’s perfectly safe, because the model misread the data flow. They can also miss a real vulnerability because attention drifts across a large codebase. In a security context, both failure modes are expensive: false positives erode developer trust, and false negatives leave real vulnerabilities in production. When your detection layer is entirely probabilistic, you’re accepting both risks. The principle here is simple: the agent cannot mark its own homework. You need an independent validation layer confirming what the LLM found. That’s why layering deterministic SAST analysis (like <a href="https://snyk.io/product/snyk-code/">Snyk Code</a>) underneath the LLM review matters. The deterministic engine catches known patterns with mechanical precision; the LLM catches the novel, cross-file logic bugs that rule-based tools miss. You want both.</p><p>Also worth noting: look at the end of the prompt template.</p><pre>Post a short Slack summary with the overall outcome and the top findings, if any.<br>Do not push changes or open fix PRs from this workflow.</pre><p>The review agent explicitly does <em>not</em> push fixes. It finds, it reports, it blocks, but a human still decides what to do. Even Cursor’s own security team keeps humans in the loop for their own tooling. That should tell you something about where autonomous AI security actually stands today: it’s a powerful accelerator, not a replacement for human judgment. At least not yet.</p><h4><strong>Vuln Hunter: scanning the existing codebase</strong></h4><p><strong>What it does:</strong> Instead of watching new code come in, Vuln Hunter scans the existing codebase. It divides the repo into logical segments, searches each one for vulnerabilities, and the security team triages findings from Slack. They often use @Cursor directly from Slack to generate fix PRs.</p><p><strong>What’s impressive:</strong> Pointing LLM reasoning at legacy code is smart. This is where AI shines: understanding complex, undocumented codebases and identifying vulnerabilities that static rules would miss. Cross-file logic bugs, broken access control patterns, and authentication bypasses buried in years-old code. Traditional scanners struggle here because they need well-defined patterns to match against.</p><p><strong>What to think about:</strong> This is the agent most likely to produce false positives at scale. Scanning an entire codebase (rather than a focused PR diff) means the model is working with a much larger context, and that’s where LLM attention drift becomes a real concern. BaxBench, a benchmark from ETH Zurich, UC Berkeley, and INSAIT, found that 62% of solutions generated by even the best models are either incorrect or contain security vulnerabilities. When the model is reasoning about large, complex codebases, the “agent can’t mark its own homework” principle applies doubly: you want deterministic validation confirming or disproving what the LLM found before anyone spends time on a fix.</p><h4><strong>Anybump: automated dependency patching</strong></h4><p><strong>What it does:</strong> Tackles the most tedious job in application security: dependency patching. It runs a reachability analysis to filter down to actually impactful vulnerabilities, traces code paths, runs tests, checks for breakage, and opens a PR when tests pass. All automated, with Cursor’s canary deployment pipeline as a final safety gate.</p><p>Here’s the core of the prompt:</p><pre>You are a dependency-vulnerability remediation automation.<br>Goal: When a new Linear issue describes a vulnerable dependency, determine whether it can be upgraded safely and open a PR only when confidence is high.<br>Decision rule: Create PR only when upgrade is clearly safe; otherwise do not make changes.</pre><p><strong>What’s impressive:</strong> This addresses a pain point that every security team knows intimately. Dependency patching is so time-intensive that most teams eventually give up and push it to engineering, where it sits in backlogs for months (or years). Automating the reachability analysis, testing, and PR generation is a real workflow improvement.</p><p><strong>What to think about:</strong> Anybump solves the hardest part of dependency management: actually getting the patch applied, tested, and into a PR. Where it stops is everything around that patch. There’s no SBOM generation, no license compliance check, and no audit trail for your compliance team. Those aren’t shortcomings of the agent so much as they are a different category of problem entirely. Automated patching and enterprise software composition analysis overlap, but they’re not the same thing. If you’re in a regulated industry or shipping software under customer contracts with compliance requirements, you’ll still need that broader infrastructure alongside the automation.</p><p>If you’re a startup with one repo, Anybump might be all you need. If you’re operating at enterprise scale (hundreds of repositories, regulated industries, customer contracts requiring specific compliance certifications), you need to know exactly what’s in your software, what licenses you’re using, and you need to be able to prove it. That’s the difference between automated patching and enterprise-grade software composition analysis: they overlap, but they solve fundamentally different problems.</p><h4><strong>Invariant Sentinel: compliance drift detection</strong></h4><p><strong>What it does:</strong> Runs daily to check for drift against a set of security and compliance properties. It spins up subagents for each logical segment of the repo, compares the current state against previous runs using automation memory, and alerts the security team when something changes.</p><p><strong>What’s impressive:</strong> The statefulness here is clever. Using the automation’s memory feature to compare across runs means the agent can detect <em>changes</em> in security posture, not just point-in-time snapshots. The ability to write and execute validation code alongside the analysis adds rigor that pure LLM reasoning alone wouldn’t have.</p><p><strong>What to think about:</strong> Compliance drift detection is valuable, but compliance <em>governance</em> is a broader challenge. Invariant Sentinel tells you when something changed; it doesn’t enforce policy-as-code across hundreds of repos, generate compliance reports for auditors, or give your CISO a dashboard showing risk trends over time. Those are platform-level capabilities that sit above what any single agent can provide.</p><h4><strong>This is still CI, and CI is not where security should start</strong></h4><p>Here’s the thing that’s easy to miss when you’re looking at the architecture diagrams and agent orchestration: what Cursor built is, at its core, a really sophisticated CI layer. The agents trigger on GitHub webhooks when PRs are opened or pushed. They review diffs, post comments, block pipelines, and open fix PRs. That’s fundamentally the same control point that traditional security tools have been operating at for years, but it’s smarter now because there’s an LLM doing the analysis instead of a regex-based rule engine.</p><p>And look, that’s a real improvement — no argument there. But CI is still the <em>wrong place</em> for security to start.</p><h4><strong>Why CI is too late for security</strong></h4><p>Think about it: if you’re using Cursor to write code in your IDE and the vulnerable code makes it all the way to a PR before anyone catches it, you’ve already lost time. The developer context-switches away from the code they wrote, the PR review cycle adds latency, and if the CI check blocks, now the developer has to go back, understand the finding, make a fix, push again, and wait for another review cycle. It’s better than discovering the vulnerability in production, sure, but it’s still the “scan and ticket” model, just compressed into the PR timeline.</p><h4><strong>What shifting left actually looks like</strong></h4><p>What you really want is security tooling running directly inside your IDE, triggering scans and remediations immediately as new code is introduced. That way, vulnerable code never makes it into a commit in the first place. Your git history stays clean. Your PRs don’t get blocked because the security issues are caught and fixed in the flow before the developer even stages the change. And you dramatically reduce the need for expensive human-in-the-loop reviews, because if the vulnerability never makes it into a PR, nobody needs to triage it, and nobody’s pipeline gets blocked at 4:30 PM on a Friday.</p><h4><strong>IDE-first security vs CI-first security</strong></h4><p>With <a href="https://snyk.io/product/studio/">Snyk Studio</a>, this is exactly how it works. Security guardrails intercept insecure code <em>before the developer even accepts the AI suggestion</em>. The AI assistant runs snyk_code_scan on new code in real time, and if security issues are found, it fixes them right there in the flow. It works directly in Cursor and every other major AI coding assistant. No CI pipeline block, context switch, or cluttered git history.</p><h4><strong>Why layered security is necessary</strong></h4><p>Now imagine running <em>both</em>: Snyk Studio at the IDE layer catching the vast majority of issues at the point of creation, and Cursor’s security agents at the CI layer as a safety net for anything that slips through. You get defense in depth, with most of the work handled silently in the IDE and the expensive human reviews reserved for genuinely complex cases. Given what BaxBench tells us about the insecurity rate of AI-generated code (62% of solutions from top models contain vulnerabilities or are incorrect), this kind of layered protection isn’t a nice-to-have. It’s essential.</p><p>And even beyond the CI question, a security <em>program</em> is much more than CI checks. It’s centralized dashboards aggregating risk across hundreds of repositories. Its SAST findings correlated with DAST results, confirming that the same endpoint is exploitable at runtime. It’s your SCA engine identifying that the ORM library you’re using has a known CVE that bypasses parameterization in certain edge cases, and connecting that to the SAST finding in the same controller method. Individually, each of those is a data point. Together, correlated on the same platform, they tell you exactly what’s happening, why, and what to fix first. A code scanner, even an autonomous one with four agents and impressive PR throughput, doesn’t answer those questions. A security platform does.</p><h4><strong>Validation, not competition (and we’re already integrated)</strong></h4><p>I <a href="https://snyk.io/articles/anthropic-launches-claude-code-security/">wrote a few weeks ago</a> about Anthropic’s Claude Code Security launch and made the case that AI coding platforms investing in security is validation, not disruption. The same logic applies here: When the biggest names in AI development tooling start building security features, it means the industry has figured out that security in AI-assisted development is infrastructure, not an optional add-on.</p><h4><strong>How Cursor and Snyk work together</strong></h4><p>Cursor and Snyk aren’t ships passing in the night; Snyk is already in <a href="https://cursor.directory/plugins/mcp-snyk">Cursor’s MCP Directory</a>. We have a <a href="https://snyk.io/snyk-for-cursor/">verified extension</a>. We ship <a href="https://evo.ai.snyk.io/">Evo Agent Guard via Hooks</a>. Cursor is our <a href="https://snyk.io/news/snyk-recognizes-top-global-partners-for-securing-the-shift-to-autonomous/">AI Innovation Partner of the Year</a> as of two weeks ago. This isn’t an adversarial relationship; it’s the two-tier architecture in action. Think of it this way: AI agents are the researchers, discovering vulnerabilities and proposing fixes with speed and creativity. Deterministic validation is a peer review that independently confirms that the findings are real and the fixes are sound.</p><h4><strong>The two-tier security architecture</strong></h4><p>You wouldn’t publish a paper without peer review, and you shouldn’t ship a security fix without deterministic validation. Cursor provides the research layer (agent orchestration, webhook triggers, automated PR generation). Snyk provides the peer review, governance, and breadth of coverage across the entire software supply chain.</p><p>And this is already working in the real world: <a href="https://snyk.io/blog/from-two-years-to-two-weeks-how-labelbox-erased-its-security-debt-with-snyks/">Labelbox runs Cursor + Snyk together</a> in production and was able to clear a multi-year vulnerability backlog. Cursor automates the remediation workflows; Snyk ensures those fixes are real and enterprise-grade.</p><h4><strong>The agentic supply chain is the new attack surface</strong></h4><p>Take a step back from Cursor’s specific implementation and look at what’s actually happening across the industry. Over the past year, an entirely new software supply chain has emerged, and it’s growing fast: MCP servers, agent skills, automation templates, AI tool plugins, and custom model configurations. Call it the <em>agentic supply chain</em>. It’s the collection of components that AI-powered development tools depend on to function, and right now, almost no one is securing them.</p><p>This isn’t a theoretical concern. In January 2026, Snyk’s research team <a href="https://snyk.io/articles/your-ai-skills-are-the-new-agentic-attack-surface/">discovered hundreds of malicious skills on ClawHub</a>, the first major supply-chain attack targeting AI agent ecosystems. Think about that in the context of what Cursor just open-sourced: automation templates that run with access to your codebase, your CI pipelines, your Slack channels, and your GitHub repos. An MCP server deployed as a Lambda function that processes every security finding in your organization. These are powerful, privileged components. And the ecosystem for distributing and discovering them (marketplaces, template galleries, open source repos) is growing much faster than the security practices around it.</p><p>The traditional software supply chain took decades to develop the tooling we rely on today: package registries with signature verification, SBOMs, license scanners, and vulnerability databases. The agentic supply chain lacks that infrastructure yet, and it’s already being adopted at scale. Every organization installing MCP servers, importing automation templates, or connecting agent skills to their development environment is extending their attack surface in ways that code-level scanning, no matter how sophisticated, simply doesn’t address.</p><p>This is exactly the problem <a href="https://evo.ai.snyk.io/">Evo by Snyk</a> was built to solve. Evo is our agentic security orchestration system designed for the AI-native development landscape: AI threat modeling that builds live threat models from your code, AI red teaming that runs continuous adversarial testing against your models and agents, AI-SPM so you know exactly which AI models and frameworks are running across your organization (including the “shadow AI” that security teams don’t even know about), and Agent Scanning for visibility into all toolchains with real-time guardrails.</p><p>When you’re running autonomous security agents across your codebase, you need to secure those agents too. The tools in your agentic supply chain are every bit as critical as the npm packages in your node_modules, and they deserve the same rigor.</p><h4><strong>What’s next: the questions this raises</strong></h4><p>Rather than wrapping up with a thesis I’ve already written about, let me end with the forward-looking questions that Cursor’s announcement opens up. Because I think this is more interesting than looking backward.</p><h4><strong>Try it yourself</strong></h4><p><a href="https://snyk.io/product/studio/"><strong>Snyk Studio</strong></a> is free, and setup takes minutes. It works in Cursor (along with virtually every other AI coding assistant). You’ll get deterministic scanning and the /snyk-fix remediation command running in your IDE in about five minutes. If you want to see layered security in practice, this is the fastest path.</p><p><a href="https://evo.ai.snyk.io/"><strong>Evo by Snyk</strong></a> is where you go when you need to secure the AI stack itself: threat modeling, red teaming, AI-SPM, agent scanning, and agentic security orchestration. If your organization is adopting AI coding tools at scale (and let’s be real, you probably are), Evo gives you the visibility and guardrails to do it safely.</p><p><strong>Cursor’s automation templates</strong> are <a href="https://github.com/mcpeak/cursor-security-automation">open source on GitHub</a>. If you’re a Cursor user, they’re worth exploring. And if you’re running them alongside Snyk, you’ll get the best of both worlds: agent-powered automation with enterprise-grade validation underneath.</p><p>The pieces are all here. Time to put them together.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=eb8a46859e1d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[The 89% Problem: How LLMs Are Resurrecting the “Dormant Majority” of Open Source]]></title>
            <link>https://medium.com/@snyksec/the-89-problem-how-llms-are-resurrecting-the-dormant-majority-of-open-source-0aa057383d56?source=rss-b1a6b467bdd0------2</link>
            <guid isPermaLink="false">https://medium.com/p/0aa057383d56</guid>
            <category><![CDATA[open-source-security]]></category>
            <category><![CDATA[engineering]]></category>
            <category><![CDATA[ai]]></category>
            <category><![CDATA[python]]></category>
            <dc:creator><![CDATA[Snyk]]></dc:creator>
            <pubDate>Fri, 06 Mar 2026 02:00:29 GMT</pubDate>
            <atom:updated>2026-03-06T02:00:29.745Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*rMTIA0ClDe-vG8x5.jpg" /></figure><p>AI coding assistants are quietly resurrecting millions of abandoned open source packages. For the last decade, developers relied on a simple heuristic for open source security: <strong>Prevalence = Trust.</strong> If a package was downloaded millions of times a week (lodash, react, requests), we assumed it was &quot;safe enough&quot; because thousands of eyes were on it. If it was obscure, we approached with caution.</p><p>Human developers follow social signals of trust, such as popularity, maintenance activity, and community adoption, and this “Wisdom of the Crowds” model worked because human developers are fundamentally social. We stick to the “paved roads” built by our peers. Generative AI, however, is starting to break this model.</p><p>AI systems select packages based on statistical patterns in training data that span the entire history of the internet, including millions of abandoned projects and experimental repositories. LLMs are stochastic; they do not understand “popularity” or “maintenance health” in the way a human architect or engineer does. Rather, they understand statistical probability based on training data that spans the entire history of the internet, including the good, the bad, and the abandoned.</p><p>We built <a href="https://snyk.io/blog/snyk-advisor-security-database/">Snyk Advisor and then merged it into our Security DB</a> to help bridge the gap between open source intelligence and package health, providing developers and agents with various data points on security, popularity, maintenance, and community. How does Snyk’s package health amplify AI agents? Here’s our take on it.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*96SIcGGpax6-IypI.png" /></figure><h4>The data: Visualizing the “Dormant Majority”</h4><p>When we analyze the open source ecosystem, a striking pattern emerges. A very small number of packages power most of the modern internet, while the vast majority are rarely used or have been completely abandoned.</p><p>To understand the risk, we need to revisit the structure of the open source ecosystem. Snyk contributed key data to the <a href="https://www.linuxfoundation.org/research/census-ii-of-free-and-open-source-software-application-libraries">Linux Foundation &amp; Harvard Census II Report</a>, mapping the reality of the supply chain. When we overlay package health data on top of prevalence, a stark hierarchy emerges:</p><p>| Usage Tier | Found in % of Projects | Population Size (Approx.) | Description | Package health on Snyk Advisor | Examples | | — — | — — | — — | — — | — — | — — | | The Global Constants | 90% — 100% | ~1,000 packages | The “plumbing” of the internet. Deep transitive dependencies almost every modern app relies on. | lodash - scored 86/100 chalk - scored 92/100 requests - scored 88/100 | chalk, lodash, requests, openssl | | The Industry Standards | 15% – 50% | ~20,000 packages | The primary frameworks developers explicitly choose to build core architecture. | react - scored 89/100 next - scored 89/100 | React, Pandas, Next.js, FastAPI | | The Domain Specialists | 1% – 5% | ~100,000 packages | Professional-grade tools for specific industries or complex technical niches. | tensorflow - scored 75/100 scipy - scored 88/100 stripe-node- scored 63/100 | TensorFlow, Stripe-node, SciPy | | The Long-Tail Active | &lt; 0.1% | ~600,000+ packages | Valid, working code used in very specific scenarios or by a dedicated community. | | HL7-parser, specialized CAD tools | | The Dormant Majority | ~0% | ~6.3 Million+ packages | The 89.5%. Abandoned projects, &quot;Hello World&quot; tests, unmaintained forks, single-use experiments. | | test-pkg-v1, my-first-app-123 |</p><p>Nearly 90% of the open source ecosystem belongs to the Dormant Majority — millions of abandoned experiments, forks, and unmaintained projects. Human developers rarely select packages from this tier; AI systems, however, do.</p><h4>The AI disconnect</h4><p>Human developers naturally stay in the top tiers of the ecosystem — widely used frameworks, trusted infrastructure libraries, and mature domain tools. Because LLMs are trained on vast repositories of code spanning the entire history of the internet, they may surface packages from anywhere in the ecosystem, including the Dormant Majority.</p><p>As a result, LLMs can recommend packages from the bottom 89.5% of the ecosystem: abandoned projects, unmaintained forks, and even simple “Hello World” experiments. For example, security researcher Luke Hinds <a href="https://decodebytes.substack.com/p/please-dont-use-gpt-for-security">shared</a> an interaction where an LLM recommended the Go package gorilla/sessions:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hSOrnPyWD59uSl1j.png" /></figure><p>The problem with this LLM recommendation is that gorilla/sessions has been archived. Because archived repositories no longer receive updates, using this package introduces long-term maintenance debt and unpatched supply chain risks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*qFzOYL3TS8K8zb5a.png" /></figure><p>Worse, LLMs suffer from hallucinations (or “AI Package Hallucinations”), confidently recommending packages that never existed. This creates two new attack vectors:</p><ol><li><strong>The zombie resurrection</strong>: An LLM suggests an unmaintained, 5-year-old package from the “Dormant Majority” because it solves a specific niche problem. It has 0 CVEs (because nobody looks for them) but contains critical flaws.</li><li><a href="https://snyk.io/es/articles/slopsquatting-mitigation-strategies/"><strong>Slopsquatting</strong></a> (AI Hallucination Attacks): Attackers predict common package names that LLMs hallucinate (e.g., huggingface-cli-tool vs the real huggingface-cli) and register them with malicious payloads. When an AI suggests this “logical” but fake package, the developer installs malware.</li></ol><h4>The strategic pivot: From “popularity” to “provenance”</h4><p>As a CISO, you cannot rely on your developers to manually vet every AI suggestion. The velocity is too high. You need to shift your program from “scanning for bad” to “ensuring good”. In past write-ups, we’ve outlined the <a href="https://snyk.io/articles/ciso/">roles of CISOs</a> and evolving responsibilities.</p><p>Similarly, as an engineer, you simply cannot rely on AI coding agents end-to-end to choose and install packages from npm or PyPI because of the inherent risk of the software supply chain that could result in a bad package that introduces malware or data harvesting, such as via npm’s postinstall package manager capabilities.</p><p>How do we equip AI coding agents and software engineers with package health heuristics to achieve more secure, autonomous results? With Snyk’s paved road.</p><h4>1. Discover trusted packages with <a href="http://security.snyk.io">security.snyk.io</a></h4><p>Before selecting a dependency, developers and AI systems need visibility into the reputation and trustworthiness of open source packages. <a href="https://snyk.io/blog/snyk-advisor-security-database/#why-we-re-bringing-snyk-advisor-into-security-snyk-io">The new Snyk Security Database experience</a> provides a centralized view of package trust signals, helping teams quickly identify widely adopted, well-maintained, and reputable projects across supported ecosystems.</p><p><strong>Strategy:</strong> Encourage developers and platform teams to use Snyk Security Database insights during package discovery to prioritize mature, trusted dependencies early in the selection process.</p><h4>2. Snyk Package Health API helps verify health, not just vulnerabilities</h4><p>A package with zero known vulnerabilities is not necessarily safe. It may be abandoned, unmaintained, or lacking a trusted community. Secure software supply chains require evaluating <strong>package health</strong> beyond CVEs. The <strong>Snyk Package Health API</strong> provides package-level and version-level intelligence across major ecosystems (npm, PyPI, Maven, NuGet, and Go), exposing signals such as:</p><ul><li>Security posture.</li><li>Maintenance activity and lifecycle indicators.</li><li>Popularity and adoption metrics.</li><li>Community engagement signals.</li></ul><p>This allows engineering platforms, CI/CD pipelines, and AI-driven development tools to automatically evaluate the quality, sustainability, and ecosystem risk of a dependency at the moment it is being considered — especially at the moment a dependency is being selected or introduced.</p><p><strong>Strategy:</strong> Integrate package health intelligence directly into dependency-selection workflows and AI-assisted development environments, so package suitability can be evaluated before a dependency is added, not after it is installed.</p><p><strong>Tooling:</strong> Use the Snyk Package Health API to inform package selection, upgrade planning, and automated dependency governance. See the <a href="https://apidocs.snyk.io/?version=2024-10-15#get-/orgs/-org_id-/ecosystems/-ecosystem-/packages/-package_name-">Package level endpoint</a> and the <a href="https://apidocs.snyk.io/?version=2024-10-15#get-/orgs/-org_id-/ecosystems/-ecosystem-/packages/-package_name-/versions/-package_version-">Package version level endpoint</a> for implementation details.</p><p>If you integrate with an SCA via CLI, CI, or GitHub CI checks, then during and before a build, Snyk Open Source will also be catching these ill-recommended LLM coding suggestions (imagine the coding agent plans to run an npm install … for a malicious package).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Kj_iq4iu1VEgMn9J.png" /></figure><h4>3. Enforce dependency safety at introduction with Snyk Studio</h4><p>Even when intelligence is available, developers and AI coding assistants may still introduce dependencies automatically. Security must so be enforced at the moment a dependency is selected, not only during CI/CD scans.</p><p>The <a href="https://docs.snyk.io/integrations/snyk-studio-agentic-integrations/directives">Snyk Studio Package Health flow</a> integrates package health intelligence directly into AI-assisted development workflows. When an AI coding assistant proposes adding or updating a dependency, <a href="https://docs.snyk.io/integrations/snyk-studio-agentic-integrations">Snyk Studio</a> can automatically invoke the package health check before the dependency is installed, ensuring that risk signals are evaluated in real time. This allows organizations to prevent unhealthy, unmaintained, or risky packages from entering their codebase at the earliest possible stage — the “secure at inception” moment.</p><p><strong>Strategy:</strong> Configure AI coding assistants to automatically run Package Health checks before introducing new dependencies, pausing or blocking installation when risk signals are present, and requiring explicit user approval to proceed.</p><h4>4. Defend against hallucinations</h4><p>AI coding assistants may occasionally recommend packages that do not exist in public registries. These “package not found” events should be treated as potential supply-chain security signals rather than simple developer errors, as attackers may later register packages with similar names to exploit these mistakes.</p><p><strong>Strategy:</strong> Treat dependency-resolution failures (for example, “package not found”) as security-relevant events. Investigate the source of the dependency suggestion and validate whether the package name is legitimate before proceeding.</p><p>In the following image, you can see how Snyk Studio is invoked by the Windusrf coding agent to perform package health analysis via the snyk_package_health_check tool, which is part of other security tools in the Snyk MCP Server. With Snyk Studio installed, the AI agent can then confirm the package is maintainable, has no security issues, and is not malicious.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ex0-hYcVzypFGSZz.png" /></figure><h4>Snyk’s mission to secure AI-generated code</h4><p>We built Snyk on the belief that developer-first security is the only way to scale. In the world of AI coding agents, this is doubly true. The <a href="https://www.linuxfoundation.org/research/census-ii-of-free-and-open-source-software-application-libraries">Census II data</a> shows us that the open source ecosystem is vast and mostly dormant.</p><p>Our job is to keep your AI and developers focused on the healthy, vibrant top tiers, the 10% that powers the world, and to automate defenses against the chaotic 90%. Don’t let your AI verify trust. Verify the AI’s trust.</p><p>Want to learn more about how AI coding assistants are reshaping software supply chain risk? <a href="https://snyk.io/lp/ai-security-crisis-python"><strong>Explore our guide on securing Python in the age of AI.</strong></a></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=0aa057383d56" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>