<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vulert</title>
    <description>The latest articles on DEV Community by Vulert (@vulert_official).</description>
    <link>https://dev.to/vulert_official</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3905970%2Feb836d11-d8ba-48f8-8647-669899168d02.png</url>
      <title>DEV Community: Vulert</title>
      <link>https://dev.to/vulert_official</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vulert_official"/>
    <language>en</language>
    <item>
      <title>The TanStack Supply Chain Attack — What Happened and What It Means for npm Security</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Mon, 03 Aug 2026 07:40:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/the-tanstack-supply-chain-attack-what-happened-and-what-it-means-for-npm-security-lbg</link>
      <guid>https://dev.to/vulert_official/the-tanstack-supply-chain-attack-what-happened-and-what-it-means-for-npm-security-lbg</guid>
      <description>&lt;p&gt;The &lt;strong&gt;tanstack supply chain attack&lt;/strong&gt; in May 2026 showed how quickly a trusted JavaScript package ecosystem can become a delivery path for credential-stealing malware when the attacker reaches the publish process.&lt;/p&gt;

&lt;p&gt;Security researchers reported that TanStack npm packages were compromised as part of the broader Mini Shai-Hulud campaign. This guide explains what happened, why TanStack was a high-value target, how teams can check whether they were affected, and why CVE-based scanning is necessary but not enough for this class of npm supply chain attack.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; This attack was not a normal vulnerable-package CVE event. Legitimate packages were modified with malicious behaviour, so response requires version checks, secret rotation, CI/CD review, and continuous monitoring.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Happened in May 2026
&lt;/h2&gt;

&lt;p&gt;On May 11, 2026, Socket reported a compromise across 84 npm package artifacts in the &lt;code&gt;@tanstack&lt;/code&gt; namespace. The affected packages were modified with suspected CI credential-stealing malware. TanStack packages are widely used in JavaScript and React applications, which made the compromise important even before the broader campaign expansion became clear.&lt;/p&gt;

&lt;p&gt;The attack was part of a wider campaign known as Mini Shai-Hulud. Akamai later reported that the May 11 wave hit npm packages across the TanStack dependency tree and then expanded to other projects and ecosystems, including packages linked to Mistral AI, UiPath, OpenSearch, and others. NHS England also warned that Mini Shai-Hulud affected well-known projects across npm and PyPI, including TanStack, Mistral AI, UiPath, and OpenSearch.&lt;/p&gt;

&lt;p&gt;The exact impact for any engineering team depends on whether the team installed a compromised package version during the malicious publication window and whether the package ran in a developer workstation, CI environment, or production build path. OpenAI publicly confirmed that two employee devices were affected through the TanStack npm supply chain attack, but stated that no user data, production systems, or intellectual property were compromised.&lt;/p&gt;

&lt;p&gt;The attack represents an evolution from single-package compromise to self-spreading supply chain infection — without manual attacker intervention.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Mini Shai-Hulud Self-Spreading Technique
&lt;/h2&gt;

&lt;p&gt;Mini Shai-Hulud is the name researchers used for a self-spreading supply chain campaign that targets package publishing environments, developer systems, and CI/CD credentials. The important shift is automation. Instead of compromising one package and waiting for users to install it, the malware attempts to reach additional package publishing paths and spread through packages the compromised identity can publish.&lt;/p&gt;

&lt;p&gt;Public reporting describes the campaign as credential-focused. The malware attempted to find secrets, tokens, registry credentials, CI/CD credentials, and cloud credentials. In a package publishing environment, those credentials are especially dangerous because they can allow attackers to publish malicious versions of additional packages. Each new compromised package can then become another route to more developer machines and build environments.&lt;/p&gt;

&lt;p&gt;For npm teams, this matters because package installation is not passive. npm packages can include lifecycle scripts that execute during install or build steps. If malicious code runs inside CI, it may access environment variables, npm tokens, GitHub tokens, cloud credentials, package registry credentials, deployment secrets, and other sensitive values. That makes the CI environment a primary target.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attack Stage&lt;/th&gt;
&lt;th&gt;What Happens&lt;/th&gt;
&lt;th&gt;Why It Matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Package compromise&lt;/td&gt;
&lt;td&gt;A legitimate package artifact receives malicious code.&lt;/td&gt;
&lt;td&gt;Developers trust the package name because it is already popular.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Credential access&lt;/td&gt;
&lt;td&gt;The malware attempts to read CI/CD, registry, GitHub, and cloud secrets.&lt;/td&gt;
&lt;td&gt;Secrets can allow lateral movement beyond the original package.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Publishing abuse&lt;/td&gt;
&lt;td&gt;Compromised publishing access can be used to publish malicious versions of other packages.&lt;/td&gt;
&lt;td&gt;The attack can expand without manual attacker work for each package.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Downstream installation&lt;/td&gt;
&lt;td&gt;Teams that install malicious versions may expose developer or CI credentials.&lt;/td&gt;
&lt;td&gt;The blast radius can include applications, repositories, and deployment workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why TanStack Was a High-Value Target
&lt;/h2&gt;

&lt;p&gt;TanStack is a widely used JavaScript library ecosystem that includes projects such as TanStack Query, TanStack Router, and TanStack Table. These libraries are common in React and modern frontend applications. TanStack Query, previously known as React Query, is especially popular for data fetching and state management in web applications.&lt;/p&gt;

&lt;p&gt;That popularity makes TanStack a high-value supply chain target. Attackers prefer packages that sit high in the dependency graph because one compromise can reach many downstream projects. A malicious version of a rarely used package may affect a handful of teams. A malicious version of a popular frontend library can reach developer workstations, CI environments, and build systems across many organisations.&lt;/p&gt;

&lt;p&gt;TanStack packages are also attractive because they appear in normal application dependency files such as &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, and &lt;code&gt;pnpm-lock.yaml&lt;/code&gt;. Many teams may not install them directly every day, but automated dependency updates, lock file changes, local installs, and CI builds can still pull compromised versions if version ranges allow it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Popular open source packages are not dangerous because they are popular. They are high-impact targets because a single malicious version can reach many teams quickly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to Check if Your Application Was Affected
&lt;/h2&gt;

&lt;p&gt;The first step is to check whether your application uses TanStack packages and whether your lock file contains versions published during the attack window. Public affected-package lists changed as researchers investigated the campaign, so teams should compare their installed package versions against the latest trusted advisory data from TanStack, Socket, npm, and their security vendors.&lt;/p&gt;

&lt;p&gt;Do not check only &lt;code&gt;package.json&lt;/code&gt;. It may contain broad version ranges such as &lt;code&gt;^1.2.3&lt;/code&gt;, while the exact installed version is recorded in &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, or &lt;code&gt;pnpm-lock.yaml&lt;/code&gt;. The lock file is the source of truth for what your build actually installed.&lt;/p&gt;

&lt;p&gt;Search for packages in the &lt;code&gt;@tanstack&lt;/code&gt; namespace and any other packages listed in advisories connected to Mini Shai-Hulud. If you find affected versions, treat the environment where they ran as potentially exposed. That includes developer machines, CI runners, build agents, and any environment where install scripts or malicious package code may have executed.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Search direct dependencies in package.json&lt;/span&gt;
&lt;span class="nb"&gt;cat &lt;/span&gt;package.json | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt;

&lt;span class="c"&gt;# Search exact installed TanStack versions in npm lock file&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt; package-lock.json

&lt;span class="c"&gt;# Search Yarn lock file&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt; yarn.lock

&lt;span class="c"&gt;# Search pnpm lock file&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt; pnpm-lock.yaml

&lt;span class="c"&gt;# List installed TanStack packages in the current project&lt;/span&gt;
npm &lt;span class="nb"&gt;ls&lt;/span&gt; | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt;

&lt;span class="c"&gt;# Search all repos from a parent directory&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-RIn&lt;/span&gt; &lt;span class="s2"&gt;"@tanstack"&lt;/span&gt; ./ &lt;span class="nt"&gt;--include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"package.json"&lt;/span&gt; &lt;span class="nt"&gt;--include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"package-lock.json"&lt;/span&gt; &lt;span class="nt"&gt;--include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"yarn.lock"&lt;/span&gt; &lt;span class="nt"&gt;--include&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"pnpm-lock.yaml"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Keep a copy of the lock file from the affected period. It helps incident responders prove which exact package versions were installed.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What to Do If You Were Affected — Incident Response Steps
&lt;/h2&gt;

&lt;p&gt;If your project installed a compromised TanStack or Mini Shai-Hulud-related package version, treat it as a supply chain incident. The main concern is credential exposure. Malicious packages often target secrets because secrets allow the attacker to move from package installation into repositories, CI/CD systems, cloud accounts, package registries, and deployment workflows.&lt;/p&gt;

&lt;p&gt;Start by identifying where the package ran. A local developer install has different exposure than a GitHub Actions workflow with publish permissions. A CI runner with cloud deployment credentials is higher risk than a read-only build. The response should be proportional to the secrets available in that environment, but teams should avoid assuming that “it only ran during install” means no damage occurred.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check package usage:&lt;/strong&gt; Search &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, and &lt;code&gt;pnpm-lock.yaml&lt;/code&gt; for affected packages and exact versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Identify execution environments:&lt;/strong&gt; Determine whether the compromised package ran on developer machines, CI runners, release pipelines, or production build systems.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotate exposed secrets:&lt;/strong&gt; Rotate npm tokens, GitHub tokens, CI/CD secrets, cloud credentials, deployment keys, SSH keys, and any credentials available to the affected environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Upgrade to confirmed clean versions:&lt;/strong&gt; Move affected packages to versions confirmed clean by maintainers or trusted security advisories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit CI/CD activity:&lt;/strong&gt; Review workflow logs, package publish history, repository access logs, secret access, unusual network activity, and unexpected package releases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor after containment:&lt;/strong&gt; Watch for suspicious pushes, new packages, new tokens, unexplained workflow runs, and unexpected changes to lock files.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example: force a fresh lockfile review after upgrading packages&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;

&lt;span class="c"&gt;# Prefer deterministic installs in CI after lockfile is reviewed&lt;/span&gt;
npm ci

&lt;span class="c"&gt;# Check for unexpected dependency changes&lt;/span&gt;
git diff package.json package-lock.json

&lt;span class="c"&gt;# Review npm account tokens manually in npm settings&lt;/span&gt;
&lt;span class="c"&gt;# Rotate tokens that were available to any affected environment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Why CVE Databases Did Not Catch This Attack
&lt;/h2&gt;

&lt;p&gt;A CVE database is built to track known vulnerabilities in software components. That is essential for issues such as &lt;code&gt;CVE-2021-44228&lt;/code&gt; in Log4j or other public package vulnerabilities with assigned identifiers, affected versions, and fix guidance. But the TanStack incident was different. During the attack window, the core problem was not that a known vulnerable version existed in a database. The problem was that legitimate package versions were modified with malicious behaviour.&lt;/p&gt;

&lt;p&gt;This is why CVE-based scanning did not provide the first line of detection. Security researchers and behavioural analysis tools flagged suspicious package activity, credential-stealing behaviour, and unexpected malicious code. Socket reported that its AI Scanner flagged newly malicious TanStack packages quickly after publication, which shows the value of behavioural package analysis for unknown malware patterns.&lt;/p&gt;

&lt;p&gt;That does not make CVE monitoring irrelevant. CVE monitoring is still necessary because most dependency security work involves known vulnerabilities, fixed versions, and ongoing alerts when new CVEs affect existing packages. But CVE scanning is one layer. Behavioural analysis, lock file pinning, registry controls, trusted publishing review, secret scoping, and CI hardening are additional layers.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not expect CVE scanning alone to detect brand-new malicious package versions. Pair CVE monitoring with behavioural analysis and CI/CD secret controls.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What This Attack Changes About Dependency Security Strategy
&lt;/h2&gt;

&lt;p&gt;The tanstack supply chain attack changes dependency security strategy because it shows that trusted packages can become malicious without becoming “unknown packages.” A policy that only blocks unpopular packages, typosquats, or known CVEs will miss a trusted package that has been compromised at publish time.&lt;/p&gt;

&lt;p&gt;Teams should move toward layered dependency security. First, pin versions and commit lock files so a new malicious version does not install automatically. Second, monitor lock file changes in pull requests. Third, use behavioural analysis tools that inspect package scripts, network calls, credential access, and suspicious code. Fourth, scope CI/CD credentials so a compromised package cannot access more than the build actually needs.&lt;/p&gt;

&lt;p&gt;Fifth, keep CVE monitoring in place for known vulnerability risk. Vulert, Snyk, and similar tools help identify known CVEs in manifest files and SBOMs. Socket and similar behavioural tools help identify suspicious package behaviour. These categories are complementary, not interchangeable.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Security Layer&lt;/th&gt;
&lt;th&gt;What It Catches&lt;/th&gt;
&lt;th&gt;What It Misses&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVE monitoring&lt;/td&gt;
&lt;td&gt;Known vulnerable packages with published advisories and affected versions.&lt;/td&gt;
&lt;td&gt;Brand-new malicious package versions with no CVE yet.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Behavioural package analysis&lt;/td&gt;
&lt;td&gt;Suspicious install scripts, credential access, exfiltration, and malware-like behaviour.&lt;/td&gt;
&lt;td&gt;Some legitimate but vulnerable packages with no suspicious behaviour.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Lock file pinning&lt;/td&gt;
&lt;td&gt;Unexpected upgrades to newly published malicious versions.&lt;/td&gt;
&lt;td&gt;Compromise already present in the pinned version.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD secret scoping&lt;/td&gt;
&lt;td&gt;Limits damage if malicious package code runs during install or build.&lt;/td&gt;
&lt;td&gt;Does not prevent package compromise itself.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SBOM inventory&lt;/td&gt;
&lt;td&gt;Helps identify where affected packages exist across products.&lt;/td&gt;
&lt;td&gt;Does not detect malicious behaviour by itself.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How Vulert Fits This Kind of npm Security Programme
&lt;/h2&gt;

&lt;p&gt;Vulert is a software composition analysis tool focused on known CVEs in open source dependencies. It analyzes manifest files and SBOMs against 458,000+ known CVEs, alerts teams when new CVEs affect specific packages, and provides exact fixed versions plus CLI commands. That is the known-vulnerability layer of dependency security.&lt;/p&gt;

&lt;p&gt;For the TanStack-style event, Vulert should be used honestly as one layer, not the only layer. It helps teams know what packages they run, scan &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pnpm-lock.yaml&lt;/code&gt;, and SBOM files, and continuously monitor for CVEs. It does not replace behavioural malware detection for brand-new malicious package versions.&lt;/p&gt;

&lt;p&gt;The practical strategy is to combine Vulert with lock file review, behavioural analysis, CI/CD secret hardening, and package publishing controls. Vulert helps answer “which known CVEs affect our dependencies?” Behavioural tools help answer “does this package act maliciously?” CI hardening limits damage if a malicious package runs. Together, the layers reduce both known vulnerability risk and active supply chain compromise risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The tanstack supply chain attack was part of the broader Mini Shai-Hulud campaign targeting npm package publishing and developer environments.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Socket reported 84 compromised TanStack npm package artifacts, and the broader campaign later affected additional projects and ecosystems.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mini Shai-Hulud represented a self-spreading supply chain technique focused on credential theft and package publishing expansion.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teams should check exact installed versions in lock files, not only broad dependency ranges in &lt;code&gt;package.json&lt;/code&gt;.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If affected versions ran in CI or developer environments, teams should rotate exposed secrets and audit CI/CD activity.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE monitoring is necessary for known vulnerabilities, but behavioural analysis and CI/CD hardening are required for malicious package compromise.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What was the TanStack supply chain attack?
&lt;/h3&gt;

&lt;p&gt;The TanStack supply chain attack was a May 2026 npm package compromise connected to the broader Mini Shai-Hulud campaign. Security researchers reported malicious modifications to TanStack package artifacts, with behaviour focused on credential theft and supply chain propagation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What is Mini Shai-Hulud?
&lt;/h3&gt;

&lt;p&gt;Mini Shai-Hulud is the name researchers used for a self-spreading supply chain campaign targeting package ecosystems and developer environments. Public reporting describes it as a credential-focused attack that attempts to spread through package publishing access and CI/CD environments.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Does Vulert detect supply chain attacks like TanStack?
&lt;/h3&gt;

&lt;p&gt;Vulert detects known CVEs in dependencies by scanning manifests and SBOMs. TanStack-style malicious package compromise may not have a CVE during the attack window, so teams should pair Vulert with behavioural package analysis, lock file pinning, CI secret scoping, and package publishing controls.&lt;/p&gt;

</description>
      <category>npmsecurity</category>
      <category>supplychainattack</category>
      <category>tanstack</category>
      <category>vulert</category>
    </item>
    <item>
      <title>CISA’s KEV Catalog — The Most Reliable Signal for Vulnerability Prioritization</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Mon, 03 Aug 2026 07:40:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/cisas-kev-catalog-the-most-reliable-signal-for-vulnerability-prioritization-28i4</link>
      <guid>https://dev.to/vulert_official/cisas-kev-catalog-the-most-reliable-signal-for-vulnerability-prioritization-28i4</guid>
      <description>&lt;p&gt;The &lt;strong&gt;CISA KEV catalog&lt;/strong&gt; should sit at the top of your vulnerability prioritization workflow because it answers the question CVSS cannot answer: is this CVE actually being exploited by attackers?&lt;/p&gt;

&lt;p&gt;CVSS tells you theoretical severity. EPSS estimates the probability of exploitation in the next 30 days. The Known Exploited Vulnerabilities catalog documents confirmed exploitation. That difference matters when your scanner reports 300 CVEs and engineering can only patch 20 this sprint.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; KEV is not a replacement for CVSS, EPSS, asset exposure, or business context. It is the highest-confidence signal that attackers have already used the vulnerability in the real world.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What the CISA Known Exploited Vulnerabilities Catalog Is
&lt;/h2&gt;

&lt;p&gt;The Known Exploited Vulnerabilities catalog is a public list maintained by the U.S. Cybersecurity and Infrastructure Security Agency. It contains CVEs that CISA adds based on evidence of active exploitation. That makes it different from a normal vulnerability database. A CVE can have a high CVSS score and never appear in KEV. A lower-scored CVE can appear in KEV because attackers are actually using it.&lt;/p&gt;

&lt;p&gt;This distinction is critical for vulnerability management. CVSS measures severity in a vulnerable context. It does not prove attackers are using the vulnerability. EPSS estimates future exploitation probability using data-driven signals. That helps prioritization, but it is still predictive. KEV means exploitation has been observed or confirmed by CISA through evidence sources such as incident response, threat intelligence, and partner reporting.&lt;/p&gt;

&lt;p&gt;For engineering teams, the rule is simple: if a CVE appears in KEV and exists in your environment, it deserves immediate attention. If it is also internet-facing, reachable, or present in a high-value application, it becomes a top-tier remediation item. This applies to infrastructure CVEs, application platform CVEs, and open source dependency CVEs discovered through SCA tools.&lt;/p&gt;

&lt;p&gt;Unlike CVSS or EPSS, KEV is not asking whether exploitation could happen. It records that exploitation has happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Facts About the KEV Catalog in 2026
&lt;/h2&gt;

&lt;p&gt;The CISA KEV catalog keeps growing because attackers continue to reuse both new and old vulnerabilities. Many organizations focus heavily on fresh CVEs, but KEV repeatedly shows that attackers exploit old flaws when systems remain unpatched. A 2017 or 2019 CVE can still be urgent if it remains exposed and appears in attacker playbooks.&lt;/p&gt;

&lt;p&gt;BOD 22-01 requires Federal Civilian Executive Branch agencies to remediate KEV vulnerabilities by the assigned due date. CISA also urges non-federal organizations to prioritize KEV vulnerabilities as part of normal vulnerability management. That recommendation matters because KEV gives private companies a practical way to reduce noise: put confirmed exploited vulnerabilities ahead of theoretical severity-only findings.&lt;/p&gt;

&lt;p&gt;The catalog is useful because it is machine-readable, public, and operational. Security teams can ingest the JSON feed, cross-reference it against vulnerability scan results, and label findings as KEV-listed. Engineering teams can use that label to route tickets, shorten SLAs, and explain why a medium-scored finding may outrank a higher CVSS issue.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;What It Means&lt;/th&gt;
&lt;th&gt;How to Use It&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;KEV&lt;/td&gt;
&lt;td&gt;The vulnerability has confirmed exploitation evidence.&lt;/td&gt;
&lt;td&gt;Patch first when present in your environment.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EPSS&lt;/td&gt;
&lt;td&gt;The vulnerability has a probability estimate for exploitation in the next 30 days.&lt;/td&gt;
&lt;td&gt;Use it to prioritize non-KEV findings with high predicted exploitation risk.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;The vulnerability has theoretical severity in a vulnerable context.&lt;/td&gt;
&lt;td&gt;Use it as a baseline impact score, not the only priority signal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exposure&lt;/td&gt;
&lt;td&gt;The affected system is reachable, internet-facing, or connected to sensitive assets.&lt;/td&gt;
&lt;td&gt;Escalate priority when KEV or high EPSS intersects with exposure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to Access the KEV Catalog
&lt;/h2&gt;

&lt;p&gt;CISA makes the KEV list available through the public website, a JSON feed, and a GitHub repository. The web page is useful for analysts and managers. The JSON feed is useful for automation. The GitHub repository is useful for teams that want version tracking, diffs, or scheduled ingestion into vulnerability management workflows.&lt;/p&gt;

&lt;p&gt;For dependency scanning, automation matters. Your SCA tool may report CVEs from &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, or SBOMs. You can then cross-reference those CVEs against CISA’s JSON feed and flag any intersection. That flag becomes a ticket priority, SLA trigger, or dashboard column.&lt;/p&gt;

&lt;p&gt;The official catalog is available at:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Web catalog: &lt;code&gt;https://www.cisa.gov/known-exploited-vulnerabilities-catalog&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;JSON feed: &lt;code&gt;https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Download the CISA KEV JSON feed&lt;/span&gt;
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-o&lt;/span&gt; known_exploited_vulnerabilities.json

&lt;span class="c"&gt;# Count KEV entries&lt;/span&gt;
python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
import json
data = json.load(open('known_exploited_vulnerabilities.json'))
print(len(data['vulnerabilities']))
"&lt;/span&gt;

&lt;span class="c"&gt;# Print CVE ID, vendor/project, product, and vulnerability name&lt;/span&gt;
python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
import json
data = json.load(open('known_exploited_vulnerabilities.json'))
for v in data['vulnerabilities'][:10]:
    print(v['cveID'], '-', v.get('vendorProject'), '-', v.get('product'), '-', v['vulnerabilityName'])
"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Filtering KEV for Your Specific Packages
&lt;/h2&gt;

&lt;p&gt;The KEV catalog is most useful when you connect it to your own environment. A raw list of exploited CVEs is helpful, but a filtered list of exploited CVEs affecting your software is actionable. For application teams, start with the packages and technologies you actually use: Apache, Microsoft, Atlassian, Jenkins, WordPress, OpenSSL, Log4j, Spring, lodash, or any other major dependency family.&lt;/p&gt;

&lt;p&gt;Filtering by vendor or product is only a starting point. The best workflow is to compare CVE IDs from your scan results against the KEV list. That avoids false assumptions based on product names. If Vulert or another SCA tool reports a CVE in your dependency tree, the next question is whether that exact CVE appears in KEV.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Filter KEV entries for Apache-related products&lt;/span&gt;
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
import json, sys
data = json.load(sys.stdin)
matches = [
    v for v in data['vulnerabilities']
    if 'apache' in v.get('vendorProject','').lower()
    or 'apache' in v.get('product','').lower()
]
for v in matches:
    print(v['cveID'], '-', v['vulnerabilityName'])
"&lt;/span&gt;

&lt;span class="c"&gt;# Example: compare your scanner CVE list against KEV&lt;/span&gt;
&lt;span class="c"&gt;# scanner-cves.txt should contain one CVE ID per line&lt;/span&gt;
curl &lt;span class="nt"&gt;-s&lt;/span&gt; https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json &lt;span class="se"&gt;\&lt;/span&gt;
  | python3 &lt;span class="nt"&gt;-c&lt;/span&gt; &lt;span class="s2"&gt;"
import json, sys
data = json.load(sys.stdin)
kev = {v['cveID'] for v in data['vulnerabilities']}
scanner = {line.strip() for line in open('scanner-cves.txt') if line.strip()}
for cve in sorted(scanner &amp;amp; kev):
    print('KEV_MATCH', cve)
"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Add a &lt;code&gt;kev=true&lt;/code&gt; label to vulnerability tickets. It gives engineering and leadership a simple reason for immediate prioritization.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Three-Tier Prioritisation Framework Using KEV
&lt;/h2&gt;

&lt;p&gt;A practical prioritization framework needs to reduce noise without ignoring risk. KEV should drive the top tier because it represents confirmed exploitation. EPSS should drive urgency for non-KEV vulnerabilities with high predicted exploitation probability. CVSS should remain the baseline severity score, but it should not be the only sorting rule.&lt;/p&gt;

&lt;p&gt;This framework is simple enough for engineering teams to use in Jira, Linear, GitHub Issues, or a vulnerability dashboard. It also explains decisions clearly to CTOs and auditors. When a CVSS 6.5 KEV-listed CVE is patched before a CVSS 9.8 non-exposed internal issue, the reason is not arbitrary. The first one has confirmed attacker usage and reachable exposure. The second one may still be important, but it is not automatically first.&lt;/p&gt;

&lt;p&gt;The exact response times should match your risk appetite and business context. The table below is a practical default for SaaS and engineering teams. Internet-facing KEV findings should move fastest. Non-internet-facing KEV findings still need urgent handling because exploitation evidence exists, but exposure and reachability should guide the emergency level.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tier&lt;/th&gt;
&lt;th&gt;Criteria&lt;/th&gt;
&lt;th&gt;Response Time&lt;/th&gt;
&lt;th&gt;Rationale&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tier 1 — Patch Immediately&lt;/td&gt;
&lt;td&gt;KEV-listed CVE and present in an internet-facing, reachable, or high-value system.&lt;/td&gt;
&lt;td&gt;Same day where possible; treat as emergency remediation.&lt;/td&gt;
&lt;td&gt;Attackers have confirmed use of the vulnerability and your asset is exposed.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tier 1B — Urgent KEV Remediation&lt;/td&gt;
&lt;td&gt;KEV-listed CVE present internally but not internet-facing.&lt;/td&gt;
&lt;td&gt;Within days, or by a documented emergency SLA.&lt;/td&gt;
&lt;td&gt;Confirmed exploitation exists, but internal exposure may change response sequencing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tier 2 — Patch This Sprint&lt;/td&gt;
&lt;td&gt;Not on KEV, but CVSS 7.0+ and EPSS above your threshold, such as 0.10.&lt;/td&gt;
&lt;td&gt;This sprint.&lt;/td&gt;
&lt;td&gt;The vulnerability is severe and has elevated predicted exploitation probability.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tier 3 — Planned Remediation&lt;/td&gt;
&lt;td&gt;Below Tier 2 thresholds, not KEV-listed, and no urgent exposure context.&lt;/td&gt;
&lt;td&gt;Next planned remediation cycle.&lt;/td&gt;
&lt;td&gt;The finding should be addressed systematically without disrupting emergency work.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not use CVSS alone as your only sorting rule. A lower-scored KEV finding can be more urgent than a higher-scored vulnerability with no exposure and no exploitation evidence.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How to Apply KEV to Your Dependency Scan Results
&lt;/h2&gt;

&lt;p&gt;Your SCA tool gives you a list of CVEs in your dependencies. The CISA KEV catalog tells you which CVEs have confirmed exploitation. The operational workflow is to cross-reference both lists, then escalate any intersection. This converts a long dependency report into a prioritized remediation queue.&lt;/p&gt;

&lt;p&gt;Start with manifest and SBOM scanning. Vulert can analyze files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pnpm-lock.yaml&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOMs in SPDX or CycloneDX format.&lt;/p&gt;

&lt;p&gt;After scanning, sort the findings in this order: KEV match, internet exposure, EPSS score, CVSS score, package reachability, and business criticality. A KEV match in a shared authentication library should beat a high CVSS finding in a dev-only package. A KEV match in a multi-tenant SaaS dependency should trigger executive visibility because one package upgrade may reduce risk for every customer.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Scan your dependencies:&lt;/strong&gt; Upload manifest files or SBOMs to your SCA tool and export the CVE list.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Download CISA KEV:&lt;/strong&gt; Pull the JSON feed on a schedule and store the current CVE ID set.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cross-reference CVEs:&lt;/strong&gt; Mark any scanner CVE that appears in KEV as Tier 1 or Tier 1B.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add exposure context:&lt;/strong&gt; Escalate findings in internet-facing or customer-facing applications.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create tickets:&lt;/strong&gt; Include CVE ID, package name, installed version, fixed version, KEV status, owner, and due date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track closure evidence:&lt;/strong&gt; Keep pull requests, tests, deployment records, and risk acceptance entries.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  KEV + EPSS + CVSS — The Complete Prioritisation Picture
&lt;/h2&gt;

&lt;p&gt;KEV list prioritization works best when combined with EPSS, CVSS, and exposure. Each signal answers a different question. KEV answers “has exploitation been confirmed?” EPSS answers “how likely is exploitation in the next 30 days?” CVSS answers “how severe could this be in a vulnerable context?” Exposure answers “can attackers reach our vulnerable asset?”&lt;/p&gt;

&lt;p&gt;When signals conflict, prioritize real exploitation first. A KEV-listed CVE with a moderate CVSS score can deserve emergency remediation because attackers already use it. A high EPSS non-KEV vulnerability may deserve sprint-level urgency because exploitation probability is elevated. A high CVSS vulnerability with low EPSS, no exposure, and no KEV listing may still matter, but it may not justify interrupting the team today.&lt;/p&gt;

&lt;p&gt;EPSS also has an important nuance: the 0.10 threshold in this guide is a practical example, not an official universal cutoff. FIRST publishes EPSS as a probability and percentile, and each organization should choose thresholds based on risk appetite, patch capacity, and exposure. The key is to define the threshold, document it, and apply it consistently.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Signal&lt;/th&gt;
&lt;th&gt;Question Answered&lt;/th&gt;
&lt;th&gt;Priority Weight&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;KEV&lt;/td&gt;
&lt;td&gt;Has exploitation been confirmed?&lt;/td&gt;
&lt;td&gt;Highest confidence signal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;EPSS&lt;/td&gt;
&lt;td&gt;How likely is exploitation in the next 30 days?&lt;/td&gt;
&lt;td&gt;Strong forward-looking signal for non-KEV findings.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;How severe could the vulnerability be?&lt;/td&gt;
&lt;td&gt;Baseline severity signal.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exposure&lt;/td&gt;
&lt;td&gt;Can an attacker reach the vulnerable asset?&lt;/td&gt;
&lt;td&gt;Escalates or de-escalates urgency based on your environment.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Compliance Angle — What SOC2 and ISO 27001 Auditors Think of KEV
&lt;/h2&gt;

&lt;p&gt;SOC2 and ISO 27001 auditors do not usually require a specific KEV workflow by name, but they care deeply about vulnerability management evidence. KEV helps show that your organization prioritizes based on real attacker activity, not only static severity numbers. That makes the process more defensible during audits, customer questionnaires, and cyber insurance renewals.&lt;/p&gt;

&lt;p&gt;For SOC2, KEV can support evidence that the team identifies, prioritizes, and remediates vulnerabilities using risk-based criteria. For ISO 27001:2022, KEV can support Control 8.8, Management of Technical Vulnerabilities, because it helps the organization obtain timely information about vulnerabilities and assess exposure. The key is documentation: show the KEV source, how it is cross-referenced, how tickets are prioritized, and how remediation is tracked.&lt;/p&gt;

&lt;p&gt;A good audit record includes the scan result, KEV status, exposure assessment, ticket, owner, target date, remediation action, pull request, test evidence, deployment record, and closure date. If the team cannot patch immediately, keep a formal risk acceptance record with compensating controls and a review date.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SOC2 evidence:&lt;/strong&gt; KEV status can support risk-based vulnerability prioritization and remediation tracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ISO 27001 evidence:&lt;/strong&gt; KEV cross-referencing can support technical vulnerability management under Control 8.8.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyber insurance evidence:&lt;/strong&gt; KEV handling can support answers about known exploited vulnerabilities and patch timelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Customer questionnaire evidence:&lt;/strong&gt; KEV-based prioritization shows enterprise buyers that active exploitation drives urgent remediation.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Vulert Helps With KEV-Aware Dependency Remediation
&lt;/h2&gt;

&lt;p&gt;Vulert focuses on open source dependency vulnerability monitoring. It analyzes manifest files and SBOMs against 458,000+ known CVEs, alerts teams when new CVEs affect specific package versions, and provides exact fixed versions plus CLI commands. That gives teams the CVE inventory needed to cross-reference against the KEV list.&lt;/p&gt;

&lt;p&gt;The practical workflow is straightforward: upload a manifest or SBOM to Vulert, review the CVE findings, identify any KEV-listed CVEs, and prioritize those first. Vulert also provides continuous monitoring, Dependency Health grouping, Jira integration, full CVE detail, workaround guidance, vulnerability history, and trend reports. These features help teams turn vulnerability data into remediation evidence.&lt;/p&gt;

&lt;p&gt;Vulert is not a replacement for CISA KEV, EPSS, CVSS, or asset exposure analysis. It is the SCA layer that tells you which known CVEs exist in your dependency files. Combine Vulert’s dependency findings with CISA KEV and exposure context to build a stronger prioritization workflow.&lt;/p&gt;

&lt;p&gt;To improve your prioritization workflow, continue with this Vulert guide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to Build a Vulnerability Management Dashboard for Your CTO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This guide helps teams move from raw CVE lists to risk-based remediation, executive reporting, SLA tracking, and audit-ready evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The CISA KEV catalog lists CVEs with confirmed exploitation evidence and should sit at the top of vulnerability prioritization workflows.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVSS measures theoretical severity, EPSS estimates exploitation probability, and KEV records confirmed exploitation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Federal Civilian Executive Branch agencies must remediate KEV vulnerabilities by assigned due dates under BOD 22-01, while CISA urges all organizations to prioritize KEV remediation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Engineering teams should cross-reference SCA scan results against the KEV JSON feed and escalate any matching CVEs.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The strongest prioritization model combines KEV, EPSS, CVSS, asset exposure, reachability, and business criticality.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert provides the dependency CVE inventory, scan history, fix guidance, and Jira workflow needed to support KEV-aware remediation.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is the CISA KEV catalog?
&lt;/h3&gt;

&lt;p&gt;The CISA KEV catalog is a public list of CVEs that CISA adds based on evidence of active exploitation. KEV stands for Known Exploited Vulnerabilities. If a CVE appears in the catalog, it has confirmed exploitation evidence and should be prioritized quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How do I check if my vulnerabilities are on the KEV list?
&lt;/h3&gt;

&lt;p&gt;Export CVE IDs from your vulnerability scanner or SCA tool, download CISA’s KEV JSON feed, and compare the two CVE ID sets. Any intersection should be flagged as KEV-listed and escalated for urgent remediation.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Is KEV better than CVSS?
&lt;/h3&gt;

&lt;p&gt;KEV and CVSS answer different questions. CVSS describes theoretical severity, while KEV confirms exploitation evidence. When the two conflict, KEV should usually drive urgent prioritization because attackers have already used the vulnerability.&lt;/p&gt;

</description>
      <category>cisakev</category>
      <category>vulnerabilityprioritization</category>
      <category>sca</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Open Source Security for SaaS Companies — What Every B2B SaaS CTO Needs to Know</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Sun, 02 Aug 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/open-source-security-for-saas-companies-what-every-b2b-saas-cto-needs-to-know-enh</link>
      <guid>https://dev.to/vulert_official/open-source-security-for-saas-companies-what-every-b2b-saas-cto-needs-to-know-enh</guid>
      <description>&lt;p&gt;&lt;strong&gt;SaaS open source security&lt;/strong&gt; becomes urgent the first time an enterprise prospect asks, “How do you monitor open source components for vulnerabilities?” A weak answer can pause the deal even when the product works, the roadmap is strong, and the buyer likes the team.&lt;/p&gt;

&lt;p&gt;B2B SaaS companies process customer data, answer enterprise security questionnaires, prepare for SOC2, face investor due diligence, and build on open source foundations. This guide explains the specific dependency security risks SaaS CTOs need to manage, how multi-tenant exposure changes prioritisation, and when continuous SCA monitoring becomes a business requirement.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; When a CVE is exploited in a SaaS dependency, it is not only your data at risk. It is your customers’ data, your renewal pipeline, your procurement approvals, and your reputation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why B2B SaaS Companies Have a Unique Dependency Security Responsibility
&lt;/h2&gt;

&lt;p&gt;B2B SaaS security requirements are different from normal internal application security because customers trust your platform with their business data. A vulnerability in your dependency tree can affect customer records, authentication flows, billing workflows, analytics pipelines, API access, and tenant isolation. That makes open source dependency security a customer trust issue, not only an engineering hygiene task.&lt;/p&gt;

&lt;p&gt;Enterprise customers understand this. That is why security questionnaires have become standard in SaaS procurement. A 50-person SaaS company selling to Fortune 500 clients can face the same questions as a 500-person company: Do you have SOC2? Do you monitor open source dependencies? Do you maintain an SBOM? What is your critical vulnerability SLA? How do you track remediation? Can you show evidence over time?&lt;/p&gt;

&lt;p&gt;The challenge is that SaaS teams often adopt open source faster than they build security process. A Node.js backend may depend on &lt;code&gt;express&lt;/code&gt;, &lt;code&gt;jsonwebtoken&lt;/code&gt;, &lt;code&gt;axios&lt;/code&gt;, &lt;code&gt;helmet&lt;/code&gt;, &lt;code&gt;rate-limiter-flexible&lt;/code&gt;, &lt;code&gt;stripe&lt;/code&gt;, and hundreds of transitive packages. A Python analytics service may rely on &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;numpy&lt;/code&gt;, and machine learning libraries. Each package becomes part of the product’s risk surface.&lt;/p&gt;

&lt;p&gt;When a CVE is exploited in a SaaS dependency, it is not your data at risk — it is your customers’ data.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 4 Moments When Dependency Security Becomes Urgent for SaaS
&lt;/h2&gt;

&lt;p&gt;Most SaaS teams do not wake up one day and decide to build a formal dependency security programme. The need usually appears during a business milestone. A major enterprise deal arrives. A Series B investor asks for technical diligence. A penetration tester asks what SCA tooling is in use. A critical CVE disclosure hits a library buried in the application.&lt;/p&gt;

&lt;p&gt;These moments matter because they turn open source security from “good engineering practice” into a commercial requirement. The team may have shipped for years with manual checks, occasional &lt;code&gt;npm audit&lt;/code&gt; runs, or Dependabot alerts that nobody owned. That approach can work at seed stage, but it breaks when the company sells to enterprise, handles regulated customers, or needs proof over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The First Enterprise Deal
&lt;/h2&gt;

&lt;p&gt;The first serious enterprise deal often introduces the first serious security questionnaire. The buyer asks how the SaaS company monitors open source components for vulnerabilities. If the answer is “we check manually sometimes,” procurement slows down. If the answer includes continuous SCA monitoring, documented remediation workflow, SOC2 evidence, and scan history, the conversation is easier.&lt;/p&gt;

&lt;p&gt;This is where SaaS open source security becomes a sales enabler. The CTO does not need to promise zero vulnerabilities. They need to show a repeatable process: dependency inventory, monitoring, alerting, triage, remediation, ticketing, and evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Series B Due Diligence
&lt;/h2&gt;

&lt;p&gt;Technical due diligence becomes more demanding at Series B and later. Investors, private equity teams, and acquirers may request dependency inventories, vulnerability reports, security policies, SOC2 status, SBOMs, and remediation history. An SBOM showing 200+ unpatched CVEs can become a negotiating issue. A documented vulnerability management process can become an asset.&lt;/p&gt;

&lt;p&gt;Security diligence is not only about finding problems. It measures whether the company knows how to find, prioritise, and fix problems. That distinction matters. A company with known findings, owners, SLAs, and trend reports looks more mature than a company with unknown exposure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pre-Launch Penetration Test
&lt;/h2&gt;

&lt;p&gt;Penetration testing before launch or before enterprise expansion often exposes process gaps. A tester may ask which SCA tool monitors dependencies, how critical CVEs are handled, and whether dependency findings are tracked in Jira. “None” is not a strong answer once customer data and enterprise procurement are involved.&lt;/p&gt;

&lt;p&gt;A pen test finds exploitable paths, but it is not a substitute for continuous dependency monitoring. The tester sees a point-in-time view. SCA monitoring watches package risk after the test ends, after deployment, and after new CVEs are disclosed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Critical CVE Disclosure
&lt;/h2&gt;

&lt;p&gt;The hardest moment is the critical CVE disclosure nobody expected. A library your SaaS depends on becomes vulnerable. The first question is not “can we patch?” It is “are we affected?” Teams with continuous monitoring answer in minutes. Teams without monitoring search repositories, ask developers, inspect lock files, and lose time while customers ask for answers.&lt;/p&gt;

&lt;p&gt;Log4Shell showed this pattern clearly. Teams that knew where &lt;code&gt;log4j-core&lt;/code&gt; existed could respond faster. Teams without dependency visibility spent days finding exposure. SaaS companies should assume the next critical disclosure will happen and build the process before that day arrives.&lt;/p&gt;

&lt;h2&gt;
  
  
  SOC2 Requirements Specific to Multi-Tenant SaaS
&lt;/h2&gt;

&lt;p&gt;SOC2 does not require one specific SCA vendor, but SaaS auditors care about whether controls operate over time. That is the key difference between SOC2 Type I and SOC2 Type II. A one-time clean scan is not enough for Type II evidence. The company needs records showing that vulnerability monitoring, triage, and remediation operated during the audit period.&lt;/p&gt;

&lt;p&gt;Multi-tenant SaaS adds another concern. If a vulnerable shared library exists in the common application codebase, it can affect every tenant simultaneously. A vulnerability in authentication middleware, API rate limiting, billing integration, or data processing code can have platform-wide consequences. That makes dependency security more important than it might be for a small internal tool.&lt;/p&gt;

&lt;p&gt;Auditors increasingly ask for evidence such as scan history, vulnerability management procedures, MTTR data, ticket records, risk acceptance entries, and remediation timelines. A SaaS company should be able to show when a CVE was detected, which application was affected, who owned remediation, what fix was applied, and when the change reached production.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; SOC2 evidence is about control operation over time. Keep timestamped scan history, remediation tickets, and trend reports instead of relying on screenshots taken the week before the audit.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  SaaS-Specific Dependency Risks
&lt;/h2&gt;

&lt;p&gt;SaaS dependency security is different because certain package categories sit on high-value paths. A vulnerability in a development-only package may matter less than a vulnerability in authentication, tenant routing, API protection, billing, or data transformation. CTOs should weigh findings by both CVSS and SaaS business context.&lt;/p&gt;

&lt;p&gt;Authentication libraries are especially sensitive. Packages such as &lt;code&gt;passport&lt;/code&gt;, &lt;code&gt;jsonwebtoken&lt;/code&gt;, OAuth clients, SAML libraries, and session middleware can affect every user login. API protection libraries such as &lt;code&gt;helmet&lt;/code&gt;, rate limiting middleware, request validation packages, and CORS utilities affect abuse prevention and exposure. Billing SDKs such as &lt;code&gt;stripe&lt;/code&gt; and &lt;code&gt;braintree&lt;/code&gt; sit near payment workflows, subscription state, and PCI-adjacent processes.&lt;/p&gt;

&lt;p&gt;Data processing libraries also matter. A vulnerability in &lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;numpy&lt;/code&gt;, &lt;code&gt;pillow&lt;/code&gt;, PDF parsing libraries, CSV import tools, or deserialisation packages can affect tenant data integrity or processing safety. A low-level dependency may become high priority when it processes uploaded customer data across all tenants.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Library Category&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Specific SaaS Risk if Vulnerable&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Authentication and session management&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;passport&lt;/code&gt;, &lt;code&gt;jsonwebtoken&lt;/code&gt;, OAuth and SAML clients.&lt;/td&gt;
&lt;td&gt;A vulnerability can affect login, tokens, sessions, and every tenant user.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API security and rate limiting&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;helmet&lt;/code&gt;, &lt;code&gt;rate-limiter-flexible&lt;/code&gt;, CORS and validation middleware.&lt;/td&gt;
&lt;td&gt;A vulnerability can expose APIs to abuse, bypass, or unsafe request handling.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Billing and payments&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;stripe&lt;/code&gt;, &lt;code&gt;braintree&lt;/code&gt;, payment webhook libraries.&lt;/td&gt;
&lt;td&gt;A vulnerability can affect billing events, subscription state, or PCI-adjacent flows.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data processing&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;pandas&lt;/code&gt;, &lt;code&gt;numpy&lt;/code&gt;, CSV, PDF, image, and document parsers.&lt;/td&gt;
&lt;td&gt;A vulnerability can affect uploaded customer data or shared processing jobs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;HTTP clients and integrations&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;axios&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, API SDKs.&lt;/td&gt;
&lt;td&gt;A vulnerability can affect outbound integrations, webhooks, and service-to-service calls.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Logging and observability&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;log4j-core&lt;/code&gt;, logging middleware, telemetry clients.&lt;/td&gt;
&lt;td&gt;A vulnerability can turn normal customer-controlled input into platform-wide exposure.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Multi-Tenant Severity Multiplier
&lt;/h2&gt;

&lt;p&gt;Multi-tenant SaaS changes vulnerability prioritisation. A CVSS 6.0 vulnerability in a single-tenant internal app may be a medium-priority issue. The same vulnerability in a shared SaaS service used by 1,000 customers may deserve urgent review because the blast radius is much larger.&lt;/p&gt;

&lt;p&gt;Traditional severity scoring does not always capture tenant impact. CVSS can describe technical impact, but it does not know whether your SaaS architecture shares code, data processing, authentication, or billing workflows across all customers. A medium vulnerability in tenant isolation, token handling, document parsing, or import pipelines can become business-critical when exploited at platform scale.&lt;/p&gt;

&lt;p&gt;SaaS CTOs should therefore add a severity multiplier for shared code paths. If a vulnerable package sits in authentication, request routing, shared API middleware, billing, or data ingestion, increase priority. If the package is reachable from customer-controlled input, increase priority again. If every tenant uses it, escalate further.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Check reachability:&lt;/strong&gt; Determine whether the vulnerable package runs in production and whether customer-controlled input can reach it.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check tenant scope:&lt;/strong&gt; Determine whether the package affects one customer environment, a subset of tenants, or the entire platform.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check business function:&lt;/strong&gt; Escalate vulnerabilities in authentication, billing, API security, tenant isolation, and data processing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check remediation path:&lt;/strong&gt; Prioritise package upgrades that remove risk across many tenants with one change.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document the decision:&lt;/strong&gt; Record why the team escalated, downgraded, patched, mitigated, or accepted the finding.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Add a “tenant impact” field to vulnerability tickets. It helps engineering and leadership understand why a moderate CVSS score can still be urgent for SaaS.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Building a SaaS Security Program at Each Funding Stage
&lt;/h2&gt;

&lt;p&gt;A good SaaS open source security programme should match company stage. A seed-stage team does not need the same security function as a growth-stage company selling to large enterprises. The mistake is waiting too long. By the time enterprise procurement or Series B diligence asks for evidence, the company may need months of historical records that it never collected.&lt;/p&gt;

&lt;p&gt;At seed stage, basic controls are acceptable: Dependabot, &lt;code&gt;npm audit&lt;/code&gt;, committed lock files, and clear ownership for dependency updates. At Series A, continuous SCA monitoring becomes more valuable because the company is preparing for SOC2 Type I, enterprise pilots, and security questionnaires. At Series B, SOC2 Type II, SBOMs, MTTR tracking, and vendor assessments become normal. At growth stage, the company needs a broader AppSec programme with regular pen tests and stronger reporting.&lt;/p&gt;

&lt;p&gt;Security does not need to block engineering speed. The goal is to introduce the next level before customers, auditors, or investors force it under pressure.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Stage&lt;/th&gt;
&lt;th&gt;Security Programme Components&lt;/th&gt;
&lt;th&gt;Tooling&lt;/th&gt;
&lt;th&gt;Estimated Cost&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Seed&lt;/td&gt;
&lt;td&gt;Basic dependency checks, committed lock files, Dependabot, owner for security updates.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;npm audit&lt;/code&gt;, Dependabot, GitHub alerts.&lt;/td&gt;
&lt;td&gt;$0-$100/month.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Series A&lt;/td&gt;
&lt;td&gt;Continuous SCA monitoring, SOC2 Type I preparation, Jira workflow for CVEs, security champion.&lt;/td&gt;
&lt;td&gt;Vulert Pro, Jira, SBOM generation with Syft.&lt;/td&gt;
&lt;td&gt;$45/month for Vulert Pro plus existing workflow tools.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Series B&lt;/td&gt;
&lt;td&gt;SOC2 Type II, SBOM per release, MTTR tracking, vendor security assessments, formal risk acceptance.&lt;/td&gt;
&lt;td&gt;Vulert Growth, Jira, GRC platform, security reporting.&lt;/td&gt;
&lt;td&gt;$125/month for Vulert Growth plus audit and GRC costs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Growth&lt;/td&gt;
&lt;td&gt;Full AppSec programme, regular pen tests, customer security evidence pack, executive dashboard.&lt;/td&gt;
&lt;td&gt;Enterprise SCA, Jira integration, trend reports, security dashboard.&lt;/td&gt;
&lt;td&gt;$500+/month for Vulert Enterprise plus pen test and AppSec budget.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How Vulert Fits SaaS Dependency Security
&lt;/h2&gt;

&lt;p&gt;Vulert is focused on open source dependency vulnerability monitoring. It analyzes manifest files and SBOMs against 458,000+ known CVEs, alerts teams when new CVEs affect specific package versions, and provides exact fixed versions plus CLI commands. That is the practical workflow SaaS engineering teams need when a security questionnaire asks how they monitor open source components.&lt;/p&gt;

&lt;p&gt;Vulert supports files used across SaaS stacks, including &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pnpm-lock.yaml&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOMs in SPDX or CycloneDX formats.&lt;/p&gt;

&lt;p&gt;For B2B SaaS CTOs, the most useful features are continuous monitoring, Dependency Health grouping, Jira ticket creation, scan history, trend reports, full CVE detail, workaround guidance, and SBOM upload. These features support enterprise questionnaires, SOC2 evidence, due diligence, and weekly engineering prioritisation.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example: generate an SBOM for a SaaS application release&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# Upload the SBOM or manifest file to Vulert:&lt;/span&gt;
&lt;span class="c"&gt;# https://vulert.com/abom&lt;/span&gt;

&lt;span class="c"&gt;# Example manifests Vulert can scan:&lt;/span&gt;
&lt;span class="c"&gt;# package-lock.json&lt;/span&gt;
&lt;span class="c"&gt;# pom.xml&lt;/span&gt;
&lt;span class="c"&gt;# requirements.txt&lt;/span&gt;
&lt;span class="c"&gt;# composer.lock&lt;/span&gt;
&lt;span class="c"&gt;# go.sum&lt;/span&gt;
&lt;span class="c"&gt;# Cargo.lock&lt;/span&gt;
&lt;span class="c"&gt;# packages.lock.json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Security Questionnaire Answers SaaS CTOs Should Have Ready
&lt;/h2&gt;

&lt;p&gt;Enterprise buyers want short, confident, evidence-backed answers. They do not want long explanations that reveal missing process. A SaaS CTO should prepare standard answers for open source security questions before procurement asks.&lt;/p&gt;

&lt;p&gt;The strongest answers include tooling, frequency, ownership, remediation workflow, and evidence. For example, “We use continuous SCA monitoring with Vulert across all production applications. Critical findings create Jira tickets with package, CVE, fixed version, and CLI command. We track remediation history and review trend reports for audit evidence.” That answer is much stronger than “developers update packages when needed.”&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Question&lt;/th&gt;
&lt;th&gt;Weak Answer&lt;/th&gt;
&lt;th&gt;Strong Answer&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;How do you monitor open source components?&lt;/td&gt;
&lt;td&gt;Developers check manually.&lt;/td&gt;
&lt;td&gt;We use continuous SCA monitoring across production applications with scan history and alerts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;How fast do you patch critical CVEs?&lt;/td&gt;
&lt;td&gt;As soon as possible.&lt;/td&gt;
&lt;td&gt;Critical CVEs follow a documented SLA, with tickets, owners, and remediation evidence.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Do you maintain an SBOM?&lt;/td&gt;
&lt;td&gt;Not currently.&lt;/td&gt;
&lt;td&gt;We generate CycloneDX or SPDX SBOMs for key releases and scan them for known CVEs.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Can you prove the process operates over time?&lt;/td&gt;
&lt;td&gt;We can send a current scan.&lt;/td&gt;
&lt;td&gt;We retain timestamped scan history, vulnerability trends, and remediation records.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;To strengthen SaaS dependency security and customer evidence, continue with these Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ISO 27001 and Open Source Dependencies — What the Standard Actually Requires&lt;/li&gt;
&lt;li&gt;How to Build a Vulnerability Management Dashboard for Your CTO&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides help SaaS teams turn open source vulnerability data into audit evidence, executive reporting, and enterprise-ready security answers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SaaS open source security is a customer trust issue because one vulnerable dependency can affect many tenants and customer datasets.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency security becomes urgent during the first enterprise deal, Series B due diligence, pre-launch penetration testing, and critical CVE disclosures.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SOC2 Type II evidence requires records over time, including scan history, remediation tickets, MTTR data, and documented risk decisions.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-tenant SaaS teams should re-weight vulnerability severity upward when a package affects shared authentication, billing, API security, or tenant-wide data processing.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A seed-stage SaaS company can start with free tooling, but Series A and later teams should add continuous SCA monitoring and formal remediation workflows.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert helps SaaS teams answer customer security questions with continuous monitoring, SBOM upload, Jira tickets, Dependency Health grouping, and audit-ready trend reports.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Does SOC2 require dependency scanning for SaaS?
&lt;/h3&gt;

&lt;p&gt;SOC2 does not mandate a specific dependency scanner, but auditors expect evidence that security controls operate over time. For SaaS companies using open source packages, continuous SCA monitoring is a practical way to show dependency vulnerability detection, remediation, and evidence retention.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How does a critical CVE affect a multi-tenant SaaS differently?
&lt;/h3&gt;

&lt;p&gt;A critical CVE in a multi-tenant SaaS dependency can affect all tenants at once if the vulnerable package sits in shared code. That means the blast radius is larger than a single-tenant application, and the team should prioritise shared authentication, billing, API, and data processing paths aggressively.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. What files should a SaaS company scan for dependency vulnerabilities?
&lt;/h3&gt;

&lt;p&gt;Scan the dependency files that define production applications, including &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOMs in CycloneDX or SPDX formats.&lt;/p&gt;

</description>
      <category>opensourcesecurity</category>
      <category>saas</category>
      <category>soc2</category>
      <category>sbom</category>
    </item>
    <item>
      <title>How to Build a Vulnerability Management Dashboard for Your CTO</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Sun, 02 Aug 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/how-to-build-a-vulnerability-management-dashboard-for-your-cto-koi</link>
      <guid>https://dev.to/vulert_official/how-to-build-a-vulnerability-management-dashboard-for-your-cto-koi</guid>
      <description>&lt;p&gt;A vulnerability management dashboard that lists 133 CVEs with CVSS scores is not a management dashboard. It is a raw export. A CTO needs the answer to 3 questions: are we getting safer, where is the risk concentrated, and what needs engineering attention this week?&lt;/p&gt;

&lt;p&gt;This guide defines the 7 metrics a CTO-level dashboard should show, how to build the dashboard with or without a dedicated security platform, how to turn raw vulnerability data into a board-ready summary, and how Vulert can provide the underlying SCA trend data, MTTR tracking, and Dependency Health view.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The best security dashboard for management is not the most detailed dashboard. It is the dashboard that shows trend, ownership, risk direction, and the next decision.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Current Security Reporting Fails — Two Failure Modes
&lt;/h2&gt;

&lt;p&gt;Security reporting usually fails in 2 ways. The first failure is too much detail. A spreadsheet with 133 CVEs, package names, CVSS scores, descriptions, references, and raw scanner output may help an engineer investigate, but it does not help a CTO allocate people, set remediation priorities, or explain risk to the board. The more rows the report contains, the less useful it becomes for leadership decisions.&lt;/p&gt;

&lt;p&gt;The second failure is too little detail. “Security is on track” is not a report. It gives no trend, no exposure level, no timeline, no SLA status, and no evidence. This type of vague update fails in board meetings, enterprise sales calls, cyber insurance renewals, SOC2 reviews, and ISO 27001 audits. Leadership needs a small number of metrics that show whether remediation is improving or falling behind.&lt;/p&gt;

&lt;p&gt;The right level is 5-7 metrics. A CTO should see critical vulnerability trend, MTTR by severity, newly disclosed CVEs affecting the stack, backlog age, monitoring coverage, top package upgrades by impact, and SLA compliance. These metrics turn vulnerability management from a scanner output problem into an engineering management problem.&lt;/p&gt;

&lt;p&gt;A CTO does not need every CVE in the first view. They need the few metrics that show risk direction, ownership, and remediation velocity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 7 Metrics Every Vulnerability Dashboard Should Show
&lt;/h2&gt;

&lt;p&gt;A good vulnerability management dashboard must show trend, risk level, and action. A snapshot is not enough. If the dashboard says there are 18 critical vulnerabilities today, the CTO still needs to know whether that number was 3 last week or 60 last week. Direction changes the decision.&lt;/p&gt;

&lt;p&gt;Each metric should answer a management question. Critical count answers “are we getting better or worse?” MTTR answers “how fast do we fix?” Newly disclosed CVEs answer “what changed in the threat landscape this week?” Backlog age answers “what risk are we carrying too long?” Coverage answers “are we blind anywhere?” Top packages by impact answers “where should engineering focus?” Compliance status answers “are we meeting our documented promises?”&lt;/p&gt;

&lt;p&gt;These metrics work for open source dependency vulnerabilities, infrastructure vulnerabilities, and application security findings, but they are especially useful for SCA because package upgrades often resolve many CVEs at once. Vulert’s Dependency Health view supports this by grouping many CVEs into the few package upgrades that remove the most risk.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Metric&lt;/th&gt;
&lt;th&gt;Management Question&lt;/th&gt;
&lt;th&gt;Good Signal&lt;/th&gt;
&lt;th&gt;Bad Signal&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Critical vulnerability count trend&lt;/td&gt;
&lt;td&gt;Are we getting safer?&lt;/td&gt;
&lt;td&gt;Downward trend over 13 weeks.&lt;/td&gt;
&lt;td&gt;Rising count or unexplained flat zero.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MTTR by severity&lt;/td&gt;
&lt;td&gt;How fast do we fix?&lt;/td&gt;
&lt;td&gt;Critical under 48 hours and High under 7 days.&lt;/td&gt;
&lt;td&gt;Critical findings open longer than 7 days.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;New CVEs this week&lt;/td&gt;
&lt;td&gt;What changed externally?&lt;/td&gt;
&lt;td&gt;Spikes are investigated quickly.&lt;/td&gt;
&lt;td&gt;New CVEs appear with no triage owner.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Backlog by age&lt;/td&gt;
&lt;td&gt;What old risk remains?&lt;/td&gt;
&lt;td&gt;Few findings older than 30 days.&lt;/td&gt;
&lt;td&gt;Growing 90-day backlog.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Coverage&lt;/td&gt;
&lt;td&gt;Are all production apps monitored?&lt;/td&gt;
&lt;td&gt;100% production coverage.&lt;/td&gt;
&lt;td&gt;Unknown or partial application coverage.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top packages by impact&lt;/td&gt;
&lt;td&gt;Where should engineering focus?&lt;/td&gt;
&lt;td&gt;Top 3 upgrades remove many CVEs.&lt;/td&gt;
&lt;td&gt;Teams chase individual CVEs one by one.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLA compliance&lt;/td&gt;
&lt;td&gt;Are we meeting policy?&lt;/td&gt;
&lt;td&gt;Critical CVEs resolved within target.&lt;/td&gt;
&lt;td&gt;Repeated SLA breaches with no escalation.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  1. Critical Vulnerability Count — Trending Over 13 Weeks
&lt;/h2&gt;

&lt;p&gt;Critical vulnerability count should be shown as a trend line, not a single number. A 13-week view is long enough to show whether remediation is improving, stalling, or getting worse. It also avoids overreacting to one noisy week while still making deterioration visible.&lt;/p&gt;

&lt;p&gt;A rising trend means the team is discovering or accumulating more severe risk than it is fixing. A falling trend means remediation is working. A flat line at zero can be excellent, but it can also mean scanning is broken, coverage is incomplete, or the wrong repositories are monitored. The dashboard should pair the critical count with coverage so leadership does not mistake missing data for low risk.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Mean Time to Remediate (MTTR) by Severity
&lt;/h2&gt;

&lt;p&gt;Mean time to remediate shows how long vulnerabilities remain open after detection. It is one of the clearest security operations metrics for engineering leadership because it connects risk to delivery speed. A reasonable target is critical vulnerabilities under 48 hours, high vulnerabilities under 7 days, and medium vulnerabilities under 30 days.&lt;/p&gt;

&lt;p&gt;If MTTR is trending up, prioritisation is broken or engineering capacity is insufficient. If critical MTTR exceeds 7 days, the CTO should treat it as a governance issue. Some exceptions are valid, such as no available fix or non-reachable code paths, but those should appear in the risk register with an owner and review date.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Newly Disclosed CVEs Affecting Your Stack This Week
&lt;/h2&gt;

&lt;p&gt;Newly disclosed CVEs show how the external threat landscape changed for your specific packages. This metric is different from total backlog because it focuses on what became newly relevant this week. A spike may indicate a major library incident, a vulnerable ecosystem release, or a new disclosure affecting a common transitive dependency.&lt;/p&gt;

&lt;p&gt;Log4Shell would have shown as a dramatic spike for organisations using vulnerable Log4j versions. For open source dependency monitoring, this metric helps leadership understand that vulnerability work is not always caused by engineering negligence. Sometimes the world changes overnight, and the team needs to respond.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Vulnerability Backlog by Age
&lt;/h2&gt;

&lt;p&gt;Backlog age shows how long vulnerabilities have remained unresolved. A vulnerability open for 2 days and a vulnerability open for 180 days should not look the same. Age reveals whether remediation is keeping up or whether the team is accumulating risk.&lt;/p&gt;

&lt;p&gt;The dashboard should show findings older than 30 days and older than 90 days. Old unresolved critical vulnerabilities are the highest-risk items. A growing 90-day backlog signals that the process is overloaded, tickets are not assigned, or teams are accepting risk without formal approval.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Coverage — Percentage of Applications Monitored
&lt;/h2&gt;

&lt;p&gt;Monitoring coverage answers whether the dashboard is complete. If you have 20 production applications and only 12 are scanned, the dashboard has a 40% blind spot. That makes every other metric less trustworthy.&lt;/p&gt;

&lt;p&gt;Coverage should be 100% for production applications. If some applications are excluded, the dashboard should list them by name and explain why. Coverage should include monoliths, microservices, internal tools that touch customer data, APIs, worker services, and release artifacts with dependencies.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Top 3 Packages by Vulnerability Impact
&lt;/h2&gt;

&lt;p&gt;Dependency Health is the most actionable metric for engineering teams. Instead of asking developers to fix 133 CVEs individually, it asks which 3 package upgrades would remove the most risk today. One parent package upgrade may fix dozens of transitive CVEs.&lt;/p&gt;

&lt;p&gt;This metric changes the conversation from “security has a long list” to “engineering should upgrade these packages first.” Vulert’s Dependency Health view supports this by grouping CVEs by package upgrade, helping teams focus on the smallest set of changes with the biggest security impact.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Compliance Status Against Documented SLAs
&lt;/h2&gt;

&lt;p&gt;SLA compliance shows whether the team meets its documented vulnerability management commitments. For example, the dashboard can show how many critical CVEs exceeded the 48-hour SLA this month and how many high CVEs exceeded the 7-day target.&lt;/p&gt;

&lt;p&gt;This metric supports SOC2, ISO 27001, cyber insurance renewals, and enterprise client security reviews. It also helps the CTO decide whether the process needs more automation, more engineering capacity, or clearer escalation rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Build This Without a Dedicated Security Platform
&lt;/h2&gt;

&lt;p&gt;You can build a basic security dashboard for management with Google Sheets, Notion, or Jira. It will not be as automated as a dedicated platform, but it can work if the team commits to weekly updates and clear ownership. The goal is to collect the 7 metrics in one place and update them on a predictable cadence.&lt;/p&gt;

&lt;p&gt;Start with a Google Sheet if the team is small. Create tabs for weekly summary, application coverage, open criticals, MTTR, backlog age, and top package upgrades. Populate the sheet from SCA scan reports, Jira tickets, and release records. This usually takes 30 minutes per week if the team keeps the process tight.&lt;/p&gt;

&lt;p&gt;For Jira, create a dashboard using labels such as &lt;code&gt;security&lt;/code&gt;, &lt;code&gt;sca&lt;/code&gt;, &lt;code&gt;critical&lt;/code&gt;, and &lt;code&gt;high&lt;/code&gt;. Add issue count by priority, created versus resolved trend, average age of open issues, and SLA breach filters. Jira works best when every vulnerability finding creates a ticket with package name, CVE ID, severity, affected application, owner, due date, and fix command.&lt;/p&gt;

&lt;h3&gt;
  
  
  Google Sheets dashboard tabs
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Executive Summary&lt;/li&gt;
&lt;li&gt;Critical CVE Trend — 13 Weeks&lt;/li&gt;
&lt;li&gt;MTTR by Severity&lt;/li&gt;
&lt;li&gt;New CVEs This Week&lt;/li&gt;
&lt;li&gt;Backlog Age&lt;/li&gt;
&lt;li&gt;Application Coverage&lt;/li&gt;
&lt;li&gt;Top 3 Package Upgrades&lt;/li&gt;
&lt;li&gt;SLA Breaches&lt;/li&gt;
&lt;li&gt;Risk Accepted Findings&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Jira examples for a vulnerability dashboard
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;labels = security AND priority = Critical AND statusCategory != Done

labels = security AND priority in (Critical, High) AND created &amp;gt;= -7d

labels = security AND priority = Critical AND statusCategory != Done AND created &amp;lt;= -2d

labels = security AND statusCategory != Done ORDER BY created ASC
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; If the dashboard is manual, update it on the same day every week and keep the same metric definitions. Inconsistent measurement destroys trust.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The One-Page Board-Level Summary
&lt;/h2&gt;

&lt;p&gt;A CTO security report should include a one-page summary that translates the dashboard into leadership language. Board members and enterprise clients rarely need raw scanner output. They need a concise statement of current risk, trend, coverage, and SLA performance.&lt;/p&gt;

&lt;p&gt;The best format is one sentence per metric. Use numbers, direction, and target. Do not say “we improved vulnerability management.” Say “Critical vulnerabilities are down from 12 to 4 over the last month.” Do not say “we patch quickly.” Say “Mean time to fix critical CVEs is 37 hours against a 48-hour target.”&lt;/p&gt;

&lt;p&gt;This format helps the CTO communicate without overloading non-technical stakeholders. It also creates repeatable evidence for audits and customer reviews. Keep the summary consistent month to month so leadership can see trend.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Board Metric&lt;/th&gt;
&lt;th&gt;Example Sentence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Critical vulnerability count&lt;/td&gt;
&lt;td&gt;Critical vulnerabilities this month: 4, down from 12 last month.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MTTR&lt;/td&gt;
&lt;td&gt;Mean time to fix critical CVEs: 37 hours against a 48-hour target.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring coverage&lt;/td&gt;
&lt;td&gt;Applications with monitoring coverage: 20 of 20 production apps, 100% coverage.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLA compliance&lt;/td&gt;
&lt;td&gt;Critical CVE SLA compliance: 96% resolved within 48 hours this month.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Top engineering action&lt;/td&gt;
&lt;td&gt;The top 3 package upgrades will remove 61 open CVEs across 7 applications.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The board-ready version of vulnerability management is trend, target, coverage, and next action.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Enterprise Clients and Auditors Check on This Dashboard
&lt;/h2&gt;

&lt;p&gt;Enterprise clients and auditors check whether vulnerability management is controlled, measured, and improving. They do not expect zero vulnerabilities forever. They expect monitoring, triage, remediation, risk acceptance, and evidence. A strong dashboard helps answer these questions before they become blockers in sales or audits.&lt;/p&gt;

&lt;p&gt;For SOC2 and ISO 27001, the dashboard supports evidence that vulnerabilities are tracked and remediated according to documented procedures. For cyber insurance, it supports answers about scan frequency, MTTR, critical patch timelines, and control maturity. For enterprise client security questionnaires, it supports answers about open source dependency monitoring and remediation ownership.&lt;/p&gt;

&lt;p&gt;Auditors may ask for a sample vulnerability from detection to closure. The dashboard should make that easy. Click from the metric to the ticket, from the ticket to the pull request, from the pull request to the release, and from the release to the closed finding. This traceability is more valuable than a polished slide with no underlying evidence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Monitoring evidence:&lt;/strong&gt; The dashboard should show that scans run continuously or on a documented schedule.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remediation records:&lt;/strong&gt; Each significant finding should link to a ticket, owner, fix, test, and closure date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk acceptance:&lt;/strong&gt; Unfixed critical or high vulnerabilities should have formal approval, reason, expiry, and compensating controls.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Coverage proof:&lt;/strong&gt; The dashboard should show which production applications are monitored and which are not.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend reports:&lt;/strong&gt; The dashboard should show whether vulnerability counts and MTTR improve over time.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How Vulert Provides the Data Behind the Dashboard
&lt;/h2&gt;

&lt;p&gt;Vulert provides the underlying SCA data needed for a vulnerability metrics dashboard. It analyzes manifest files and SBOMs against 458,000+ known CVEs, alerts teams when new CVEs affect their specific packages, and provides exact fix guidance with versions and CLI commands. This gives teams structured data instead of raw manual research.&lt;/p&gt;

&lt;p&gt;Vulert supports common dependency files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOMs in SPDX and CycloneDX formats. That makes it suitable for teams with JavaScript, Java, Python, PHP, Go, Ruby, Rust, Dart, Elixir, Erlang, C++, and C#/.NET projects.&lt;/p&gt;

&lt;p&gt;The features that matter most for dashboards are continuous monitoring, timestamped scan history, vulnerability history, trend reports, Dependency Health grouping, Jira integration, and full CVE detail. A CTO does not need to inspect every CVE daily, but the dashboard needs reliable data underneath it. Vulert helps provide that data layer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Vulert focuses on open source dependency CVEs. Pair it with your broader security processes for infrastructure, cloud, identity, and application code findings.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Dashboard Template You Can Copy
&lt;/h2&gt;

&lt;p&gt;The easiest way to start is to create a dashboard with fixed sections. Do not let every weekly report use a different layout. Consistency helps the CTO, board, and auditors understand trend. Use the same metric names, same time windows, same severity definitions, and same SLA targets every month.&lt;/p&gt;

&lt;p&gt;The template below is intentionally short. It forces the security team to summarise instead of dumping raw scanner output. Add drill-down links for engineering details, but keep the executive view focused.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CTO Vulnerability Dashboard

Reporting Period:
Owner:
Coverage:
Production applications monitored: __ of __

1. Critical Vulnerability Trend
Current critical count:
13-week trend: Up / Down / Flat
Reason for change:

2. MTTR by Severity
Critical MTTR:
High MTTR:
Medium MTTR:

3. New CVEs Affecting Our Stack This Week
New Critical:
New High:
Most affected package:

4. Backlog by Age
Older than 30 days:
Older than 90 days:
Oldest critical finding:

5. Coverage
Applications monitored:
Applications missing monitoring:
Plan to close gaps:

6. Top 3 Package Upgrades by Impact
Package 1:
Package 2:
Package 3:
CVEs resolved if upgraded:

7. SLA Compliance
Critical SLA target:
Critical SLA compliance:
SLA breaches this month:
Accepted risks:

Board Summary:
Critical vulnerabilities this month: __, down/up from __.
Mean time to fix critical CVEs: __ hours, target __ hours.
Monitoring coverage: __ of __ applications.
SLA compliance: __% within target.
Top 3 upgrades remove __ CVEs.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A vulnerability management dashboard should show trend, risk direction, ownership, and action rather than raw CVE exports.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The 7 CTO-level metrics are critical count trend, MTTR by severity, new CVEs this week, backlog age, coverage, top packages by impact, and SLA compliance.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Critical vulnerability count should be shown over 13 weeks so leaders can see whether remediation is improving or falling behind.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MTTR targets should be explicit, such as critical vulnerabilities under 48 hours, high vulnerabilities under 7 days, and medium vulnerabilities under 30 days.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coverage must be visible because a dashboard is misleading if production applications are missing from monitoring.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert provides SCA trend data, new CVE detection, Dependency Health grouping, Jira integration, and scan history for audit-ready reporting.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What metrics should a security dashboard show?
&lt;/h3&gt;

&lt;p&gt;A security dashboard for management should show critical vulnerability trend, MTTR by severity, newly disclosed CVEs affecting the stack, backlog by age, monitoring coverage, top packages by impact, and SLA compliance. These metrics show both risk and remediation performance.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How do I report vulnerability management to my board?
&lt;/h3&gt;

&lt;p&gt;Use one sentence per key metric: critical count, MTTR, coverage, SLA compliance, and top remediation action. Avoid raw CVE spreadsheets. The board needs trend, target, and decision-ready context.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Why is application coverage important in a vulnerability dashboard?
&lt;/h3&gt;

&lt;p&gt;Coverage shows whether the dashboard reflects the whole production environment. If only 12 of 20 applications are scanned, every metric has a blind spot. CTOs should require 100% production application coverage or documented exceptions.&lt;/p&gt;

</description>
      <category>vulnerabilitymanagement</category>
      <category>cto</category>
      <category>scadashboard</category>
      <category>sbom</category>
    </item>
    <item>
      <title>Cyber Insurance and Open Source Vulnerabilities — What Insurers Now Require</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Sat, 01 Aug 2026 07:40:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/cyber-insurance-and-open-source-vulnerabilities-what-insurers-now-require-2fgc</link>
      <guid>https://dev.to/vulert_official/cyber-insurance-and-open-source-vulnerabilities-what-insurers-now-require-2fgc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Cyber insurance open source vulnerabilities&lt;/strong&gt; questions are now standard on many insurance applications because insurers have seen the cost of known, patchable software flaws turning into ransomware, breach, and supply chain claims.&lt;/p&gt;

&lt;p&gt;Cyber insurance used to focus on basic controls such as antivirus, firewalls, backups, and encryption. Insurers now ask deeper questions about vulnerability scanning frequency, software composition analysis, patch timelines, mean time to remediate, SBOMs, and whether your organisation can prove it acted when a critical CVE affected its software.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; A “yes” answer without evidence can create problems later. Insurers increasingly expect documented controls, scan history, remediation records, and clear patch timelines.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How Cyber Insurance Requirements Changed After Log4Shell
&lt;/h2&gt;

&lt;p&gt;Cyber insurance requirements changed because the market learned that many losses came from known vulnerabilities that organisations failed to identify or patch quickly. Log4Shell, SolarWinds, widespread ransomware campaigns, and repeated exploitation of public-facing software shifted underwriting from generic security checkboxes to evidence-based questions about operational security.&lt;/p&gt;

&lt;p&gt;In 2019, many insurance applications asked broad questions: do you use antivirus, do you have a firewall, do you encrypt sensitive data, and do you back up systems? By 2024, many applications were asking about patch management timelines, vulnerability scanning frequency, software composition analysis tools, third-party component tracking, and incident response plans. The difference matters because open source dependencies sit inside your applications, not just your servers.&lt;/p&gt;

&lt;p&gt;Software composition analysis is now relevant to insurance because it helps answer whether your organisation tracks vulnerable open source packages such as &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;, &lt;code&gt;jackson-databind&lt;/code&gt;, &lt;code&gt;lodash@4.17.20&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;axios&lt;/code&gt;, and other dependencies. If a major CVE appears and you cannot show how you identified affected applications, the insurer may view that as weak vulnerability management.&lt;/p&gt;

&lt;p&gt;By 2024, cyber insurance applications routinely ask about vulnerability scanning frequency, MTTR, and software composition analysis tools.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Exact Questions Insurers Ask About Open Source Security
&lt;/h2&gt;

&lt;p&gt;Insurers ask open source vulnerability questions because dependency risk can be invisible until a public CVE becomes urgent. A company may have strong endpoint security and still ship applications with vulnerable packages. The underwriter wants to know whether the organisation can detect, prioritise, and remediate those packages quickly enough to reduce claim probability.&lt;/p&gt;

&lt;p&gt;The exact wording changes by insurer, broker, industry, and company size. Chubb, AIG, Beazley, CNA, Coalition, and other cyber insurers may ask different versions of the same underlying control questions. The safest renewal strategy is to prepare evidence before the application arrives. Do not wait until the renewal deadline to discover that nobody knows your critical CVE remediation timeline.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Do you use software composition analysis tools to identify vulnerabilities in open source components?&lt;/strong&gt; The insurer asks this to understand whether you can detect CVEs in third-party packages. If the answer is yes, name the tool and describe the process.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What is your maximum acceptable time to patch critical vulnerabilities?&lt;/strong&gt; The insurer asks this because a vague answer means there is no documented service level agreement. Many teams use 30 days for critical CVEs, while stronger programmes target 14 days or less.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do you maintain a Software Bill of Materials for your products?&lt;/strong&gt; The insurer asks this because an SBOM helps prove you know which components are inside your products when a new vulnerability appears.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How frequently do you scan for known vulnerabilities?&lt;/strong&gt; The insurer asks this because quarterly or ad hoc scanning leaves long exposure windows. Continuous or daily scanning is much stronger evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;What is your mean time to remediate critical vulnerabilities?&lt;/strong&gt; The insurer asks this because actual remediation history is stronger than a written policy. MTTR shows whether the organisation fixes issues at the speed it claims.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;How do you handle vulnerabilities that cannot be patched immediately?&lt;/strong&gt; The insurer asks this because not every CVE has an immediate fix. A mature answer includes risk acceptance, compensating controls, ownership, and review dates.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Prepare a short “vulnerability management evidence pack” before renewal: SCA tool name, scan frequency, MTTR, SBOM status, patch SLA, and sample remediation tickets.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Premium Impact — What Strong Controls Actually Save You
&lt;/h2&gt;

&lt;p&gt;Cyber insurance pricing depends on many factors: company size, revenue, industry, claims history, data sensitivity, security controls, ransomware exposure, cloud footprint, and underwriting appetite. Open source vulnerability management is one part of that risk picture, but it can influence premium, exclusions, limits, and underwriting confidence.&lt;/p&gt;

&lt;p&gt;The business logic is simple. A company that continuously monitors dependencies, patches critical CVEs quickly, keeps SBOMs, and documents remediation gives the insurer better evidence that known vulnerabilities will not remain exposed for months. A company that scans only when customers ask or cannot name its critical patch timeline looks harder to insure.&lt;/p&gt;

&lt;p&gt;The brief’s cost example is useful for budgeting. A 50-person technology company might pay roughly $5,000-$15,000 per year without strong controls, while documented security controls including SCA monitoring may support a lower range such as $2,000-$6,000 per year. Actual premiums vary, and teams should confirm numbers with their broker. The key point remains: the premium saving can exceed the annual cost of focused SCA tooling.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Security Posture&lt;/th&gt;
&lt;th&gt;Typical Evidence&lt;/th&gt;
&lt;th&gt;Potential Insurance Impact&lt;/th&gt;
&lt;th&gt;Example Annual Cost Context&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Weak or undocumented controls&lt;/td&gt;
&lt;td&gt;No SCA tool, no patch SLA, no SBOM, no MTTR data.&lt;/td&gt;
&lt;td&gt;Higher premium, lower limits, exclusions, or rejection risk.&lt;/td&gt;
&lt;td&gt;$5,000-$15,000 for a 50-person tech company in the brief example.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minimum acceptable controls&lt;/td&gt;
&lt;td&gt;Weekly scanning, documented SLA, basic component tracking, MFA.&lt;/td&gt;
&lt;td&gt;Standard market access with fewer underwriting concerns.&lt;/td&gt;
&lt;td&gt;Premium depends on company profile and broker negotiation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strong documented controls&lt;/td&gt;
&lt;td&gt;Continuous SCA monitoring, MTTR under 14 days for critical CVEs, SBOMs, risk acceptance records.&lt;/td&gt;
&lt;td&gt;Better underwriting story and potential premium improvement.&lt;/td&gt;
&lt;td&gt;$2,000-$6,000 for a 50-person tech company in the brief example.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Constitutes Adequate Controls in 2026
&lt;/h2&gt;

&lt;p&gt;Cyber insurance requirements 2026 are moving toward evidence, not promises. An underwriter does not only want to hear that your team “takes vulnerabilities seriously.” They want to know how often you scan, how quickly you patch, who owns remediation, whether critical issues create tickets, and whether you can prove closure.&lt;/p&gt;

&lt;p&gt;Minimum acceptable controls usually include vulnerability scanning at least weekly, a documented patching SLA, third-party software component tracking, and MFA across critical systems. Strong controls include continuous automated SCA monitoring, evidence-backed MTTR under 14 days for critical CVEs, SBOMs for primary products, and a formal risk acceptance process for vulnerabilities that cannot be patched immediately.&lt;/p&gt;

&lt;p&gt;For open source dependencies, adequate controls should cover the full lifecycle. The team should identify packages through manifests or SBOMs, scan them for known CVEs, triage severity and exploitability, assign owners, fix or mitigate, create tickets, retain evidence, and review trends. Vulert supports this specific SCA evidence layer by creating scan history, alerts, fix guidance, Jira tickets, and trend reports.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Control&lt;/th&gt;
&lt;th&gt;Minimum Acceptable&lt;/th&gt;
&lt;th&gt;Strong / Preferred&lt;/th&gt;
&lt;th&gt;Evidence Needed&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SCA monitoring&lt;/td&gt;
&lt;td&gt;Weekly dependency vulnerability scans.&lt;/td&gt;
&lt;td&gt;Continuous monitoring with alerts when new CVEs affect used packages.&lt;/td&gt;
&lt;td&gt;Scan history, alert timestamps, tool configuration, dashboard export.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Critical patch SLA&lt;/td&gt;
&lt;td&gt;Documented 30-day target for critical vulnerabilities.&lt;/td&gt;
&lt;td&gt;14-day or faster target with actual MTTR evidence.&lt;/td&gt;
&lt;td&gt;Policy, tickets, PRs, release notes, closure dates.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SBOM&lt;/td&gt;
&lt;td&gt;Component inventory or SBOM for main products.&lt;/td&gt;
&lt;td&gt;CycloneDX or SPDX SBOM generated per release and scanned for CVEs.&lt;/td&gt;
&lt;td&gt;SBOM files, scan reports, release artifact links.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk acceptance&lt;/td&gt;
&lt;td&gt;Documented exceptions for unfixed vulnerabilities.&lt;/td&gt;
&lt;td&gt;Risk register with owner, expiry, compensating controls, and approval.&lt;/td&gt;
&lt;td&gt;Risk register entries and review history.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remediation workflow&lt;/td&gt;
&lt;td&gt;Manual tickets or backlog items for critical findings.&lt;/td&gt;
&lt;td&gt;Pre-filled Jira tickets with package, CVE, fix version, and CLI command.&lt;/td&gt;
&lt;td&gt;Ticket history, assignment, comments, closure evidence.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Management reporting&lt;/td&gt;
&lt;td&gt;Ad hoc reports during renewal.&lt;/td&gt;
&lt;td&gt;Trend reports showing vulnerability backlog and improvement over time.&lt;/td&gt;
&lt;td&gt;Monthly reports, MTTR chart, open findings by severity.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The Log4Shell Insurance Claim Issue
&lt;/h2&gt;

&lt;p&gt;Log4Shell showed why open source dependency visibility matters. The vulnerability, tracked as &lt;code&gt;CVE-2021-44228&lt;/code&gt;, affected Apache Log4j 2 versions before &lt;code&gt;2.15.0&lt;/code&gt; and triggered emergency response across software companies, enterprises, vendors, and governments. The hard part was not only patching. The hard part was finding every place Log4j existed.&lt;/p&gt;

&lt;p&gt;Insurance issues arise when a company cannot prove reasonable action. If an organisation had no dependency inventory, no scanning process, no SBOM, no owner, and no evidence of exposure assessment for weeks, an insurer may challenge whether the company met its duty of care. Policy wording varies, and claim outcomes depend on facts, exclusions, timing, and legal interpretation. Teams should not assume every Log4Shell-related claim was automatically paid or denied.&lt;/p&gt;

&lt;p&gt;The practical lesson is documentation. When a major CVE appears, preserve the evidence trail: alert time, affected package versions, applications reviewed, owner assignment, mitigation decision, patch PR, test result, deployment date, and closure. Even if the organisation decides a CVE is not exploitable in its environment, that assessment should be recorded.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Ask your broker how your policy treats known vulnerabilities, delayed patching, supply chain incidents, and failure-to-maintain-control language.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Building Your Insurance Documentation Package
&lt;/h2&gt;

&lt;p&gt;A strong renewal package makes the underwriter’s job easier. It shows that your organisation has repeatable controls, not last-minute answers. For cyber insurance open source vulnerabilities, the package should explain how you identify components, monitor CVEs, assign remediation, track MTTR, and handle exceptions.&lt;/p&gt;

&lt;p&gt;Build this package before the renewal questionnaire arrives. Export screenshots or reports from your SCA tool, list your patch SLAs, summarise last year’s critical vulnerability remediation, include SBOM status, and provide a sample ticket from detection to closure. If you have accepted risks, include a sanitised example showing owner, reason, compensating control, and review date.&lt;/p&gt;

&lt;p&gt;Vulert helps create much of the dependency evidence package. It scans manifests and SBOMs, provides timestamped scan history, monitors continuously for new CVEs, creates Jira tickets, shows exact fixed versions, and keeps vulnerability history and trend reports. That makes it easier to answer insurer questions with records instead of guesses.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Document your vulnerability management process:&lt;/strong&gt; Include scan frequency, triage roles, severity thresholds, patch SLAs, and risk acceptance rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export SCA monitoring evidence:&lt;/strong&gt; Include scan history, alert timestamps, affected package reports, and proof that monitoring runs continuously.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Calculate MTTR for critical CVEs:&lt;/strong&gt; Show discovery date, ticket date, fix date, deployment date, and closure date for recent Critical findings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;List tools in use:&lt;/strong&gt; Include SCA, ticketing, CI/CD, SBOM generation, and incident response tools with owners and purpose.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prepare SBOM evidence:&lt;/strong&gt; Include CycloneDX or SPDX SBOMs for primary products where available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show risk acceptance records:&lt;/strong&gt; Include approved exceptions for vulnerabilities that could not be patched immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include incident response coverage:&lt;/strong&gt; Show that your incident response plan covers vulnerability disclosure and emergency patching.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cyber Insurance Renewal Evidence Pack
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Vulnerability management procedure&lt;/li&gt;
&lt;li&gt;SCA tool name and scan frequency&lt;/li&gt;
&lt;li&gt;Screenshot or export of continuous monitoring history&lt;/li&gt;
&lt;li&gt;Critical CVE patch SLA&lt;/li&gt;
&lt;li&gt;MTTR report for Critical and High vulnerabilities&lt;/li&gt;
&lt;li&gt;SBOM status for primary products&lt;/li&gt;
&lt;li&gt;Sample remediation ticket with PR and deployment evidence&lt;/li&gt;
&lt;li&gt;Risk register entries for accepted vulnerabilities&lt;/li&gt;
&lt;li&gt;Incident response plan section for vulnerability disclosure&lt;/li&gt;
&lt;li&gt;Security tool inventory and owners&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Vulert Helps With Cyber Insurance SCA Evidence
&lt;/h2&gt;

&lt;p&gt;Cyber insurance SCA evidence needs to show more than “we ran a scan once.” It should show ongoing monitoring, affected package details, remediation guidance, ticket creation, and historical trend data. Vulert is built for that open source dependency layer.&lt;/p&gt;

&lt;p&gt;Vulert analyzes manifest files and SBOMs against 458,000+ known CVEs. It supports &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOMs in SPDX and CycloneDX formats.&lt;/p&gt;

&lt;p&gt;For renewal evidence, Vulert provides timestamped scan history, continuous monitoring, exact fixed versions, CLI fix commands, Dependency Health grouping, one-click Jira ticket creation, full CVE detail, workaround notes, vulnerability history, and trend reports. These records help answer insurer questions about scan frequency, remediation process, and whether the organisation tracks open source risk after deployment.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Timestamped alerts:&lt;/strong&gt; These records show when the organisation learned that a dependency became vulnerable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan history:&lt;/strong&gt; This evidence shows monitoring over time rather than a one-off renewal scan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix guidance:&lt;/strong&gt; This helps developers remediate quickly with exact fixed versions and CLI commands.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira tickets:&lt;/strong&gt; These connect insurer questions to actual remediation ownership and closure evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend reports:&lt;/strong&gt; These help show whether vulnerability backlog and MTTR are improving.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Mistakes That Increase Insurance Risk
&lt;/h2&gt;

&lt;p&gt;Many teams weaken their insurance position by giving vague answers. “We patch quickly” is not a measurable control. “We scan regularly” is not enough unless you can define frequency and show evidence. “Engineering handles it” is not a process unless ownership, SLA, ticketing, and closure records exist.&lt;/p&gt;

&lt;p&gt;The second mistake is scanning only infrastructure and ignoring application dependencies. Infrastructure vulnerability scans may find exposed servers and OS packages, but they may not fully identify application-level dependencies declared in files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, or SBOMs. Underwriters asking about open source components expect an answer about application dependencies, not only servers.&lt;/p&gt;

&lt;p&gt;The third mistake is having no formal exception process. Some vulnerabilities cannot be patched immediately because no fix exists, the package is deeply embedded, or the upgrade breaks compatibility. That is acceptable only if the organisation documents risk acceptance, compensating controls, owner, approval, and review date.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not answer insurer questionnaires optimistically. Answer based on controls you can prove with records.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Internal Links for Related Vulert Reading
&lt;/h2&gt;

&lt;p&gt;To strengthen your cyber insurance evidence package, continue with these Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ISO 27001 and Open Source Dependencies — What the Standard Actually Requires&lt;/li&gt;
&lt;li&gt;Software Supply Chain Security — A Complete Guide for Engineering Teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides explain how dependency monitoring supports audit evidence, security questionnaires, supply chain visibility, and structured vulnerability management.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Cyber insurance open source vulnerabilities questions now commonly cover SCA tools, scan frequency, patch timelines, MTTR, SBOMs, and risk acceptance.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Insurers tightened requirements after ransomware campaigns, Log4Shell, SolarWinds, and repeated exploitation of known patchable vulnerabilities.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Minimum acceptable controls usually include at least weekly vulnerability scanning, a documented patch SLA, component tracking, and MFA.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Strong controls include continuous SCA monitoring, MTTR under 14 days for critical CVEs, SBOMs for primary products, and formal risk acceptance records.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Premium impact varies, but documented controls can improve underwriting confidence and may reduce premiums or exclusions.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert helps build the SCA evidence trail through scan history, alerts, fix guidance, Jira tickets, vulnerability history, and trend reports.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Do cyber insurers require vulnerability scanning?
&lt;/h3&gt;

&lt;p&gt;Many cyber insurers now ask whether vulnerability scanning is performed, how often it runs, and how findings are remediated. For software companies, this increasingly includes open source dependency scanning through SCA tools, not only infrastructure scanning.&lt;/p&gt;

&lt;h3&gt;
  
  
  How does SCA monitoring affect cyber insurance premiums?
&lt;/h3&gt;

&lt;p&gt;SCA monitoring can improve your underwriting story because it shows that your organisation tracks open source vulnerabilities continuously and can produce remediation evidence. Premium impact varies by insurer and company risk profile, but documented controls may support better terms than vague or manual processes.&lt;/p&gt;

&lt;h3&gt;
  
  
  What is MTTR and why do insurers ask for it?
&lt;/h3&gt;

&lt;p&gt;MTTR means mean time to remediate. Insurers ask for it because it shows how quickly your organisation fixes vulnerabilities in practice, not just what the policy says. A strong programme can show MTTR for Critical and High findings with ticket and deployment evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Did cyber insurers pay Log4Shell claims?
&lt;/h3&gt;

&lt;p&gt;Claim outcomes depend on policy wording, facts, exclusions, timing, and whether the insured organisation maintained reasonable controls. Some claims may be disputed if the organisation cannot show that it had a process to identify exposure and act on known vulnerabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  What documents should I prepare for cyber insurance renewal?
&lt;/h3&gt;

&lt;p&gt;Prepare your vulnerability management procedure, SCA monitoring evidence, scan history, MTTR report, patch SLA, SBOM status, sample remediation tickets, risk acceptance records, and incident response plan section for vulnerability disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the Evidence Trail Your Insurer Asks For
&lt;/h2&gt;

&lt;p&gt;Cyber insurance applications now ask for proof: scan frequency, patch timelines, MTTR, SBOMs, and remediation records. Vulert helps teams create that open source vulnerability evidence trail through continuous monitoring and timestamped reports.&lt;/p&gt;

&lt;p&gt;Scan your dependencies free at &lt;code&gt;vulert.com/abom&lt;/code&gt; — upload your manifest file and see every vulnerability with exact fix commands in 60 seconds. No signup required.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>opensourcevulnerabilities</category>
      <category>vulert</category>
      <category>sca</category>
    </item>
    <item>
      <title>ISO 27001 and Open Source Dependencies — What the Standard Actually Requires</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Sat, 01 Aug 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/iso-27001-and-open-source-dependencies-what-the-standard-actually-requires-48mg</link>
      <guid>https://dev.to/vulert_official/iso-27001-and-open-source-dependencies-what-the-standard-actually-requires-48mg</guid>
      <description>&lt;p&gt;&lt;strong&gt;ISO 27001 open source dependency management&lt;/strong&gt; is not about proving that every package is perfect. It is about proving that your organisation can identify technical vulnerabilities, assess exposure, take action, and retain evidence.&lt;/p&gt;

&lt;p&gt;ISO/IEC 27001:2022 is the current version of the international information security management standard. This guide focuses only on the clauses and Annex A controls that relate to open source dependency vulnerability management, SCA monitoring, SBOM evidence, remediation records, and audit preparation.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is not a full ISO 27001 implementation guide. It covers the dependency security evidence auditors expect when your software uses open source packages.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  ISO 27001:2022 — The Current Version and What Changed
&lt;/h2&gt;

&lt;p&gt;ISO/IEC 27001:2022 replaced the previous 2013 version and is now the version companies should reference for new certification work. Organisations that held older certifications had a transition period to move to the 2022 revision. For engineering teams, the important change is not only the control numbering. The 2022 version makes it easier to map modern security processes to current technology risk, including cloud services, software installation, change management, and vulnerability management.&lt;/p&gt;

&lt;p&gt;For open source dependencies, ISO 27001 does not say “use this exact SCA vendor” or “generate this exact SBOM format.” Instead, it expects a risk-based management system. You need a documented process for identifying vulnerabilities in information systems, assessing whether they affect your organisation, and taking appropriate action. That process must produce evidence. A quarterly manual spreadsheet is usually weak evidence because new CVEs appear every day and dependency risk changes after deployment.&lt;/p&gt;

&lt;p&gt;This is where software composition analysis becomes relevant. SCA tools help identify vulnerable packages in files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, and SBOMs. The tool does not make you ISO 27001 certified by itself, but it helps create the monitoring and remediation evidence that supports your ISMS.&lt;/p&gt;

&lt;p&gt;Auditors usually care less about the tool name and more about the repeatable process, evidence, ownership, and risk treatment decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Controls That Directly Cover Open Source Dependency Security
&lt;/h2&gt;

&lt;p&gt;Open source dependencies connect to several ISO 27001:2022 controls. The most direct one is Control 8.8, Management of Technical Vulnerabilities. This control aligns closely with dependency vulnerability monitoring because open source packages are part of the information systems your organisation uses. If your application includes &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;, &lt;code&gt;lodash@4.17.20&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;jackson-databind&lt;/code&gt;, or &lt;code&gt;axios&lt;/code&gt;, those packages become part of your technical risk surface.&lt;/p&gt;

&lt;p&gt;Dependency upgrades also relate to change management. When developers patch a vulnerable package, they are changing production software. That change should follow your normal engineering workflow: pull request, review, automated tests, deployment approval where required, and release evidence. SCA alerts should therefore connect to tickets, pull requests, commits, test results, and deployment records.&lt;/p&gt;

&lt;p&gt;Third-party SCA tools also create a cloud service consideration. If your organisation uses Vulert, Snyk, Mend, GitHub Advanced Security, or another SaaS scanner, you should assess that tool as a supplier or cloud service under your security process. Finally, software installation controls matter because adding a new package is a form of software introduction into your environment.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ISO 27001:2022 Area&lt;/th&gt;
&lt;th&gt;Dependency Security Meaning&lt;/th&gt;
&lt;th&gt;Evidence to Keep&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Control 8.8 — Management of Technical Vulnerabilities&lt;/td&gt;
&lt;td&gt;The organisation identifies, assesses, and treats vulnerabilities in open source packages.&lt;/td&gt;
&lt;td&gt;SCA alerts, scan history, CVE reports, remediation tickets, risk register entries.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control 8.32 — Change Management&lt;/td&gt;
&lt;td&gt;Dependency upgrades for security fixes follow the approved engineering change process.&lt;/td&gt;
&lt;td&gt;Pull requests, approvals, test results, deployment logs, release notes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control 5.23 — Information Security for Use of Cloud Services&lt;/td&gt;
&lt;td&gt;SCA platforms used as SaaS tools are reviewed as cloud services.&lt;/td&gt;
&lt;td&gt;Vendor review, access control records, data handling notes, service owner approval.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Control A.8.19 — Installation of Software on Operational Systems&lt;/td&gt;
&lt;td&gt;New dependencies are evaluated before being added to production software.&lt;/td&gt;
&lt;td&gt;Dependency approval notes, package review checklist, SBOM updates, security tickets.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Control 8.8 — Management of Technical Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;Management of technical vulnerabilities is the control most directly tied to open source dependency security. For dependencies, the practical requirement is simple: know when a package you use becomes vulnerable, decide whether the vulnerability affects you, and take appropriate action. Appropriate action may mean patching, upgrading, applying a workaround, removing the package, or formally accepting risk with documented justification.&lt;/p&gt;

&lt;p&gt;The key word for auditors is evidence. A team should be able to show when a CVE was detected, which application used the affected package, who owned remediation, which fix version was available, when the fix was applied, and whether any residual risk remained. For example, if &lt;code&gt;CVE-2021-44228&lt;/code&gt; affected a Java service using &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;, the audit trail should show detection, triage, upgrade to a safe Log4j version, test evidence, deployment date, and closure.&lt;/p&gt;

&lt;p&gt;For ISO 27001 open source dependency processes, continuous or near-continuous monitoring is much stronger than ad hoc manual checking. New CVEs are disclosed after software is deployed. A package that scanned clean last month may become vulnerable today. A documented SCA process gives auditors a clear control story: package inventory, vulnerability feed, alert, assessment, remediation, verification, and retained record.&lt;/p&gt;

&lt;h2&gt;
  
  
  Control 8.32 — Change Management for Dependency Upgrades
&lt;/h2&gt;

&lt;p&gt;Change management applies when a dependency upgrade changes production software. Security patches can still break applications. A vulnerable package may require a major version upgrade, API change, lock file change, or parent package upgrade. That means the vulnerability management process must connect to your engineering change process.&lt;/p&gt;

&lt;p&gt;For most software teams, the practical evidence is a pull request. The PR shows the package version change, lock file update, reviewer approval, CI test result, and merged commit. A Jira ticket or GitHub issue can show why the change happened, which CVE it fixed, and when it was deployed. This creates an audit trail without adding heavy bureaucracy.&lt;/p&gt;

&lt;p&gt;For example, if a Node.js project upgrades &lt;code&gt;axios&lt;/code&gt; because a vulnerable transitive package is present, the change record should include the old version, new version, test status, owner, and deployment date. The auditor does not need a 20-page document for each dependency. They need consistent evidence that security changes are controlled, reviewed, and traceable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Control 5.23 — Cloud Services Including SCA Tools
&lt;/h2&gt;

&lt;p&gt;Cloud service security matters when your organisation uses a SaaS tool to scan dependency files, store vulnerability records, send alerts, or create remediation tickets. SCA tools process information about your software components, repositories, package files, SBOMs, and vulnerability posture. That makes them part of your supplier and cloud service review process.&lt;/p&gt;

&lt;p&gt;The review does not need to be complicated for every tool, but it should exist. Record who approved the tool, what data it receives, who has access, how authentication works, whether SSO or 2FA is enabled, and how alerts are used. If the tool integrates with Jira, GitHub, GitLab, or Slack, include those integrations in the review.&lt;/p&gt;

&lt;p&gt;Vulert works with manifest files and SBOMs rather than requiring access to proprietary source code. That can simplify security review for teams that want dependency visibility without handing over full code access. Still, the organisation should document the tool as part of its ISO 27001 cloud service inventory.&lt;/p&gt;

&lt;h2&gt;
  
  
  Control A.8.19 — Software Installation Controls
&lt;/h2&gt;

&lt;p&gt;Software installation controls apply to the packages added to operational systems. In modern development, installing software often means adding an npm package, Maven artifact, PyPI package, Composer package, Go module, Ruby gem, Rust crate, or .NET package. A single line in a manifest can bring in hundreds of transitive dependencies.&lt;/p&gt;

&lt;p&gt;A practical control is a package approval process. Teams do not need a security committee for every package, but they should define review rules. For example, block packages with known critical CVEs, unknown maintainers, abandoned release history, suspicious install scripts, or no clear business need. Require extra review for packages added to authentication, payment, encryption, or customer data flows.&lt;/p&gt;

&lt;p&gt;This control also supports SBOM generation. If you generate an SBOM for each release, you can show which components were installed and used at the time of deployment. That inventory supports both vulnerability response and audit evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  What ISO 27001 Auditors Will Actually Ask For
&lt;/h2&gt;

&lt;p&gt;Auditors usually ask practical questions. They want to see that your vulnerability management process exists, runs regularly, produces evidence, and leads to action. They also want to see that exceptions and accepted risks are not hidden in chat messages or forgotten spreadsheets. Open source dependency security should therefore be tied to documented procedures, tickets, reports, and risk records.&lt;/p&gt;

&lt;p&gt;Expect the auditor to ask for examples. They may ask you to show a recent vulnerability finding, explain how the team assessed it, prove who owned it, show the remediation ticket, and demonstrate closure. If the vulnerability was not fixed, they may ask for the risk acceptance record, compensating controls, and approval. This is where automated scan history and timestamped alerts become useful.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Show us your vulnerability management process:&lt;/strong&gt; Provide the documented procedure that explains how dependency vulnerabilities are identified, assessed, assigned, remediated, or accepted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show us evidence of monitoring:&lt;/strong&gt; Provide SCA scan history, alerts, dashboards, or reports showing that open source dependencies are monitored for new CVEs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show us a recent remediation record:&lt;/strong&gt; Provide a ticket, pull request, test result, and deployment record for a recent dependency vulnerability fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show us accepted vulnerability risks:&lt;/strong&gt; Provide risk register entries for vulnerabilities that were not patched immediately, including owner, reason, expiry, and approval.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show us timeline evidence:&lt;/strong&gt; Provide dates from discovery to triage, remediation, deployment, and closure for recent Critical or High findings.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show us the asset or component inventory:&lt;/strong&gt; Provide manifests, SBOMs, repository lists, or application inventories showing what components are in scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Prepare 3 worked examples before the audit: one fixed dependency CVE, one accepted risk, and one false positive or non-applicable finding.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Documentation ISO 27001 Requires for Dependency Security
&lt;/h2&gt;

&lt;p&gt;ISO 27001 expects a management system, not random tool output. For dependency security, that means you should document the process from package inventory to remediation evidence. The document does not need to be long, but it should be clear enough that engineers, security, management, and auditors understand how the process works.&lt;/p&gt;

&lt;p&gt;A useful dependency vulnerability management procedure should define scope, roles, monitoring frequency, severity criteria, triage workflow, remediation timelines, risk acceptance rules, change management links, and evidence retention. If you use an SCA tool, name it. If you generate SBOMs, state when they are created and where they are stored. If you create Jira tickets, describe how they are assigned and closed.&lt;/p&gt;

&lt;p&gt;The policy should also define what happens when no fix is available. Some CVEs have no immediate patch. In that case, the team should record compensating controls, exposure analysis, workaround steps, or risk acceptance. For example, a vulnerable package may exist only in a dev dependency, or the vulnerable code path may not be reachable. That assessment should be documented.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Document&lt;/th&gt;
&lt;th&gt;Purpose&lt;/th&gt;
&lt;th&gt;Example Evidence&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vulnerability management procedure&lt;/td&gt;
&lt;td&gt;Defines how vulnerabilities are monitored, assessed, treated, and recorded.&lt;/td&gt;
&lt;td&gt;Approved policy, owner, review date, workflow diagram.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dependency inventory&lt;/td&gt;
&lt;td&gt;Shows which packages and versions are used by each application.&lt;/td&gt;
&lt;td&gt;Manifest files, lock files, SBOMs, Vulert scan reports.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Remediation records&lt;/td&gt;
&lt;td&gt;Shows that vulnerabilities were fixed through controlled changes.&lt;/td&gt;
&lt;td&gt;Jira tickets, pull requests, tests, deployment records.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Risk register&lt;/td&gt;
&lt;td&gt;Tracks vulnerabilities that are accepted, deferred, or mitigated.&lt;/td&gt;
&lt;td&gt;Risk owner, reason, expiry date, approval, compensating controls.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trend reports&lt;/td&gt;
&lt;td&gt;Shows management oversight and improvement over time.&lt;/td&gt;
&lt;td&gt;Open findings by severity, time to remediate, recurring packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How Continuous Monitoring Satisfies Control 8.8
&lt;/h2&gt;

&lt;p&gt;Continuous monitoring helps satisfy the practical evidence requirements behind Control 8.8 because dependency risk changes after deployment. A package can be safe at release time and vulnerable a week later when a new CVE becomes public. Manual quarterly checks create long blind spots. Continuous SCA monitoring reduces that gap and creates an audit trail.&lt;/p&gt;

&lt;p&gt;Vulert monitors open source dependencies by analyzing manifest files and SBOMs against 458,000+ known CVEs. It alerts teams when vulnerabilities are found or when new CVEs affect specific package versions. It also provides exact fixed versions, CLI commands, Dependency Health grouping, Jira ticket creation, full CVE detail, workaround information, vulnerability history, and trend reports.&lt;/p&gt;

&lt;p&gt;For ISO 27001 evidence, the useful part is traceability. A timestamped alert shows when the organisation became aware of a vulnerability. Scan history shows what was found and when. Remediation records show what changed. Jira tickets show ownership. Trend reports show whether the backlog is improving. Together, these artifacts support the story auditors need to hear: the organisation obtains timely information, assesses exposure, and takes appropriate action.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example dependency evidence workflow&lt;/span&gt;

&lt;span class="c"&gt;# 1. Generate an SBOM for a release&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# 2. Upload sbom.json or your manifest file to Vulert&lt;/span&gt;
&lt;span class="c"&gt;# https://vulert.com/abom&lt;/span&gt;

&lt;span class="c"&gt;# 3. Create remediation tickets for Critical and High findings&lt;/span&gt;

&lt;span class="c"&gt;# 4. Upgrade packages through pull requests and retain test evidence&lt;/span&gt;

&lt;span class="c"&gt;# 5. Keep scan history and trend reports for ISO 27001 audit evidence&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ISO 27001 Dependency Security Process Template
&lt;/h2&gt;

&lt;p&gt;The following template can help teams describe dependency security in ISO 27001-compatible language. Adapt it to your organisation, risk appetite, product architecture, and engineering workflow. The goal is to show that open source dependency vulnerabilities are identified, assessed, treated, documented, and reviewed.&lt;/p&gt;

&lt;p&gt;Keep the template short enough that the team actually follows it. A process that looks perfect but never runs is weak audit evidence. A simple procedure that runs every week, creates tickets, and closes findings is much stronger. Connect the template to existing engineering tools such as GitHub, GitLab, Jira, Slack, CI/CD, and release notes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Dependency Vulnerability Management Procedure

Scope:
All production applications, maintained repositories, and release artifacts that use open source dependencies.

Inventory:
Each application must retain supported manifest files, lock files, or SBOMs showing direct and transitive dependencies.

Monitoring:
Dependencies are monitored continuously using an approved SCA process. New Critical and High CVEs are reviewed when alerts are received.

Triage:
Security or engineering reviews each finding for affected package, installed version, reachable code path, exploitability, and business exposure.

Remediation:
Vulnerabilities are patched by upgrading to a fixed version, applying a workaround, removing the package, or replacing the dependency.

Change Control:
Dependency upgrades are performed through pull requests with review, automated testing, and deployment evidence.

Risk Acceptance:
Unresolved vulnerabilities require a risk register entry with owner, reason, compensating controls, approval, and review date.

Evidence:
Scan history, alerts, tickets, pull requests, test results, deployment records, SBOMs, and trend reports are retained for audit review.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This template is a starting point. Align timelines, severity thresholds, and approval rules with your own ISMS and risk treatment process.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  How SBOMs Support ISO 27001 Vulnerability Management
&lt;/h2&gt;

&lt;p&gt;Software bill of materials files are not explicitly required by ISO 27001, but they strongly support vulnerability management evidence. Control 8.8 expects the organisation to obtain timely information about vulnerabilities in systems being used. To do that well, you need to know which components those systems contain.&lt;/p&gt;

&lt;p&gt;An SBOM provides a formal component inventory for a product, build, or release. It can show direct and transitive dependencies, package names, versions, suppliers, and identifiers. When a major vulnerability appears, the organisation can search SBOMs to determine whether affected packages exist in any release. This is much faster than asking every engineering team to manually inspect repositories during an incident.&lt;/p&gt;

&lt;p&gt;Vulert accepts CycloneDX and SPDX SBOM uploads. That helps teams use SBOMs as part of their ISO 27001 evidence workflow: generate SBOM, scan for CVEs, create remediation tickets, retain scan history, and show trend reports. For enterprise sales, this can also support customer security questionnaires that ask how the company tracks open source dependency risk.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SBOM Use Case&lt;/th&gt;
&lt;th&gt;ISO 27001 Value&lt;/th&gt;
&lt;th&gt;Evidence Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Release inventory&lt;/td&gt;
&lt;td&gt;Shows which components were present in a specific release.&lt;/td&gt;
&lt;td&gt;CycloneDX or SPDX file stored with release artifacts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CVE response&lt;/td&gt;
&lt;td&gt;Helps determine whether a newly disclosed CVE affects the organisation.&lt;/td&gt;
&lt;td&gt;SBOM scan report showing affected and unaffected components.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Audit evidence&lt;/td&gt;
&lt;td&gt;Shows a repeatable process for component visibility and vulnerability review.&lt;/td&gt;
&lt;td&gt;Timestamped scan history and remediation records.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Customer security review&lt;/td&gt;
&lt;td&gt;Supports answers about dependency inventory and vulnerability monitoring.&lt;/td&gt;
&lt;td&gt;Trend report, SBOM policy, and sample remediation ticket.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Common Mistakes That Fail ISO 27001 Dependency Reviews
&lt;/h2&gt;

&lt;p&gt;Teams often fail dependency reviews because they confuse scanning with management. A scan report is useful, but it is not enough by itself. The organisation also needs triage, ownership, remediation, change control, risk acceptance, and management review. If the same Critical finding appears for months without an owner or risk record, the tool output becomes evidence of weak process.&lt;/p&gt;

&lt;p&gt;The second mistake is scanning only before release. Open source vulnerabilities are disclosed continuously. If a package becomes vulnerable after deployment, a pre-release scan will not catch it unless the team scans again or has continuous monitoring. This is why “timely information” matters in practice.&lt;/p&gt;

&lt;p&gt;The third mistake is poor evidence retention. Teams fix vulnerabilities but lose the audit trail because the conversation happened in Slack, the PR description was empty, or the ticket was deleted. ISO 27001 evidence should survive normal engineering churn. Keep tickets, scan history, release notes, and risk records organised by application and date.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Scan-only thinking:&lt;/strong&gt; A scan report without ownership, remediation, or risk treatment does not prove effective vulnerability management.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quarterly blind spots:&lt;/strong&gt; Manual scans every few months can miss CVEs disclosed after deployment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Missing risk acceptance:&lt;/strong&gt; Deferred vulnerabilities should have a documented owner, reason, compensating control, and review date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Uncontrolled upgrades:&lt;/strong&gt; Emergency dependency updates should still leave pull request, test, and deployment evidence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No component inventory:&lt;/strong&gt; Teams cannot assess exposure quickly if they do not know which packages and versions are in use.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To strengthen your ISO 27001 dependency security evidence, continue with these Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to Generate an SBOM — Tools and Commands for Every Language&lt;/li&gt;
&lt;li&gt;Software Supply Chain Security — A Complete Guide for Engineering Teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides help teams build the component inventory and supply chain visibility needed for stronger vulnerability management evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISO 27001 open source dependency security maps most directly to Control 8.8, Management of Technical Vulnerabilities.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ISO 27001:2022 expects organisations to identify vulnerabilities, assess exposure, take appropriate action, and retain evidence.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dependency upgrades also connect to Control 8.32 because security patches change production systems and should follow change management.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SCA tools used as SaaS platforms should be reviewed under cloud service and supplier security processes.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SBOMs are not explicitly required by ISO 27001, but they provide strong evidence of component visibility and vulnerability response maturity.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert supports ISO 27001 vulnerability evidence through timestamped scan history, CVE alerts, remediation guidance, Jira tickets, and trend reports.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Does ISO 27001 require dependency scanning?
&lt;/h3&gt;

&lt;p&gt;ISO 27001 does not name a specific dependency scanner, but Control 8.8 requires a process for obtaining vulnerability information, assessing exposure, and taking action. For software teams using open source packages, SCA scanning is a practical way to produce that evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How does an SBOM help with ISO 27001 compliance?
&lt;/h3&gt;

&lt;p&gt;An SBOM helps by documenting which components exist in a product or release. When a new CVE is disclosed, the SBOM helps determine whether the affected package is present, which supports timely exposure assessment and audit evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert make a company ISO 27001 compliant?
&lt;/h3&gt;

&lt;p&gt;No single tool makes a company ISO 27001 compliant. Vulert supports the dependency vulnerability monitoring and evidence layer by providing CVE alerts, scan history, remediation guidance, Jira ticket creation, and trend reports. The organisation still needs a complete ISMS, risk process, change management, ownership, and audit controls.&lt;/p&gt;

</description>
      <category>iso27001</category>
      <category>sbom</category>
      <category>vulert</category>
      <category>sca</category>
    </item>
    <item>
      <title>Open Source Licence Risk — When Your Dependencies Create Legal Problems</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Fri, 31 Jul 2026 07:30:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/open-source-licence-risk-when-your-dependencies-create-legal-problems-2m87</link>
      <guid>https://dev.to/vulert_official/open-source-licence-risk-when-your-dependencies-create-legal-problems-2m87</guid>
      <description>&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This post is a practical technical and business guide, not legal advice. Consult a qualified lawyer for your specific licence compliance obligations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open source licence risk&lt;/strong&gt; becomes real when a developer adds one dependency and the legal team later discovers GPL, AGPL, or restrictive commercial terms hidden somewhere in the dependency tree.&lt;/p&gt;

&lt;p&gt;Most developers understand permissive licences such as MIT. Fewer understand how GPL, AGPL, LGPL, MPL, or Business Source Licence terms can affect a commercial product, SaaS platform, funding round, acquisition, or enterprise customer review. This guide explains the licence categories, transitive risk, common conflict scenarios, tooling, and what Vulert does and does not cover.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not treat licence review as a one-time checklist. Dependencies change, transitive packages change, and licence terms can change across versions.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Five Licence Categories Every Developer Should Know
&lt;/h2&gt;

&lt;p&gt;Developers do not need to memorise every open source licence, but they should understand the categories that create business decisions. The difference between MIT and AGPL is not cosmetic. One usually allows commercial use with attribution. The other can create source disclosure obligations for network-accessible software under certain conditions.&lt;/p&gt;

&lt;p&gt;Permissive licences are generally the easiest for commercial teams to use. MIT, Apache 2.0, BSD, and ISC typically allow use, modification, distribution, and commercial use with notice requirements. Apache 2.0 also includes explicit patent terms, which many enterprise legal teams like. These licences rarely create the same product-level obligations as strong copyleft licences.&lt;/p&gt;

&lt;p&gt;Weak copyleft licences such as LGPL and MPL create more specific obligations. LGPL often permits linking from proprietary software, but modifications to the LGPL library itself may need to be shared. MPL applies copyleft at file level, which means modifications to MPL-covered files may need to stay under MPL while separate proprietary files can remain closed.&lt;/p&gt;

&lt;p&gt;Strong copyleft licences such as GPL v2 and GPL v3 create the most concern for distributed commercial products. If a product incorporates GPL-covered code in a way that triggers GPL obligations, the product may need to be distributed under GPL terms. Network copyleft, especially AGPL v3, extends concern to SaaS because users interact with the software over a network.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Licence&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Commercial Use&lt;/th&gt;
&lt;th&gt;Copyleft Trigger&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;MIT&lt;/td&gt;
&lt;td&gt;Permissive&lt;/td&gt;
&lt;td&gt;Generally allowed with copyright notice.&lt;/td&gt;
&lt;td&gt;No broad copyleft trigger.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Apache 2.0&lt;/td&gt;
&lt;td&gt;Permissive&lt;/td&gt;
&lt;td&gt;Generally allowed with notice and licence terms.&lt;/td&gt;
&lt;td&gt;No broad copyleft trigger, with patent terms included.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BSD 2-Clause / 3-Clause&lt;/td&gt;
&lt;td&gt;Permissive&lt;/td&gt;
&lt;td&gt;Generally allowed with attribution conditions.&lt;/td&gt;
&lt;td&gt;No broad copyleft trigger.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ISC&lt;/td&gt;
&lt;td&gt;Permissive&lt;/td&gt;
&lt;td&gt;Generally allowed and similar to MIT.&lt;/td&gt;
&lt;td&gt;No broad copyleft trigger.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LGPL&lt;/td&gt;
&lt;td&gt;Weak copyleft&lt;/td&gt;
&lt;td&gt;Often usable in proprietary software with conditions.&lt;/td&gt;
&lt;td&gt;Modifying the LGPL library itself can require sharing those changes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;MPL&lt;/td&gt;
&lt;td&gt;Weak copyleft&lt;/td&gt;
&lt;td&gt;Often usable with proprietary code in separate files.&lt;/td&gt;
&lt;td&gt;Modifications to MPL-covered files must usually remain under MPL.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GPL v2 / GPL v3&lt;/td&gt;
&lt;td&gt;Strong copyleft&lt;/td&gt;
&lt;td&gt;Commercial use may be possible, but distribution obligations can apply.&lt;/td&gt;
&lt;td&gt;Distributed software incorporating GPL code may need source availability under GPL terms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AGPL v3&lt;/td&gt;
&lt;td&gt;Network copyleft&lt;/td&gt;
&lt;td&gt;High-risk for SaaS unless legally reviewed.&lt;/td&gt;
&lt;td&gt;Network users may trigger source availability obligations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BSL / BUSL&lt;/td&gt;
&lt;td&gt;Commercial source-available&lt;/td&gt;
&lt;td&gt;Depends on the exact terms and change date.&lt;/td&gt;
&lt;td&gt;Restrictions may apply to competing services or production use.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Licence risk is not only about whether code is open source. It is about what obligations attach when you use, modify, distribute, or provide access to that code.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Transitive Licence Problem — The Risk You Cannot See Directly
&lt;/h2&gt;

&lt;p&gt;The transitive licence problem follows the same logic as transitive vulnerability risk. You might not knowingly install a GPL package, but a dependency you use might depend on one. If &lt;code&gt;package-a&lt;/code&gt; uses MIT and depends on &lt;code&gt;package-b&lt;/code&gt; under GPL, your application may indirectly include GPL-covered code.&lt;/p&gt;

&lt;p&gt;This matters because developers usually review direct dependencies, not every package several layers deep. A JavaScript application may list 25 direct dependencies but install 1,200 total packages through transitive dependencies. A Maven project may add one framework starter and pull dozens of JAR files. A Python project may add one ML or web framework package and inherit many libraries maintained by different teams under different licences.&lt;/p&gt;

&lt;p&gt;Licence scanning must therefore inspect the full dependency tree. Reviewing only &lt;code&gt;package.json&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, or &lt;code&gt;pom.xml&lt;/code&gt; is not enough. Teams need lock files, resolved dependency graphs, SBOMs, and licence metadata. The same inventory that helps security teams find CVEs also helps legal and compliance teams identify licence obligations.&lt;/p&gt;

&lt;p&gt;The most dangerous licence issues often appear during due diligence, not during development. A company may ship for years without formal licence review, then discover a problematic AGPL or GPL dependency during a funding round, acquisition, customer security review, or enterprise procurement process.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Treat licence review like vulnerability review: scan direct and transitive dependencies, assign ownership, and repeat it whenever dependencies change.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Three Licence Scenarios That Create Real Business Problems
&lt;/h2&gt;

&lt;p&gt;Open source legal risk becomes serious when licence obligations conflict with your business model. Many open source licences are friendly to commercial use, but some create obligations that product, engineering, and legal teams must understand before shipping. The most common conflict scenarios involve AGPL in SaaS, GPL in distributed software, and Business Source Licence restrictions in products that compete with the licensor.&lt;/p&gt;

&lt;p&gt;These scenarios do not always mean “you cannot use the package.” They mean “you need review before use.” Sometimes the answer is to replace the package. Sometimes dynamic linking or unmodified library use changes the risk. Sometimes the company can purchase a commercial licence. Sometimes the package is safe in internal tooling but risky in distributed customer software.&lt;/p&gt;

&lt;h2&gt;
  
  
  AGPL and SaaS Products
&lt;/h2&gt;

&lt;p&gt;AGPL v3 is often described as the GPL for network software. If you modify or use AGPL-covered code in software that users access over a network, you may need to provide source code under AGPL terms. This makes AGPL especially sensitive for SaaS companies because SaaS users interact with the product without receiving a traditional software download.&lt;/p&gt;

&lt;p&gt;Some historical versions or editions of tools associated with databases, dashboards, or infrastructure software have used AGPL or moved across licence models over time. Developers should not assume that a package is acceptable because it is popular. They should check the exact package, exact version, exact use case, and exact licence terms.&lt;/p&gt;

&lt;h2&gt;
  
  
  GPL in Distributed Software
&lt;/h2&gt;

&lt;p&gt;GPL licence compliance becomes especially important when a company distributes a compiled product, desktop app, mobile app, appliance, SDK, or embedded device containing GPL-covered code. Distribution can trigger obligations to provide source code under GPL terms for the covered work.&lt;/p&gt;

&lt;p&gt;This is why embedded, desktop, and commercial software vendors often have strict policies around GPL dependencies. A SaaS-only company may focus heavily on AGPL, while a device manufacturer may focus heavily on GPL. The risk depends on how the software is used and whether it is distributed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Business Source Licence and Competing Products
&lt;/h2&gt;

&lt;p&gt;Business Source Licence, often written as BSL or BUSL, is a source-available commercial licence used by several infrastructure companies. Elasticsearch moved away from Apache 2.0 after version 7.10. HashiCorp changed Terraform to BUSL in 2023, which contributed to enterprise concern and the creation of OpenTofu as an open source fork.&lt;/p&gt;

&lt;p&gt;BSL terms vary by project. They often allow many uses but restrict offering the software as a competing service or product. They may also convert to an open source licence after a change date. Teams should read the exact terms instead of treating all source-available licences as equivalent.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Scenario&lt;/th&gt;
&lt;th&gt;Common Risk&lt;/th&gt;
&lt;th&gt;Practical Response&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SaaS company uses AGPL code.&lt;/td&gt;
&lt;td&gt;Network copyleft obligations may affect the SaaS application.&lt;/td&gt;
&lt;td&gt;Ask legal to review and consider replacing the package.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company distributes a product containing GPL code.&lt;/td&gt;
&lt;td&gt;GPL source availability obligations may apply to the distributed product.&lt;/td&gt;
&lt;td&gt;Review usage, linking, distribution model, and alternatives.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Company uses BSL software in a competing product.&lt;/td&gt;
&lt;td&gt;The licence may prohibit competitive hosted or commercial use.&lt;/td&gt;
&lt;td&gt;Read the specific BSL terms and seek a commercial licence if needed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to Check Your Dependency Licences
&lt;/h2&gt;

&lt;p&gt;Teams should check dependency licences with ecosystem-specific tools and then review high-risk results manually. Licence metadata can be incomplete, inconsistent, or wrong. A scanner may report UNKNOWN, dual licences, conflicting package metadata, or a licence expression that needs interpretation. Treat tooling as an inventory step, not a legal conclusion.&lt;/p&gt;

&lt;p&gt;For JavaScript, &lt;code&gt;license-checker&lt;/code&gt; can scan npm dependencies. For Python, &lt;code&gt;pip-licenses&lt;/code&gt; can list installed package licences. For Java and Maven, the Maven licence plugin can aggregate third-party licence information. For .NET, &lt;code&gt;dotnet-project-licenses&lt;/code&gt; can help inspect NuGet dependencies. FOSSA provides paid licence compliance workflows, and the REUSE tool can support SPDX-based licence metadata management.&lt;/p&gt;

&lt;p&gt;The strongest approach is to run licence checks in CI, export results, and send high-risk findings to legal or compliance review. Do not block every unknown result immediately. Start by blocking or reviewing strong copyleft, AGPL, unknown licences, and commercial source-available licences in production code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# npm / JavaScript&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; license-checker
license-checker &lt;span class="nt"&gt;--summary&lt;/span&gt;

&lt;span class="c"&gt;# Python&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;pip-licenses
pip-licenses

&lt;span class="c"&gt;# Java / Maven&lt;/span&gt;
mvn license:aggregate-add-third-party

&lt;span class="c"&gt;# .NET&lt;/span&gt;
dotnet tool &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--global&lt;/span&gt; dotnet-project-licenses
dotnet-project-licenses &lt;span class="nt"&gt;--input&lt;/span&gt; ./YourProject.csproj

&lt;span class="c"&gt;# SPDX / REUSE&lt;/span&gt;
pipx &lt;span class="nb"&gt;install &lt;/span&gt;reuse
reuse lint
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Licence tools help you find packages that need review. They do not replace advice from a lawyer who understands your product, distribution model, and customer contracts.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What to Do When You Find a Problematic Licence
&lt;/h2&gt;

&lt;p&gt;Finding a problematic licence does not always mean panic. It means the team needs a controlled decision. The right response depends on the licence, how the dependency is used, whether the software is distributed, whether users access it over a network, whether the package was modified, and whether alternatives exist.&lt;/p&gt;

&lt;p&gt;The first option is replacement. If an AGPL package creates unacceptable SaaS risk, find a permissively licensed alternative. If a GPL library appears in a distributed product, consider replacing it with MIT, Apache 2.0, BSD, or commercial alternatives. The second option is usage adjustment. An LGPL library may be acceptable if dynamically linked and unmodified, depending on your legal advice. The third option is a commercial licence exception from the maintainer or vendor.&lt;/p&gt;

&lt;p&gt;Document the decision. A due diligence reviewer will want to know when the package was found, who reviewed it, what the risk was, what action was taken, and whether the package remains in production. A spreadsheet is better than nothing, but a repeatable process with scan outputs, SBOMs, ticket history, and approvals is stronger.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Identify the exact package and version:&lt;/strong&gt; Licence obligations can change between versions, so record the exact dependency and resolved version.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Determine direct or transitive use:&lt;/strong&gt; Find whether your code imports the package directly or whether another package pulls it in.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Check how the software is used:&lt;/strong&gt; Usage in internal tooling, SaaS backend, distributed software, SDKs, and embedded devices can create different risk profiles.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Find a permissive alternative:&lt;/strong&gt; Prefer MIT, Apache 2.0, BSD, or ISC alternatives when the existing licence creates unacceptable risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consider commercial licensing:&lt;/strong&gt; Ask the maintainer or vendor whether a paid commercial licence or exception is available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Consult legal counsel:&lt;/strong&gt; Ask a lawyer experienced in open source licensing before shipping or distributing high-risk combinations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Record the decision:&lt;/strong&gt; Keep evidence of review, remediation, acceptance, replacement, or commercial licensing for future audits.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Licence Risk During Due Diligence — What Investors and Acquirers Check
&lt;/h2&gt;

&lt;p&gt;Licence issues often surface during due diligence because investors and acquirers need to understand whether the company owns or can legally commercialise its software. They may ask for a dependency inventory, SBOM, open source policy, licence scan results, high-risk package list, GPL or AGPL usage, and evidence of remediation.&lt;/p&gt;

&lt;p&gt;A due diligence team may not object to open source use. Most modern products depend heavily on open source. The concern is unmanaged open source. If the company cannot say which packages it uses, which licences apply, whether GPL or AGPL exists in production, or who approved exceptions, the risk looks uncontrolled.&lt;/p&gt;

&lt;p&gt;Transitive dependencies create the hardest questions. A team may confidently state that it did not intentionally add GPL code, then a scan reveals GPL or AGPL several layers deep. That does not automatically kill a deal, but it creates work, delays, and uncomfortable legal review. The earlier a company builds inventory and review practices, the easier diligence becomes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Dependency inventory:&lt;/strong&gt; Reviewers want a list of direct and transitive dependencies used in production products.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Licence scan results:&lt;/strong&gt; Reviewers look for GPL, AGPL, LGPL, unknown, custom, or commercial source-available licences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exception records:&lt;/strong&gt; Reviewers ask whether high-risk licences were approved, replaced, or commercially licensed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SBOM evidence:&lt;/strong&gt; Reviewers may request CycloneDX or SPDX SBOMs for major products and releases.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remediation history:&lt;/strong&gt; Reviewers prefer evidence that the company found, fixed, or accepted licence risk through a controlled process.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What Vulert Covers and What It Does Not
&lt;/h2&gt;

&lt;p&gt;Vulert focuses on security vulnerabilities, not licence compliance. It analyzes manifest files and SBOMs against 458,000+ known CVEs, alerts teams when new CVEs affect their package versions, and provides exact fixed versions with CLI commands. That is security vulnerability monitoring, not legal licence analysis.&lt;/p&gt;

&lt;p&gt;For licence compliance scanning, use a dedicated tool such as FOSSA, ecosystem tools like &lt;code&gt;license-checker&lt;/code&gt; or &lt;code&gt;pip-licenses&lt;/code&gt;, SPDX-based workflows, REUSE, and manual legal review. This distinction matters because a dependency can be legally risky without having a CVE, and a dependency can have a CVE while being licensed permissively.&lt;/p&gt;

&lt;p&gt;Vulert still helps with the inventory foundation. Security and licence review both start with the same basic question: what packages are we running? Vulert accepts manifest files and SBOMs such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SPDX or CycloneDX SBOMs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Do not use Vulert as a licence compliance tool. Use it for CVE monitoring and use licence-specific tools or legal review for licence obligations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;To strengthen dependency visibility and security review, continue with these Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to Generate an SBOM — Tools and Commands for Every Language&lt;/li&gt;
&lt;li&gt;Software Supply Chain Security — A Complete Guide for Engineering Teams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides explain how to create a component inventory and how that inventory supports broader supply chain security, vulnerability monitoring, and audit readiness.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Open source licence risk comes from the obligations attached to dependencies, not from open source use itself.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Permissive licences such as MIT, Apache 2.0, BSD, and ISC are usually easier for commercial teams to use than strong copyleft licences.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GPL and AGPL require careful review because distribution or network access can trigger obligations depending on the use case.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Transitive dependencies can introduce GPL, AGPL, LGPL, unknown, or commercial source-available licences even when direct dependencies look safe.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Licence scanning should include direct and transitive dependencies, lock files, SBOMs, and manual review for high-risk findings.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert monitors security CVEs, not licence compliance, but dependency inventory supports both security review and licence audit preparation.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Does AGPL apply to SaaS applications?
&lt;/h3&gt;

&lt;p&gt;AGPL was designed to cover software accessed over a network, which makes it especially important for SaaS companies to review. Whether it applies to your specific architecture depends on how you use the AGPL code, whether you modified it, and how users interact with the software. Ask a qualified lawyer before using AGPL code in a SaaS product.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What is the difference between GPL and LGPL?
&lt;/h3&gt;

&lt;p&gt;GPL is strong copyleft and can require distributed software incorporating GPL-covered code to be released under GPL terms. LGPL is weaker copyleft and is often designed to allow linking from proprietary software under certain conditions. Modifying the LGPL library itself can still trigger sharing obligations.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can I use GPL-licensed code in a commercial product?
&lt;/h3&gt;

&lt;p&gt;Commercial use of GPL code is not automatically forbidden, but distribution obligations can apply. If you distribute software that incorporates GPL-covered code, you may need to make source code available under GPL terms. Consult a lawyer before using GPL code in commercial distributed software.&lt;/p&gt;

</description>
      <category>opensourcesecurity</category>
      <category>applicationsecurity</category>
      <category>licencecompliance</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Software Supply Chain Security — A Complete Guide for Engineering Teams</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Fri, 31 Jul 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/software-supply-chain-security-a-complete-guide-for-engineering-teams-2b4f</link>
      <guid>https://dev.to/vulert_official/software-supply-chain-security-a-complete-guide-for-engineering-teams-2b4f</guid>
      <description>&lt;p&gt;&lt;strong&gt;Software supply chain security&lt;/strong&gt; became a board-level concern after SolarWinds, Log4Shell, XZ Utils, and public package registry attacks showed the same lesson: your application is only as trustworthy as the code, tools, maintainers, and build systems that feed it.&lt;/p&gt;

&lt;p&gt;This guide explains what the software supply chain includes, where attacks happen, which frameworks matter, and what engineering teams should do this week, this month, and this quarter. The goal is practical protection, not a theoretical security program that never reaches CI/CD.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Supply chain security is not one tool. It is dependency control, build integrity, artifact provenance, SBOM visibility, CI/CD hardening, and continuous CVE monitoring working together.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What Your Software Supply Chain Actually Is
&lt;/h2&gt;

&lt;p&gt;Your software supply chain is every external and internal component that becomes part of your application or helps produce it. When a developer runs &lt;code&gt;npm install&lt;/code&gt;, &lt;code&gt;pip install&lt;/code&gt;, &lt;code&gt;go mod download&lt;/code&gt;, &lt;code&gt;composer install&lt;/code&gt;, or &lt;code&gt;mvn package&lt;/code&gt;, the build pulls code from registries, repositories, maintainers, mirrors, plugins, and build tools. That code may become part of the final product, influence the build, or run inside CI before the product ships.&lt;/p&gt;

&lt;p&gt;The supply chain includes direct dependencies, transitive dependencies, internal shared libraries, build tools, CI/CD actions, release scripts, package registries, artifact stores, and security tooling. A direct dependency is a package your application explicitly asks for, such as &lt;code&gt;express@4.18.2&lt;/code&gt;, &lt;code&gt;requests@2.31.0&lt;/code&gt;, or &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;. A transitive dependency is a package pulled in by another dependency, and those often outnumber direct dependencies by a large margin.&lt;/p&gt;

&lt;p&gt;Engineering teams sometimes underestimate build tools. Tools such as webpack, Babel, Gradle, pytest, GitHub Actions, Jenkins plugins, npm lifecycle scripts, and release automation can run code before production deployment. If an attacker compromises a build plugin, registry account, internal package, or CI secret, the application may ship a malicious artifact even when your own source code looks clean.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Supply Chain Layer&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Security Question&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Direct dependencies&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;express&lt;/code&gt;, &lt;code&gt;django&lt;/code&gt;, &lt;code&gt;spring-core&lt;/code&gt;, &lt;code&gt;lodash&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Do we know which versions we intentionally installed?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Transitive dependencies&lt;/td&gt;
&lt;td&gt;Packages pulled in by direct dependencies.&lt;/td&gt;
&lt;td&gt;Can we detect CVEs several layers deep?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Build tools&lt;/td&gt;
&lt;td&gt;webpack, Babel, Gradle, pytest, Maven plugins.&lt;/td&gt;
&lt;td&gt;Can build-time code execute with sensitive credentials?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CI/CD tools&lt;/td&gt;
&lt;td&gt;GitHub Actions, CircleCI, Jenkins plugins, release scripts.&lt;/td&gt;
&lt;td&gt;Can attackers modify the build or steal secrets?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal libraries&lt;/td&gt;
&lt;td&gt;Private packages, shared SDKs, internal auth helpers.&lt;/td&gt;
&lt;td&gt;Are private packages protected from dependency confusion?&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SBOM and artifacts&lt;/td&gt;
&lt;td&gt;CycloneDX, SPDX, signed releases, provenance files.&lt;/td&gt;
&lt;td&gt;Can we prove what went into each release?&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The 5 Types of Software Supply Chain Attack
&lt;/h2&gt;

&lt;p&gt;Software supply chain attack is a broad phrase, but engineering teams should break it into specific attack types. A malicious npm package, a compromised maintainer account, a dependency confusion attack, a compromised build system, and long-term social engineering of a maintainer all require different defenses. Treating them as one generic risk leads to weak controls.&lt;/p&gt;

&lt;p&gt;The common thread is trust. Modern engineering teams trust package registries, maintainers, CI workers, build scripts, release pipelines, and artifact repositories. Attackers target those trust points because they scale. One compromised package can reach thousands of downstream applications. One poisoned build system can ship malicious updates to customers. One stolen maintainer account can publish a malicious version of a package that developers already trust.&lt;/p&gt;

&lt;p&gt;A practical supply chain security guide should therefore cover both known-vulnerability scanning and unknown malicious behavior. CVE monitoring catches packages with published vulnerabilities such as &lt;code&gt;CVE-2021-44228&lt;/code&gt; in Log4j or &lt;code&gt;CVE-2024-3094&lt;/code&gt; in XZ Utils. Registry controls and signing help detect or prevent malicious package substitution. Build provenance helps prove where an artifact came from and whether the build was tampered with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type 1 — Malicious Package Published to Public Registry
&lt;/h2&gt;

&lt;p&gt;A malicious package attack starts when an attacker publishes a package designed to look useful, legitimate, or similar to a known package. The package may include install-time scripts, credential stealing code, data exfiltration, reverse shells, cryptominers, or payload downloaders. Developers may install it directly, or another package may pull it as a dependency.&lt;/p&gt;

&lt;p&gt;The 2018 event-stream incident showed how a malicious dependency can enter a popular package path and reach downstream users. More recent npm and PyPI campaigns often use packages that imitate developer tooling, wallet libraries, cloud SDK helpers, or typo variants. The package may work normally enough to avoid suspicion while running hidden code during installation or import.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type 2 — Maintainer Account Takeover
&lt;/h2&gt;

&lt;p&gt;Maintainer account takeover happens when an attacker compromises a legitimate maintainer’s npm, PyPI, GitHub, or package registry account. This is more dangerous than publishing an unknown malicious package because existing users already trust the package name. The attacker can publish a new version that appears to come from the real maintainer.&lt;/p&gt;

&lt;p&gt;Registry 2FA, trusted publishing, short-lived tokens, package signing, and release review help reduce this risk. Teams should avoid automatic major-version upgrades without review, but they also need fast patching for real security fixes. Lock files and SCA monitoring help balance speed and control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type 3 — Dependency Confusion
&lt;/h2&gt;

&lt;p&gt;Dependency confusion exploits package resolution between private and public registries. If a company uses an internal package named &lt;code&gt;auth-helper&lt;/code&gt;, an attacker may publish &lt;code&gt;auth-helper@9.9.9&lt;/code&gt; to npmjs.com. If the build system prefers the public package because it has a higher version, attacker code runs inside CI.&lt;/p&gt;

&lt;p&gt;This attack does not require a CVE. Prevention requires scoped packages, internal registry enforcement, public namespace claiming, and lock file integrity. Read the dedicated guide here: Dependency Confusion Attacks — How They Work and How to Prevent Them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type 4 — Compromised Build Pipeline (SolarWinds Model)
&lt;/h2&gt;

&lt;p&gt;A compromised build pipeline attack targets the process that turns source code into a release artifact. The SolarWinds incident is the classic example. SolarWinds reported that a threat actor injected code into builds of the Orion Software Platform, including SUNBURST injection into builds released between March and June 2020.&lt;/p&gt;

&lt;p&gt;This category is hard to detect because source code review may not reveal the payload. The source can look clean while the build system inserts malicious code into the compiled artifact. Defenses include isolated build environments, reproducible builds where possible, signed provenance, restricted CI permissions, artifact signing, and strong monitoring of build infrastructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  Type 5 — Social Engineering of Maintainers (XZ Utils Model)
&lt;/h2&gt;

&lt;p&gt;Maintainer social engineering is one of the hardest supply chain risks to stop. The XZ Utils backdoor showed how an attacker can build trust over time, gain project influence, and introduce malicious changes into a widely used open source component. The backdoor was discovered after Andres Freund noticed abnormal SSH performance and investigated the cause.&lt;/p&gt;

&lt;p&gt;XZ Utils was assigned &lt;code&gt;CVE-2024-3094&lt;/code&gt;, and affected versions included &lt;code&gt;5.6.0&lt;/code&gt; and &lt;code&gt;5.6.1&lt;/code&gt; in several distributions before they were pulled or reverted. The lesson is that trust in maintainers must be paired with review, provenance, reproducible build pressure, distribution safeguards, and fast inventory answers. When the next XZ-style event happens, teams need to answer “do we use this package?” in minutes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Supply Chain Security Frameworks — SLSA and Sigstore
&lt;/h2&gt;

&lt;p&gt;Engineering teams do not need to invent a complete model from scratch. The SLSA framework and Sigstore give teams practical ways to improve build integrity and artifact trust. SLSA focuses on supply chain levels for software artifacts, especially build provenance. Sigstore focuses on signing and verifying software artifacts with a lower-friction identity-based model.&lt;/p&gt;

&lt;p&gt;The mistake is trying to jump directly to the strictest possible controls. Most teams should start with documented builds, generated provenance, protected CI workflows, and signed artifacts. SLSA Level 2 is a realistic near-term target for many engineering teams because it moves the team from informal builds to tamper-evident build provenance. Higher levels require stronger build isolation and stricter controls that may take longer to implement.&lt;/p&gt;

&lt;p&gt;Sigstore helps because traditional signing systems often fail on usability. Long-lived private keys are hard to manage safely. Keyless signing uses identity, short-lived certificates, and a transparency log so consumers can verify who signed an artifact and when. Sigstore’s documentation describes keyless signing and verification using certificate identity and Rekor transparency log inclusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  SLSA — Four Levels of Supply Chain Guarantees
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SLSA Level&lt;/th&gt;
&lt;th&gt;What It Requires&lt;/th&gt;
&lt;th&gt;Realistic For Who&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;SLSA 0&lt;/td&gt;
&lt;td&gt;No specific SLSA guarantees.&lt;/td&gt;
&lt;td&gt;Teams with ad hoc builds and no provenance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLSA 1&lt;/td&gt;
&lt;td&gt;Build provenance exists and describes how the artifact was built.&lt;/td&gt;
&lt;td&gt;Any team that can generate build metadata in CI.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLSA 2&lt;/td&gt;
&lt;td&gt;A hosted build platform creates provenance and gives tamper-evidence.&lt;/td&gt;
&lt;td&gt;Most teams using GitHub Actions, GitLab CI, CircleCI, or similar platforms.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLSA 3&lt;/td&gt;
&lt;td&gt;The build platform prevents tampering and provides stronger isolation.&lt;/td&gt;
&lt;td&gt;Teams with mature platform engineering and release controls.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SLSA 4&lt;/td&gt;
&lt;td&gt;Historically associated with the strongest controls such as hermetic builds and stricter review in earlier SLSA versions.&lt;/td&gt;
&lt;td&gt;High-assurance software producers and critical infrastructure vendors.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Sigstore — Signing Packages to Verify Provenance
&lt;/h2&gt;

&lt;p&gt;Sigstore is a free and open approach for signing software artifacts such as binaries, release files, packages, SBOMs, and build outputs. It supports keyless signing, where the signer’s identity is bound through a trusted identity provider and recorded in a transparency log. This lowers the operational burden of managing long-lived signing keys.&lt;/p&gt;

&lt;p&gt;Package ecosystems are also moving toward provenance and attestations. PyPI’s security model says attestations build on Trusted Publishing and Sigstore keyless signing, which allows packages to assert they were published by an authorized publisher from a specific CI provider and repository. npm also provides Sigstore packages for signing and verifying artifacts.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Start with build provenance for your most important release pipeline before trying to sign every internal artifact.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  SBOM as the Foundation of Supply Chain Visibility
&lt;/h2&gt;

&lt;p&gt;A software bill of materials is an inventory of the components inside a software product. Without an SBOM, teams struggle to answer basic incident response questions. Did we ship &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;? Did any product contain XZ Utils &lt;code&gt;5.6.0&lt;/code&gt; or &lt;code&gt;5.6.1&lt;/code&gt;? Which customer-facing services use the affected package? Which releases need patching?&lt;/p&gt;

&lt;p&gt;SBOMs do not stop attacks by themselves. They create visibility. That visibility becomes useful when paired with CVE monitoring, release tracking, and ownership. A CycloneDX or SPDX SBOM can be attached to a release, stored with build artifacts, scanned for CVEs, and used during customer security reviews. Teams migrating from enterprise tools can also use SBOMs as portable evidence of what each product contains.&lt;/p&gt;

&lt;p&gt;Vulert accepts SBOM uploads in SPDX and CycloneDX formats and scans them against 458,000+ known CVEs. It also supports common manifest files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, and &lt;code&gt;packages.lock.json&lt;/code&gt;. This makes SBOM and manifest scanning a practical first step for software supply chain security.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generate a CycloneDX SBOM with Syft&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# Generate SPDX JSON instead&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; spdx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.spdx.json

&lt;span class="c"&gt;# Then upload the SBOM to Vulert's free scanner:&lt;/span&gt;
&lt;span class="c"&gt;# https://vulert.com/abom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you cannot list what your software contains, you cannot quickly answer whether the next Log4Shell or XZ Utils affects you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Practical Supply Chain Security Checklist
&lt;/h2&gt;

&lt;p&gt;The best supply chain program starts small and becomes stronger every month. Engineering teams do not need SLSA Level 4, universal signing, perfect reproducibility, and advanced behavioral malware detection on day one. They need deterministic installs, dependency monitoring, registry protection, SBOM generation, 2FA, and CI/CD controls that developers can actually maintain.&lt;/p&gt;

&lt;p&gt;Use this checklist as a staged plan. Level 1 reduces the most common and easiest-to-fix risks this week. Level 2 adds visibility and monitoring this month. Level 3 improves build integrity, private package control, and long-term supply chain assurance this quarter. The goal is steady coverage, not a one-time audit push.&lt;/p&gt;

&lt;h2&gt;
  
  
  Level 1 — Start This Week
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Enable dependency update automation:&lt;/strong&gt; Turn on Dependabot or an equivalent tool for every active repository so dependency updates do not depend on manual tracking.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Commit all lock files:&lt;/strong&gt; Commit &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, and equivalent lock files so builds resolve deterministic versions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use deterministic CI installs:&lt;/strong&gt; Replace &lt;code&gt;npm install&lt;/code&gt; with &lt;code&gt;npm ci&lt;/code&gt; in CI/CD because &lt;code&gt;npm ci&lt;/code&gt; follows the lock file exactly and verifies integrity.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enable registry 2FA:&lt;/strong&gt; Require two-factor authentication for npm, PyPI, RubyGems, GitHub, and other package publishing accounts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review CI secrets:&lt;/strong&gt; Remove unused tokens and reduce build credentials to the minimum permissions needed for each workflow.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Level 2 — Do This Month
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Add continuous SCA monitoring:&lt;/strong&gt; Use Vulert or an equivalent SCA tool so new CVEs trigger alerts when they affect package versions your applications actually use.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Generate an SBOM:&lt;/strong&gt; Generate CycloneDX or SPDX SBOMs for your main product and store them with release artifacts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use scoped internal packages:&lt;/strong&gt; Convert private npm packages from names like &lt;code&gt;auth-helper&lt;/code&gt; to scoped names like &lt;code&gt;@company/auth-helper&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Add CI security scanning:&lt;/strong&gt; Scan dependencies, lock files, and SBOMs in CI while keeping fix ownership clear for developers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document package ownership:&lt;/strong&gt; Assign owners for internal libraries so abandoned packages do not become hidden risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Level 3 — Plan This Quarter
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Implement SLSA Level 2:&lt;/strong&gt; Generate signed or tamper-evident build provenance from a hosted build platform for your most important release pipeline.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create an internal package registry policy:&lt;/strong&gt; Use allow-listing and prevent public fallback for private package names to reduce dependency confusion risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Reduce transitive dependency count:&lt;/strong&gt; Review large dependency trees and remove packages that add risk without meaningful value.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adopt artifact signing:&lt;/strong&gt; Start signing releases, SBOMs, or critical artifacts with Sigstore-compatible workflows where practical.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track remediation history:&lt;/strong&gt; Keep timestamped scan history, CVE remediation records, and trend reports for engineering and audit visibility.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Common Mistakes Engineering Teams Make
&lt;/h2&gt;

&lt;p&gt;Many teams treat software supply chain security as a tool purchase instead of an engineering workflow. Buying a scanner does not protect CI secrets. Signing a release does not fix vulnerable dependencies. Generating an SBOM once does not help if nobody scans it when new CVEs appear. Each control solves a specific problem, and gaps remain when teams confuse visibility with prevention.&lt;/p&gt;

&lt;p&gt;The second mistake is focusing only on direct dependencies. Transitive dependencies often carry the hidden risk. A harmless-looking top-level package may pull dozens of libraries. When a CVE appears in a transitive dependency, developers need to know which parent package introduced it and which upgrade removes it. That is why Dependency Health grouping matters: it turns many CVEs into a smaller set of package upgrade decisions.&lt;/p&gt;

&lt;p&gt;The third mistake is ignoring build-time code. npm postinstall scripts, CI actions, Maven plugins, and release scripts can run with more permissions than production code. If those scripts can access registry tokens, cloud credentials, signing keys, or deployment secrets, a malicious package can become a deployment incident. Lock files, registry policies, secret scoping, and CI isolation reduce that blast radius.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; A clean CVE report does not prove the build pipeline is safe. CVE scanning, registry controls, build provenance, and secret management protect different failure modes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Where Vulert Fits in a Secure Software Supply Chain
&lt;/h2&gt;

&lt;p&gt;Vulert focuses on the known-vulnerability layer of a secure software supply chain. It analyzes manifest files and SBOMs against known CVEs, alerts teams when new CVEs affect their package versions, and provides fix guidance with exact versions and CLI commands. That makes it useful for the day-to-day remediation work engineering teams actually perform.&lt;/p&gt;

&lt;p&gt;Vulert does not replace SLSA, Sigstore, private registry controls, or maintainer account protection. Those controls protect build integrity, provenance, and package origin. Vulert complements them by answering a different question: which packages in our applications have known vulnerabilities, and how do we fix them?&lt;/p&gt;

&lt;p&gt;Teams can start with the free scanner at &lt;code&gt;vulert.com/abom&lt;/code&gt;, upload a manifest or SBOM, and get results in 60 seconds. For ongoing coverage, continuous monitoring alerts teams when a newly disclosed CVE affects a package they already use. Dependency Health groups findings by package upgrade, Jira integration creates pre-filled tickets, and scan history gives teams remediation evidence over time. To build a stronger supply chain program, continue with these Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dependency Confusion Attacks — How They Work and How to Prevent Them&lt;/li&gt;
&lt;li&gt;How to Generate an SBOM — Tools and Commands for Every Language&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides cover 2 practical controls from this article: preventing private package confusion and generating SBOMs that can be scanned for known CVEs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Software supply chain security covers dependencies, transitive packages, build tools, CI/CD workflows, internal libraries, artifact signing, and SBOM visibility.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The 5 major attack types are malicious public packages, maintainer account takeover, dependency confusion, compromised build pipelines, and maintainer social engineering.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SolarWinds showed that attackers can compromise the build process, while XZ Utils showed that long-term maintainer trust can be abused.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The SLSA framework helps teams improve build provenance and tamper resistance, with SLSA Level 2 as a realistic near-term goal for many teams.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SBOMs help teams answer incident questions quickly, but they need CVE monitoring and release ownership to become useful.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert fits the known-CVE layer by scanning manifests and SBOMs, providing fix commands, and continuously monitoring disclosed vulnerabilities.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is a software supply chain attack?
&lt;/h3&gt;

&lt;p&gt;A software supply chain attack targets the code, dependencies, build systems, package registries, maintainers, or release processes that feed an application. The attacker may compromise a package, maintainer account, CI/CD pipeline, or build artifact instead of attacking the application directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How does an SBOM help with supply chain security?
&lt;/h3&gt;

&lt;p&gt;An SBOM lists the components inside a software product, which helps teams answer whether they use a newly affected package. When a new CVE appears, an SBOM lets teams scan releases quickly and identify impacted products, services, and customers.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Is CVE scanning enough for supply chain security?
&lt;/h3&gt;

&lt;p&gt;No. CVE scanning catches known vulnerable packages, but it does not fully stop dependency confusion, maintainer account takeover, build pipeline compromise, or malicious packages with no CVE. Use CVE monitoring alongside registry controls, lock files, build provenance, signing, and CI/CD hardening.&lt;/p&gt;

</description>
      <category>softwaresupplychainsecurity</category>
      <category>sbom</category>
      <category>slsa</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Dependency Confusion Attacks — How They Work and How to Protect Your Pipeline</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:30:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/dependency-confusion-attacks-how-they-work-and-how-to-protect-your-pipeline-42ah</link>
      <guid>https://dev.to/vulert_official/dependency-confusion-attacks-how-they-work-and-how-to-protect-your-pipeline-42ah</guid>
      <description>&lt;p&gt;&lt;strong&gt;dependency confusion attack&lt;/strong&gt; helped security researcher Alex Birsan earn $130,000 in bug bounties after demonstrating that build systems at Apple, Microsoft, PayPal, Uber, Yelp, Tesla, and 30+ other companies could be tricked into running code from public package registries.&lt;/p&gt;

&lt;p&gt;The attack did not exploit a single CVE. It exploited a package manager assumption: when public and private registries contain packages with the same name, the build system may choose the public package, especially when the public version number is higher.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; Traditional CVE scanning alone does not stop dependency confusion because the malicious package can be brand new and have no vulnerability record.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The $130,000 Bug Bounty That Changed Supply Chain Security
&lt;/h2&gt;

&lt;p&gt;Dependency confusion became widely known in February 2021 when Alex Birsan showed that major companies could accidentally install attacker-controlled packages during normal builds. He did not need a zero-day exploit, leaked credentials, or malware hidden inside a popular package. He needed internal package names.&lt;/p&gt;

&lt;p&gt;Birsan found those names through public clues. Some appeared in &lt;code&gt;package.json&lt;/code&gt; files accidentally committed to public repositories. Others appeared in npm error messages, public documentation, or job listings that mentioned internal tooling. Once he had a private package name, he published a package with the same name to a public registry at a very high version number.&lt;/p&gt;

&lt;p&gt;When affected build systems resolved dependencies, they sometimes chose the public package over the internal package. His packages contained logging code for proof, not destructive malware. But the result was still serious: external code executed inside internal build environments at companies with mature security teams.&lt;/p&gt;

&lt;p&gt;Birsan earned $130,000 by reaching build systems at Apple, Microsoft, Uber, and 30+ other companies — without exploiting a single CVE.&lt;/p&gt;

&lt;p&gt;The lesson was uncomfortable. A company could secure its code, harden its cloud, scan for known CVEs, and still lose control of the build pipeline because dependency resolution trusted the wrong registry.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Dependency Confusion Works — The Technical Mechanism
&lt;/h2&gt;

&lt;p&gt;A package manager installs dependencies from registries. For JavaScript, that might mean npm and &lt;code&gt;npmjs.com&lt;/code&gt;. For Python, that might mean pip and PyPI. For Java, that might mean Maven and Maven Central. Many companies also run private package registries for internal libraries such as authentication helpers, design systems, API clients, logging wrappers, and shared build tools.&lt;/p&gt;

&lt;p&gt;The confusion starts when the same package name exists in 2 places: an internal registry and a public registry. If your private package is unscoped, such as &lt;code&gt;auth-helper&lt;/code&gt;, an attacker may publish &lt;code&gt;auth-helper&lt;/code&gt; publicly. If the public package has a higher version number, some dependency resolution setups may install the public package instead of the internal one.&lt;/p&gt;

&lt;p&gt;For example, your internal registry may contain &lt;code&gt;auth-helper@1.0.0&lt;/code&gt;. An attacker publishes &lt;code&gt;auth-helper@9.9.9&lt;/code&gt; to the public npm registry. When your CI pipeline runs dependency installation, the package manager or registry proxy may resolve the higher public version. The build now runs attacker-controlled package code.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Internal package name leaks:&lt;/strong&gt; The attacker finds a private package name in a public repository, error message, job listing, documentation page, or exposed build file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attacker publishes public package:&lt;/strong&gt; The attacker creates a package with the same name on npm, PyPI, Maven Central, or another public registry.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attacker chooses a high version number:&lt;/strong&gt; The public package uses a version such as &lt;code&gt;9.9.9&lt;/code&gt; so it looks newer than the internal package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build pipeline installs dependencies:&lt;/strong&gt; The CI system runs &lt;code&gt;npm install&lt;/code&gt;, &lt;code&gt;pip install&lt;/code&gt;, or another package manager command.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resolver chooses the public package:&lt;/strong&gt; The package manager or registry configuration selects the attacker-controlled public package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Malicious code executes:&lt;/strong&gt; Install scripts, postinstall hooks, build steps, or imported code run inside the build environment.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Private Registry&lt;/th&gt;
&lt;th&gt;Public Registry&lt;/th&gt;
&lt;th&gt;Risk&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;auth-helper@1.0.0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;auth-helper@9.9.9&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;The build may install the attacker-controlled higher public version.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;@company/auth-helper@1.0.0&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Attacker cannot publish under &lt;code&gt;@company&lt;/code&gt; without scope ownership.&lt;/td&gt;
&lt;td&gt;Scoped package naming reduces dependency confusion risk.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Real Examples of Dependency Confusion in the Wild
&lt;/h2&gt;

&lt;p&gt;The original research showed the attack against major companies, but the pattern has continued because the root cause is operational, not just technical. Organizations create private packages, developers reference them in manifests, build systems connect to both private and public registries, and public clues leak internal names.&lt;/p&gt;

&lt;p&gt;The JavaScript ecosystem remains a common discussion point because npm packages can run install-time scripts such as &lt;code&gt;preinstall&lt;/code&gt;, &lt;code&gt;install&lt;/code&gt;, and &lt;code&gt;postinstall&lt;/code&gt;. If a malicious package reaches a CI worker, those scripts can run before the application even imports the package. That can expose environment variables, tokens, build metadata, hostnames, internal network details, and CI secrets if permissions are too broad.&lt;/p&gt;

&lt;p&gt;Python and Java teams face similar registry confusion risks, although the mechanics differ. A private Python package name can conflict with PyPI. A private Java artifact can create problems if repository order and resolution rules are misconfigured. CocoaPods also had similar issues in Apple-related research because internal pod names could be mirrored publicly.&lt;/p&gt;

&lt;p&gt;The key pattern stays the same across ecosystems: attackers look for private names, publish public lookalikes, choose high versions, and wait for a build system to install them.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Dependency confusion is different from exploiting a vulnerable package version. It tricks your build into installing the wrong package entirely.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why CVE Scanning Tools Don’t Catch This
&lt;/h2&gt;

&lt;p&gt;CVE scanning checks whether known packages and versions match known vulnerability records. That workflow works well for issues such as &lt;code&gt;log4j-core@2.14.1&lt;/code&gt; affected by &lt;code&gt;CVE-2021-44228&lt;/code&gt;, &lt;code&gt;lodash@4.17.20&lt;/code&gt; affected by prototype pollution advisories, or &lt;code&gt;urllib3&lt;/code&gt; versions affected by known Python package CVEs.&lt;/p&gt;

&lt;p&gt;A dependency confusion package does not need a CVE. It may be created minutes before the attack. It may contain no known vulnerable code. It may even have a clean package name, clean version, and no public advisory. The malicious behavior comes from where it came from, what install scripts it runs, and whether it should have been installed at all.&lt;/p&gt;

&lt;p&gt;That means SCA and CVE tools are necessary but not sufficient. They catch the known vulnerability layer. Dependency confusion prevention needs registry controls, scoped package names, lock file integrity, namespace ownership, and behavioral detection for suspicious package actions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SCA tools:&lt;/strong&gt; These tools detect known CVEs in packages you intentionally installed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Registry controls:&lt;/strong&gt; These controls stop private package names from resolving to public registries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Behavioral analysis:&lt;/strong&gt; These tools can flag unusual install scripts, network calls, credential access, or suspicious package behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lock file integrity:&lt;/strong&gt; This prevents package content from changing without hash mismatch detection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulert fits the CVE layer. It monitors manifest files and SBOMs against 458,000+ known CVEs, provides exact fixed versions, and gives CLI commands for known vulnerable dependencies. It does not replace registry hardening for dependency confusion, and that distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  4 Ways to Prevent Dependency Confusion Attacks
&lt;/h2&gt;

&lt;p&gt;The best dependency confusion prevention strategy uses multiple controls. Do not rely on a single package manager setting. Use scoped names, registry rules, lock file integrity, and namespace ownership together. That way, one missed setting does not expose the entire build pipeline.&lt;/p&gt;

&lt;p&gt;Start with internal package naming. Then lock registry resolution. Then enforce deterministic builds with lock files. Finally, claim public namespaces and package names before attackers do. These steps work because they remove ambiguity from dependency resolution.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Use Scoped Packages for All Internal Code
&lt;/h2&gt;

&lt;p&gt;Scoped packages add a namespace to package names. In npm, &lt;code&gt;@yourcompany/auth-helper&lt;/code&gt; belongs to the &lt;code&gt;@yourcompany&lt;/code&gt; scope. An attacker cannot publish under that scope unless they control it. This makes scoped packages safer than unscoped internal names such as &lt;code&gt;auth-helper&lt;/code&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"@yourcompany/auth-helper"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"version"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1.0.0"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Claim your company scope immediately on public registries where your developers publish or install packages. Even if you do not publish public packages, owning the namespace prevents outsiders from taking it first.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Configure Your Package Manager to Use Internal Registry Only
&lt;/h2&gt;

&lt;p&gt;Registry configuration decides where package managers look for packages. If your internal packages should only come from an internal registry, configure the package manager to enforce that rule. Do not allow public registry fallback for private package names.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight ini"&gt;&lt;code&gt;&lt;span class="c"&gt;# .npmrc at project root
&lt;/span&gt;&lt;span class="err"&gt;@yourcompany:&lt;/span&gt;&lt;span class="py"&gt;registry&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;https://your-internal-registry.com&lt;/span&gt;
&lt;span class="py"&gt;registry&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="s"&gt;https://your-internal-registry.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This setup forces npm to use your internal registry. Your internal registry can then proxy public packages through a controlled path with allowlists, access rules, and caching. That gives the organization one place to enforce package policy.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Always Use Lock File Integrity Checking
&lt;/h2&gt;

&lt;p&gt;Lock file integrity pins exact package versions and package hashes. A &lt;code&gt;package-lock.json&lt;/code&gt; file records not only which version should install, but also the expected integrity hash. If an attacker’s package has different content, the hash check can fail.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Use deterministic installs in CI&lt;/span&gt;
npm ci

&lt;span class="c"&gt;# Avoid this in production pipelines&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use &lt;code&gt;npm ci&lt;/code&gt; in CI and production build pipelines. It installs exactly what the lock file declares and fails when the lock file and manifest do not match. This reduces surprise dependency changes during builds.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Claim Your Namespace on Public Registries
&lt;/h2&gt;

&lt;p&gt;Namespace claiming prevents attackers from registering names that belong to your company. If your internal package is named &lt;code&gt;internal-auth&lt;/code&gt;, consider publishing a placeholder package with that name to public registries where confusion could occur. Set the version to &lt;code&gt;0.0.0&lt;/code&gt; and clearly mark it as an internal placeholder with no public release.&lt;/p&gt;

&lt;p&gt;This is not a complete defense, but it reduces name takeover risk. It works best alongside scoped package naming and strict registry configuration. Treat namespace claiming as a safety net, not the primary control.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Audit all internal package names before attackers do. Search manifests, build logs, CI configs, and public repositories for private package names.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Dependency Confusion vs Typosquatting — Understanding Both Threats
&lt;/h2&gt;

&lt;p&gt;Typosquatting and dependency confusion both abuse package ecosystems, but they work differently. A typosquatting attack tricks developers into installing the wrong package by using a name that looks similar to a popular package. For example, an attacker may publish &lt;code&gt;lodahs&lt;/code&gt; to catch developers who meant to install &lt;code&gt;lodash&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A dependency confusion attack does not need a typo. It uses the exact private package name. The attacker publishes that name publicly, often with a higher version number, and waits for the build system to resolve the public package instead of the private one.&lt;/p&gt;

&lt;p&gt;The defenses overlap but are not identical. Typosquatting prevention needs package review, trusted package policies, behavioral detection, and developer caution. Dependency confusion prevention needs private namespace control, scoped packages, registry configuration, and lock file integrity.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Attack Type&lt;/th&gt;
&lt;th&gt;How It Works&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;th&gt;Main Defense&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Dependency confusion&lt;/td&gt;
&lt;td&gt;Attacker publishes a public package with the same name as a private package.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;auth-helper@9.9.9&lt;/code&gt; beats internal &lt;code&gt;auth-helper@1.0.0&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Use scoped packages and block public fallback.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Typosquatting&lt;/td&gt;
&lt;td&gt;Attacker publishes a package name similar to a popular package.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;lodahs&lt;/code&gt; imitates &lt;code&gt;lodash&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Review packages and enforce trusted sources.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Known CVE dependency risk&lt;/td&gt;
&lt;td&gt;A legitimate dependency version has a published vulnerability.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;log4j-core@2.14.1&lt;/code&gt; is affected by &lt;code&gt;CVE-2021-44228&lt;/code&gt;.&lt;/td&gt;
&lt;td&gt;Use SCA monitoring and upgrade to fixed versions.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How Dependency Confusion Relates to Continuous Monitoring
&lt;/h2&gt;

&lt;p&gt;A dependency confusion attack uses trust and resolution mistakes. Known CVE monitoring uses vulnerability intelligence. Both are supply chain security controls, but they catch different failure modes.&lt;/p&gt;

&lt;p&gt;Registry controls stop the build from installing the wrong package. Behavioral tools can flag suspicious install scripts or unexpected network activity. Lock files make builds deterministic. SCA tools monitor the packages you knowingly installed and alert when new CVEs affect them later.&lt;/p&gt;

&lt;p&gt;Vulert helps with the known CVE layer. It analyzes manifest files and SBOMs, alerts teams when new CVEs affect specific package versions, provides exact fixed versions, and includes CLI commands developers can run. It supports &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOM files in SPDX and CycloneDX formats.&lt;/p&gt;

&lt;p&gt;The correct strategy is not “SCA or dependency confusion controls.” It is both. Use registry hardening to stop malicious package substitution, and use Vulert or another SCA tool to catch known CVEs in the dependency tree you actually intended to install.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build Pipeline Checklist for Dependency Confusion Prevention
&lt;/h2&gt;

&lt;p&gt;Security teams should turn dependency confusion prevention into a build pipeline checklist. The goal is to remove ambiguity from every package install. A CI worker should know exactly which registry to use, which package version to install, which hash to verify, and which package names are allowed.&lt;/p&gt;

&lt;p&gt;Start with npm because JavaScript builds often use install scripts and large transitive dependency trees. Then repeat the same pattern for Python, Maven, NuGet, RubyGems, Go modules, and other ecosystems. Each package manager has different controls, but the principle stays the same: private names should never silently fall through to public registries.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inventory private package names:&lt;/strong&gt; List every internal package name across manifests, lock files, monorepos, CI configs, and private registries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Convert unscoped npm packages:&lt;/strong&gt; Move internal packages from names like &lt;code&gt;auth-helper&lt;/code&gt; to scoped names like &lt;code&gt;@yourcompany/auth-helper&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Claim public scopes and names:&lt;/strong&gt; Register company namespaces and defensive placeholder packages on public registries where needed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lock registry resolution:&lt;/strong&gt; Configure package managers to use internal registries for private packages and prevent public fallback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use deterministic installs:&lt;/strong&gt; Run &lt;code&gt;npm ci&lt;/code&gt; in CI and enforce lock file integrity for production builds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor install-time behavior:&lt;/strong&gt; Watch for suspicious &lt;code&gt;postinstall&lt;/code&gt; scripts, unexpected network calls, credential access, or external callbacks during builds.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scan known CVEs separately:&lt;/strong&gt; Use Vulert or another SCA tool to monitor legitimate dependencies for published vulnerabilities.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A dependency confusion attack tricks package managers into installing a malicious public package instead of a private internal package.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Alex Birsan’s 2021 research showed that major companies could be reached through package resolution mistakes without exploiting a single CVE.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Unscoped internal package names such as &lt;code&gt;auth-helper&lt;/code&gt; create more risk than scoped names such as &lt;code&gt;@company/auth-helper&lt;/code&gt;.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Traditional CVE scanning does not catch brand-new malicious packages because they may have no advisory, no CVE, and no known vulnerability record.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Prevention requires scoped packages, strict registry configuration, lock file integrity, namespace claiming, and behavioral monitoring.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SCA tools such as Vulert complement dependency confusion defenses by monitoring known CVEs in the packages you intentionally installed.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is a dependency confusion attack?
&lt;/h3&gt;

&lt;p&gt;A dependency confusion attack happens when an attacker publishes a public package with the same name as a private internal package. If the build system chooses the public package, attacker-controlled code can run inside the development or CI environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Does npm audit detect dependency confusion attacks?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;npm audit&lt;/code&gt; checks known vulnerabilities in installed packages. It does not reliably detect dependency confusion because the malicious package may be brand new and have no CVE or advisory. Registry controls and scoped packages are the primary defenses.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can SCA tools prevent dependency confusion?
&lt;/h3&gt;

&lt;p&gt;SCA tools help with known CVEs, but they do not replace registry hardening. Use SCA for vulnerable packages you intentionally installed, and use scoped names, internal registry rules, and lock file integrity to prevent dependency confusion.&lt;/p&gt;

</description>
      <category>dependencyconfusion</category>
      <category>cvescanning</category>
      <category>sca</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Wiz vs Traditional SCA Tools — Cloud Security vs Dependency Security</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 30 Jul 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/wiz-vs-traditional-sca-tools-cloud-security-vs-dependency-security-5229</link>
      <guid>https://dev.to/vulert_official/wiz-vs-traditional-sca-tools-cloud-security-vs-dependency-security-5229</guid>
      <description>&lt;p&gt;A team can pass a cloud security review in Wiz and still ship a Node.js service with 47 vulnerable npm packages. That is why teams searching for a &lt;strong&gt;Wiz security alternative&lt;/strong&gt; should first separate 2 layers: cloud infrastructure security and application dependency security.&lt;/p&gt;

&lt;p&gt;Wiz is built for cloud-native security across infrastructure, identities, workloads, exposure, and misconfigurations. Traditional software composition analysis tools scan application dependency files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, and SBOMs. This guide explains what Wiz does well, what SCA tools do differently, who needs both, and where a focused tool like Vulert fits.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Wiz Does — Cloud Infrastructure Security
&lt;/h2&gt;

&lt;p&gt;Wiz is a Cloud Native Application Protection Platform, usually shortened to CNAPP. A CNAPP helps teams understand risk across cloud environments such as AWS, Azure, GCP, OCI, Kubernetes, and private cloud infrastructure. Wiz focuses on cloud visibility, attack paths, misconfigurations, workload exposure, cloud vulnerabilities, identity risks, IaC issues, data exposure, and runtime context.&lt;/p&gt;

&lt;p&gt;Wiz is excellent at answering cloud-layer questions. Are any S3 buckets public? Which workloads are internet-exposed? Which identities have too much privilege? Which cloud resources sit on a risky attack path? Which VM or container workload has an operating-system package vulnerability and public exposure? Which Terraform or Kubernetes configuration creates cloud risk before deployment?&lt;/p&gt;

&lt;p&gt;That cloud graph view is valuable because cloud risk is often contextual. A vulnerable package on an isolated internal workload does not carry the same risk as the same vulnerability on an internet-facing workload with access to sensitive data and over-permissive identity permissions. Wiz is designed to connect those dots across infrastructure and prioritize cloud risks by exposure and blast radius.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Wiz Capability&lt;/th&gt;
&lt;th&gt;What It Answers&lt;/th&gt;
&lt;th&gt;Example Finding&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cloud misconfiguration management&lt;/td&gt;
&lt;td&gt;Is the cloud environment configured securely?&lt;/td&gt;
&lt;td&gt;An object storage bucket allows public read access.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cloud workload vulnerability management&lt;/td&gt;
&lt;td&gt;Which running workloads have vulnerable OS or runtime components?&lt;/td&gt;
&lt;td&gt;A Linux VM runs a vulnerable OpenSSL package.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Network exposure analysis&lt;/td&gt;
&lt;td&gt;Which services are reachable from the internet?&lt;/td&gt;
&lt;td&gt;A database port is reachable through a risky security group.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Identity risk analysis&lt;/td&gt;
&lt;td&gt;Which users, roles, and service accounts have excessive access?&lt;/td&gt;
&lt;td&gt;A workload identity can read sensitive storage it does not need.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IaC security&lt;/td&gt;
&lt;td&gt;Which infrastructure code changes create cloud risk?&lt;/td&gt;
&lt;td&gt;A Terraform change creates an overly permissive firewall rule.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Runtime and threat context&lt;/td&gt;
&lt;td&gt;Which cloud risks are active, exposed, or part of an attack path?&lt;/td&gt;
&lt;td&gt;A vulnerable workload is internet-facing and has access to secrets.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What Wiz Does Not Do — The Application Dependency Layer
&lt;/h2&gt;

&lt;p&gt;Wiz has a strong cloud security story, and it also discusses application security, SCA, SBOMs, and code-to-cloud context. But teams should not confuse cloud workload visibility with deep application dependency monitoring from manifest and lock files. A dedicated SCA workflow starts from the application’s declared dependency tree and continuously maps package names and exact versions to known CVEs.&lt;/p&gt;

&lt;p&gt;That distinction matters. A Node.js application may run inside a well-configured cloud environment. Its VM may have no public SSH, its container may not run as root, its IAM role may be minimal, and its network path may be private. Wiz may show low cloud risk. But the application can still include vulnerable packages such as &lt;code&gt;lodash@4.17.20&lt;/code&gt;, &lt;code&gt;axios@0.21.1&lt;/code&gt;, &lt;code&gt;minimist@0.0.8&lt;/code&gt;, &lt;code&gt;jackson-databind@2.9.9&lt;/code&gt;, or &lt;code&gt;log4j-core@2.14.1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Traditional SCA tools focus on those package versions. They read files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, and SBOMs. Then they identify CVEs, fixed versions, upgrade paths, and remediation commands. This is the application dependency layer, and it needs its own monitoring workflow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Application manifest scanning:&lt;/strong&gt; A dedicated SCA tool reads declared dependency files and lock files to identify vulnerable npm, Maven, pip, Composer, Go, Rust, Ruby, Dart, Elixir, and .NET packages.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix-command guidance:&lt;/strong&gt; A dedicated SCA tool can tell a developer the exact package version and command needed to upgrade a vulnerable dependency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SBOM upload:&lt;/strong&gt; A dedicated SCA tool can analyze CycloneDX or SPDX SBOMs and map listed components to known CVEs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency grouping:&lt;/strong&gt; A focused SCA workflow can group hundreds of CVEs into the package upgrades that remove the most risk.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; A clean cloud posture result does not prove clean application dependencies. Cloud security and dependency security measure different layers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What SCA Tools Do That Wiz Does Not
&lt;/h2&gt;

&lt;p&gt;Software composition analysis tools answer a specific question: which declared open source dependencies in this application have known vulnerabilities? Vulert, Snyk, Mend, and similar tools scan manifest files, lock files, and SBOMs to identify vulnerable packages and versions. This is different from scanning the runtime cloud asset from the outside.&lt;/p&gt;

&lt;p&gt;A focused SCA tool like Vulert analyzes manifest files and SBOMs against 458,000+ known CVEs. It supports files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and CycloneDX or SPDX SBOMs.&lt;/p&gt;

&lt;p&gt;The output is developer-actionable. Instead of only saying “this workload has vulnerabilities,” Vulert can show which package is affected, which version is installed, which fixed version resolves the CVE, and what command to run. Its Dependency Health view groups CVEs by package upgrade, so a team can avoid opening 47 separate tickets when 3 package upgrades remove most of the risk.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example: generate an SBOM from an application directory&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# Example files you can upload to an SCA scanner&lt;/span&gt;
&lt;span class="c"&gt;# package-lock.json&lt;/span&gt;
&lt;span class="c"&gt;# pom.xml&lt;/span&gt;
&lt;span class="c"&gt;# requirements.txt&lt;/span&gt;
&lt;span class="c"&gt;# composer.lock&lt;/span&gt;
&lt;span class="c"&gt;# go.sum&lt;/span&gt;
&lt;span class="c"&gt;# Cargo.lock&lt;/span&gt;
&lt;span class="c"&gt;# sbom.json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is why “Wiz dependency scanning” can mean different things in vendor conversations. Wiz can surface vulnerability context in workloads and cloud environments. Dedicated SCA tools focus directly on the application dependency tree from manifests and SBOMs. The safer architecture is to use both layers where both risks exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Key Distinction — Infrastructure vs Application Dependencies
&lt;/h2&gt;

&lt;p&gt;The core difference is simple: Wiz looks at cloud infrastructure and running workload context; SCA looks at application dependency declarations. Wiz tells you whether your cloud environment is configured securely. SCA tells you whether the packages your developers included in the application have known CVEs.&lt;/p&gt;

&lt;p&gt;Think of the system as 2 layers. The bottom layer is cloud infrastructure: accounts, networks, IAM, storage, compute, containers, Kubernetes, exposed services, and runtime workloads. Wiz is designed for this layer. The top layer is application dependency security: npm packages, Maven JARs, PyPI packages, Composer packages, Go modules, Rust crates, Ruby gems, and SBOM components. Vulert and other SCA tools are designed for this layer.&lt;/p&gt;

&lt;p&gt;A cloud scanner may see that a container is running and whether the workload is exposed. It may see OS-level packages or workload vulnerabilities. But a dedicated SCA tool reads the developer’s source-level dependency files and lock files. That is where it finds exact declared dependencies, transitive packages, and application-level CVE matches before the app even deploys.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Layer&lt;/th&gt;
&lt;th&gt;Primary Question&lt;/th&gt;
&lt;th&gt;Best Tool Type&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cloud infrastructure&lt;/td&gt;
&lt;td&gt;Is the environment exposed, misconfigured, or over-permissioned?&lt;/td&gt;
&lt;td&gt;CNAPP such as Wiz.&lt;/td&gt;
&lt;td&gt;An internet-facing VM has a risky IAM role and access to sensitive data.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Running workload&lt;/td&gt;
&lt;td&gt;Which deployed assets carry contextual runtime risk?&lt;/td&gt;
&lt;td&gt;CNAPP and workload vulnerability tools.&lt;/td&gt;
&lt;td&gt;A running container has a vulnerable OS package and public exposure.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Application dependency tree&lt;/td&gt;
&lt;td&gt;Which declared packages and versions have known CVEs?&lt;/td&gt;
&lt;td&gt;SCA tools such as Vulert, Snyk, or Mend.&lt;/td&gt;
&lt;td&gt;
&lt;code&gt;log4j-core@2.14.1&lt;/code&gt; is affected by &lt;code&gt;CVE-2021-44228&lt;/code&gt;.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SBOM and release evidence&lt;/td&gt;
&lt;td&gt;Which components exist in this application release?&lt;/td&gt;
&lt;td&gt;SCA and SBOM scanners.&lt;/td&gt;
&lt;td&gt;A CycloneDX SBOM lists vulnerable transitive dependencies.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Wiz answers “is our cloud environment risky?” SCA answers “are our application dependencies vulnerable?” Both questions matter, but they are not the same question.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Concrete Example — Same App, Different Scanners, Different Findings
&lt;/h2&gt;

&lt;p&gt;Imagine a Node.js application running behind a private load balancer in AWS. The S3 buckets are private. IAM permissions follow least privilege. No public database port exists. The security groups are tight. The container does not run as root. Wiz reviews the cloud environment and shows no urgent cloud misconfiguration. That is a good result.&lt;/p&gt;

&lt;p&gt;Now scan the application’s &lt;code&gt;package-lock.json&lt;/code&gt; with an SCA tool. The report finds 47 CVEs across packages such as &lt;code&gt;lodash&lt;/code&gt;, &lt;code&gt;axios&lt;/code&gt;, &lt;code&gt;follow-redirects&lt;/code&gt;, &lt;code&gt;semver&lt;/code&gt;, and &lt;code&gt;tough-cookie&lt;/code&gt;. One package has a fixed version available. Another package needs a transitive dependency update through a parent package. A third finding has no patch yet and needs a workaround. The cloud layer was clean. The dependency layer was not.&lt;/p&gt;

&lt;p&gt;This is not a contradiction. It means the scanners looked at different evidence. Wiz inspected infrastructure and workload context. The SCA scanner inspected the declared dependency graph. Both results can be true at the same time.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Cloud scan result:&lt;/strong&gt; Wiz shows no public storage, no dangerous IAM path, and no exposed database, so the infrastructure risk is low.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SCA scan result:&lt;/strong&gt; Vulert shows 47 application dependency CVEs in &lt;code&gt;package-lock.json&lt;/code&gt;, so the application dependency risk is high.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer action:&lt;/strong&gt; The engineering team upgrades 3 packages and reduces most of the CVE count.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security action:&lt;/strong&gt; The platform team keeps the cloud controls in place while AppSec monitors future dependency disclosures.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Use cloud security findings to protect the environment and SCA findings to fix the code dependency tree. Do not force one tool to replace the other layer.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Who Needs Wiz, Who Needs SCA, Who Needs Both
&lt;/h2&gt;

&lt;p&gt;The right tool choice depends on what your team operates. Teams that manage multi-cloud infrastructure, Kubernetes clusters, sensitive cloud data, broad IAM roles, and internet-facing workloads need a CNAPP such as Wiz. Teams that build applications with open source packages need SCA. Many software companies need both because they operate cloud infrastructure and ship code with dependencies.&lt;/p&gt;

&lt;p&gt;A team running applications on Heroku, Railway, Render, Vercel, or another managed platform may not need a full CNAPP at the beginning. The cloud provider or platform abstracts much of the infrastructure configuration. But the application still includes npm, Maven, pip, Composer, Go, Rust, Ruby, Dart, Elixir, and .NET dependencies. That team still needs SCA.&lt;/p&gt;

&lt;p&gt;Early-stage and mid-size teams should usually start with SCA because dependency CVEs are easy to introduce, easy to miss, and often fixable with package upgrades. Cloud security becomes more urgent as the team manages more direct cloud infrastructure, data stores, networks, identities, and Kubernetes resources.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Team Situation&lt;/th&gt;
&lt;th&gt;Needs Wiz?&lt;/th&gt;
&lt;th&gt;Needs SCA?&lt;/th&gt;
&lt;th&gt;Reason&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Startup on Heroku or Render with 3 web apps.&lt;/td&gt;
&lt;td&gt;Usually no.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;The platform manages most cloud configuration, but the code still uses vulnerable packages.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SaaS company on AWS with Kubernetes and sensitive customer data.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;The team owns cloud exposure, IAM, workloads, and application dependencies.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise with multi-cloud accounts and many business units.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;Cloud posture and dependency vulnerability monitoring both need central governance.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Agency managing WordPress and Node.js projects for clients.&lt;/td&gt;
&lt;td&gt;Maybe.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;Dependency and CMS package risk is immediate, while CNAPP depends on who owns cloud infrastructure.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Internal tool team with no direct cloud ownership.&lt;/td&gt;
&lt;td&gt;Usually no.&lt;/td&gt;
&lt;td&gt;Yes.&lt;/td&gt;
&lt;td&gt;The team still ships dependencies even if infrastructure is managed elsewhere.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Cost and Sequencing — Where to Start
&lt;/h2&gt;

&lt;p&gt;Wiz and Vulert also sit in very different cost categories. Wiz is an enterprise cloud security platform, and public pricing estimates vary widely by cloud footprint, modules, workload count, contract size, and negotiation. Third-party pricing analysis commonly places Wiz-style CNAPP deals in the tens of thousands to hundreds of thousands of dollars per year for many organizations, while Vulert Pro is $45 per month, or $540 per year. Because pricing can vary, teams should confirm current vendor quotes before buying.&lt;/p&gt;

&lt;p&gt;The budget difference reflects the product difference. Wiz maps and prioritizes risk across cloud infrastructure. Vulert monitors application dependencies. These are not competing products at the same price point. They solve different problems for different parts of the stack.&lt;/p&gt;

&lt;p&gt;Sequencing should follow ownership. If your team directly manages AWS, Azure, GCP, Kubernetes, and sensitive cloud data, evaluate Wiz or another CNAPP. If your team ships application code with third-party packages, start SCA immediately. For most 10-200 person companies, SCA is the fastest first step because it requires no cloud integration and produces developer-actionable fixes within minutes.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Tool Type&lt;/th&gt;
&lt;th&gt;Primary Layer&lt;/th&gt;
&lt;th&gt;Typical Buying Motion&lt;/th&gt;
&lt;th&gt;Example Cost Context&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Wiz / CNAPP&lt;/td&gt;
&lt;td&gt;Cloud infrastructure, workloads, IAM, exposure, cloud graph.&lt;/td&gt;
&lt;td&gt;Enterprise evaluation, cloud access review, security platform rollout.&lt;/td&gt;
&lt;td&gt;Often quoted in tens of thousands to 100,000+ dollars per year depending on footprint.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vulert / SCA&lt;/td&gt;
&lt;td&gt;Application dependency manifests and SBOMs.&lt;/td&gt;
&lt;td&gt;Upload manifest, scan SBOM, add monitoring, create tickets.&lt;/td&gt;
&lt;td&gt;Pro plan is $45 per month, or $540 per year.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Both together&lt;/td&gt;
&lt;td&gt;Cloud posture plus dependency CVEs.&lt;/td&gt;
&lt;td&gt;Security team owns CNAPP, engineering owns SCA remediation.&lt;/td&gt;
&lt;td&gt;Best fit for teams that operate cloud infrastructure and build applications.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  When Wiz Is the Right Tool
&lt;/h2&gt;

&lt;p&gt;Wiz is the right tool when the main risk lives in cloud infrastructure. If your team owns multiple cloud accounts, Kubernetes clusters, workloads, IAM roles, storage buckets, databases, network routes, secrets, and exposed services, you need cloud-native security visibility. A spreadsheet or basic cloud console review will not scale.&lt;/p&gt;

&lt;p&gt;Wiz can help security teams connect cloud risk signals. For example, a vulnerable workload is more urgent if it is internet-facing, has access to sensitive data, and runs with a powerful identity. A misconfigured storage bucket is more urgent if it contains regulated customer data. An over-permissive IAM role is more urgent if it sits on a path from a public workload to a production database.&lt;/p&gt;

&lt;p&gt;That context is where a CNAPP shines. It helps cloud security and platform teams prioritize the small set of cloud risks that matter most. It does not remove the need for dependency scanning, but it solves a real and separate cloud security problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  When SCA Is the Right First Tool
&lt;/h2&gt;

&lt;p&gt;SCA is the right first tool when your main immediate risk is open source dependencies. Most application teams use hundreds or thousands of third-party packages. A single vulnerable transitive dependency can hide several layers deep. Developers may not know that a package such as &lt;code&gt;jackson-databind&lt;/code&gt;, &lt;code&gt;log4j-core&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;lodash&lt;/code&gt;, or &lt;code&gt;minimist&lt;/code&gt; exists in the project until a scanner identifies it.&lt;/p&gt;

&lt;p&gt;Vulert is built for this workflow. Upload a manifest or SBOM, get a vulnerability report in 60 seconds, review affected packages, and apply exact fix commands. Then turn on continuous monitoring so the team gets alerted when new CVEs affect the package versions already in use.&lt;/p&gt;

&lt;p&gt;This is why teams often start with SCA before buying a CNAPP. SCA requires less setup, less procurement, and less architecture review. It gives engineering teams immediate visibility into dependency CVEs and often produces quick wins through package upgrades.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; If your team can only fund one tool this quarter and you ship application code, start with SCA. Add CNAPP when cloud infrastructure ownership and exposure justify the platform cost.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Wiz is a CNAPP focused on cloud infrastructure, workload context, network exposure, IAM risk, misconfiguration management, and cloud attack paths.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SCA tools such as Vulert focus on declared application dependencies in manifest files, lock files, and SBOMs.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A clean Wiz cloud scan does not prove clean application dependencies because the scanners inspect different layers.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teams that operate cloud infrastructure and build applications usually need both Wiz and SCA, not one replacing the other.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teams on managed platforms with little direct cloud ownership may need SCA first and CNAPP later.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert Pro costs $45 per month and provides manifest/SBOM scanning, continuous CVE monitoring, exact fixed versions, CLI commands, and Dependency Health grouping.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Does Wiz scan npm or Maven dependencies?
&lt;/h3&gt;

&lt;p&gt;Wiz has application security and SCA-related capabilities in its broader platform story, but teams should not assume it replaces a dedicated manifest-first SCA workflow. A tool like Vulert directly scans files such as &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, and SBOMs for package-level CVEs and fix guidance.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What is the difference between CNAPP and SCA?
&lt;/h3&gt;

&lt;p&gt;A CNAPP secures cloud environments, workloads, identities, network exposure, misconfigurations, and cloud attack paths. SCA scans application dependency trees for vulnerable open source packages. CNAPP looks at cloud infrastructure risk, while SCA looks at package and version risk in your application.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Wiz replace Snyk or Vulert?
&lt;/h3&gt;

&lt;p&gt;Wiz should not be treated as a direct replacement for Snyk or Vulert when the requirement is dedicated application dependency scanning from manifests and SBOMs. Wiz is strongest for cloud security context, while Vulert is focused on SCA vulnerability monitoring and developer fix guidance.&lt;/p&gt;

</description>
      <category>wiz</category>
      <category>sca</category>
      <category>cloudsecurity</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Checkmarx Alternative — SCA and SAST for Mid-Size Teams</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Wed, 29 Jul 2026 07:30:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/checkmarx-alternative-sca-and-sast-for-mid-size-teams-5ho0</link>
      <guid>https://dev.to/vulert_official/checkmarx-alternative-sca-and-sast-for-mid-size-teams-5ho0</guid>
      <description>&lt;p&gt;A 75-person engineering team can end up paying for an enterprise application security platform when the team mostly needs 2 things: reliable software composition analysis for open source CVEs and practical static application security testing for custom code. That is where the search for a &lt;strong&gt;Checkmarx alternative&lt;/strong&gt; usually starts.&lt;/p&gt;

&lt;p&gt;Checkmarx is a strong enterprise product. The question is not whether Checkmarx works. The question is whether a mid-size team needs the full platform, the implementation overhead, and a $50,000-$200,000 annual security budget when smaller tools can cover the capabilities they actually use.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Checkmarx Actually Covers
&lt;/h2&gt;

&lt;p&gt;Checkmarx is an enterprise application security platform. It is not just one scanner. Checkmarx One brings multiple AppSec capabilities into a single platform, including SAST, SCA, IaC Security, API Security, secrets detection, and supply chain security features. That broad coverage is useful for large enterprises with mature AppSec teams, central security operations, many business units, and formal governance requirements.&lt;/p&gt;

&lt;p&gt;The most recognized capability is CxSAST, which analyzes custom source code for vulnerabilities such as SQL injection, cross-site scripting, insecure deserialization, buffer overflow patterns, and unsafe input handling. CxSCA focuses on open source dependency vulnerabilities. That means it looks at third-party packages and flags known CVEs affecting versions in use. Checkmarx also offers API security, IaC scanning, and supply chain security features for teams that want a broader AppSec platform.&lt;/p&gt;

&lt;p&gt;For large organizations, that all-in-one model can make sense. A central team gets one vendor, one reporting layer, one procurement relationship, and one place to manage different AppSec signals. For a mid-size team, the same model can feel heavy. Teams often use only SCA and SAST daily, while paying for a platform priced for organizations with much larger security teams.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Checkmarx Capability&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;th&gt;Coverage Quality&lt;/th&gt;
&lt;th&gt;Mid-Size Team Replacement&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CxSAST&lt;/td&gt;
&lt;td&gt;Scans custom source code for vulnerabilities such as SQL injection and XSS.&lt;/td&gt;
&lt;td&gt;Strong enterprise SAST coverage.&lt;/td&gt;
&lt;td&gt;Semgrep OSS, SonarQube Community, Snyk Code, or SonarCloud.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CxSCA&lt;/td&gt;
&lt;td&gt;Scans open source dependencies for known CVEs.&lt;/td&gt;
&lt;td&gt;Strong enterprise SCA capability.&lt;/td&gt;
&lt;td&gt;Vulert for manifest and SBOM-based vulnerability monitoring.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API Security&lt;/td&gt;
&lt;td&gt;Tests and identifies API security weaknesses.&lt;/td&gt;
&lt;td&gt;Useful for mature API programs.&lt;/td&gt;
&lt;td&gt;OWASP ZAP for free DAST and API testing workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IaC Security&lt;/td&gt;
&lt;td&gt;Scans Terraform, Kubernetes, and cloud configuration code.&lt;/td&gt;
&lt;td&gt;Useful for cloud and platform teams.&lt;/td&gt;
&lt;td&gt;Checkov for Terraform, Kubernetes, and IaC scanning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supply Chain Security&lt;/td&gt;
&lt;td&gt;Helps detect dependency and build pipeline risks.&lt;/td&gt;
&lt;td&gt;Useful at enterprise scale.&lt;/td&gt;
&lt;td&gt;SBOM generation, Vulert monitoring, CI checks, and release controls.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Why Teams Look for Checkmarx Alternatives
&lt;/h2&gt;

&lt;p&gt;Teams usually look for a checkmarx alternative for 4 reasons: price, divestiture, unused platform breadth, and implementation overhead. Checkmarx is built for enterprise application security programs. That is a strength for large companies, but it can make the product feel misaligned for a smaller engineering organization that needs fast coverage and practical remediation.&lt;/p&gt;

&lt;p&gt;The first reason is cost. A mid-size company may not have a dedicated AppSec budget large enough for a $50,000-$200,000 annual platform. The second reason is post-divestiture loss of access. A business unit may separate from a parent company and suddenly lose shared Checkmarx licenses, enterprise SSO, central scanning pipelines, and reporting history. The third reason is over-featured buying. Many teams primarily use CxSCA for dependency CVEs, but the contract covers a broader AppSec suite. The fourth reason is setup effort. Enterprise tools often need integration work, rule tuning, onboarding, triage workflows, and security ownership that small teams do not have.&lt;/p&gt;

&lt;p&gt;A replacement stack does not need to copy every enterprise feature on day 1. It needs to restore coverage for the highest-risk workflows: custom code scanning, dependency vulnerability monitoring, IaC checks, and basic API testing. Once those are covered, the team can decide whether it needs more advanced platform features later.&lt;/p&gt;

&lt;p&gt;The right question is not “Which tool has the longest feature list?” The right question is “Which stack covers the risks we actually fix every week?”&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing Each Checkmarx Capability
&lt;/h2&gt;

&lt;p&gt;The practical way to replace Checkmarx is to split the platform into capabilities. Do not start by searching for one giant replacement. Start with what the team used: CxSAST, CxSCA, IaC scanning, API testing, and reporting. Then choose the smallest reliable tool for each job.&lt;/p&gt;

&lt;p&gt;This approach works especially well for mid-size teams because it avoids a second enterprise procurement cycle. A team can run Semgrep for SAST, Vulert for SCA, Checkov for IaC, and OWASP ZAP for API or DAST workflows. Add an annual boutique penetration test for independent validation, and the total program can still cost far less than a full enterprise platform.&lt;/p&gt;

&lt;p&gt;This model does require ownership. Someone must decide which findings block releases, which findings create backlog tickets, and which reports get reviewed each sprint. The advantage is speed. A team can start scanning code and dependencies in under an hour instead of waiting through contract reviews, implementation calls, and platform onboarding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing CxSAST — Static Code Analysis
&lt;/h2&gt;

&lt;p&gt;Static application security testing scans your own source code before it runs. It finds insecure coding patterns such as SQL injection, cross-site scripting, command injection, path traversal, insecure deserialization, unsafe cryptography, and authentication mistakes. Checkmarx CxSAST is strong in this category, but not every team needs an enterprise SAST platform to get useful coverage.&lt;/p&gt;

&lt;p&gt;The best free starting point is Semgrep. Semgrep has community rules, strong language coverage, and a simple developer workflow. It works well for teams that want fast local scans, CI checks, and readable rules. For teams with strong Java or JavaScript needs, SonarQube Community Edition can also help with maintainability and security-related code issues. Paid tools below typical enterprise pricing include Snyk Code and SonarCloud.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Semgrep with pip&lt;/span&gt;
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install &lt;/span&gt;semgrep

&lt;span class="c"&gt;# Run Semgrep with automatic rule selection&lt;/span&gt;
semgrep &lt;span class="nt"&gt;--config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;auto &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Alternative syntax used in many CI examples&lt;/span&gt;
semgrep scan &lt;span class="nt"&gt;--config&lt;/span&gt; auto &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use Semgrep first for fast developer feedback. Add custom rules later for business-specific patterns such as unsafe tenant checks, direct object access, missing authorization middleware, or prohibited crypto libraries. For a 10-200 person team, this often provides enough SAST coverage to replace day-to-day Checkmarx code scanning.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing CxSCA — Dependency Vulnerability Scanning
&lt;/h2&gt;

&lt;p&gt;Software composition analysis scans open source dependencies for known CVEs. This is the Checkmarx capability many mid-size teams use most often because dependency vulnerabilities appear constantly and require ongoing monitoring. When teams compare Checkmarx SCA to a smaller replacement, the cost difference can be dramatic.&lt;/p&gt;

&lt;p&gt;Vulert is the best replacement for teams that need SCA coverage without the full enterprise platform. Vulert analyzes manifest files and SBOMs against 458,000+ known CVEs. It supports &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOM files in SPDX and CycloneDX formats.&lt;/p&gt;

&lt;p&gt;This matters for teams migrating away from Checkmarx because SBOM portability reduces migration pain. If the team already exports CycloneDX or SPDX SBOMs, it can upload those files directly to &lt;code&gt;vulert.com/abom&lt;/code&gt; and continue vulnerability analysis. Vulert also gives exact fixed versions and CLI commands, so developers get “upgrade to this version with this command,” not only “this package has a CVE.”&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example: generate an SBOM with Syft, then upload it to Vulert&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# Or scan the original manifest directly with Vulert's free scanner:&lt;/span&gt;
&lt;span class="c"&gt;# package-lock.json, pom.xml, requirements.txt, composer.lock, go.sum, Cargo.lock, or SBOM&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Start SCA migration first. New CVEs are disclosed daily, so dependency monitoring is the capability you should restore fastest after losing Checkmarx access.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Replacing IaC Security
&lt;/h2&gt;

&lt;p&gt;Infrastructure as code security scans Terraform, Kubernetes, CloudFormation, Helm charts, and other configuration files before they create risky cloud resources. Checkmarx includes IaC security in its platform, but smaller teams can get strong free coverage with Checkov.&lt;/p&gt;

&lt;p&gt;Checkov is a widely used IaC scanner from Bridgecrew/Palo Alto Networks. It works well for Terraform and Kubernetes misconfiguration checks, including public storage buckets, overly broad security groups, missing encryption, weak IAM permissions, and risky Kubernetes workload settings. For teams using Terraform heavily, Checkov is usually the fastest replacement for enterprise IaC scanning.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Install Checkov&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;checkov

&lt;span class="c"&gt;# Scan a Terraform or IaC directory&lt;/span&gt;
checkov &lt;span class="nt"&gt;-d&lt;/span&gt; /path/to/terraform/code

&lt;span class="c"&gt;# Scan the current directory&lt;/span&gt;
checkov &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# Optional: scan only Terraform&lt;/span&gt;
checkov &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="nt"&gt;--framework&lt;/span&gt; terraform
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run Checkov in CI for pull requests that change infrastructure code. Do not block every finding on day 1. Start by blocking obvious high-risk patterns such as public database exposure, public object storage, missing encryption, and broad administrative permissions. Then tune policies by cloud provider and environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Replacing API Security
&lt;/h2&gt;

&lt;p&gt;API security testing checks whether APIs expose unsafe endpoints, weak authentication, broken access control, injection paths, and risky behaviors. Checkmarx offers API security capability inside its broader platform, but many mid-size teams can start with OWASP ZAP for free DAST and API testing workflows.&lt;/p&gt;

&lt;p&gt;OWASP ZAP is mature, free, widely used, and suitable for baseline web and API testing. It works best when teams provide API definitions, test environments, authentication flows, and realistic test accounts. It is not a perfect replacement for every enterprise API security workflow, but it gives mid-size teams a practical starting point without enterprise pricing.&lt;/p&gt;

&lt;p&gt;Use ZAP against staging environments first. Add it to CI for baseline scans, then schedule deeper scans outside the critical deployment path. Pair ZAP with manual testing for sensitive authorization logic because automated API scanners often miss business-specific access control flaws.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Example OWASP ZAP baseline scan using Docker&lt;/span&gt;
docker run &lt;span class="nt"&gt;-t&lt;/span&gt; ghcr.io/zaproxy/zaproxy:stable zap-baseline.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-t&lt;/span&gt; https://staging.example.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-r&lt;/span&gt; zap-report.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Full Cost Comparison
&lt;/h2&gt;

&lt;p&gt;The strongest argument for a checkmarx alternative is not that Checkmarx is bad. It is that many teams can cover their practical risk at a much lower annual cost. A realistic replacement stack for a mid-size company might use Semgrep OSS for SAST, Vulert Pro for SCA, Checkov for IaC, OWASP ZAP for API or DAST testing, and one annual boutique penetration test for independent validation.&lt;/p&gt;

&lt;p&gt;This stack does not produce the same single-vendor enterprise platform experience. It also does not include every advanced feature an enterprise AppSec organization may want. But it does restore the core workflows that engineering teams need: scan custom code, scan dependencies, scan infrastructure code, test APIs, create tickets, and prove remediation progress.&lt;/p&gt;

&lt;p&gt;The difference becomes clear when cost enters the discussion. Checkmarx full platform pricing often fits enterprise budgets. A smaller stack can fit mid-size budgets while still giving security and engineering teams meaningful coverage.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Capabilities Covered&lt;/th&gt;
&lt;th&gt;Estimated Annual Cost&lt;/th&gt;
&lt;th&gt;Best Fit&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Checkmarx full platform&lt;/td&gt;
&lt;td&gt;SAST, SCA, API security, IaC security, supply chain security, reporting.&lt;/td&gt;
&lt;td&gt;$50,000-$200,000+ per year.&lt;/td&gt;
&lt;td&gt;Large enterprises with centralized AppSec teams.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Semgrep OSS&lt;/td&gt;
&lt;td&gt;SAST for custom code.&lt;/td&gt;
&lt;td&gt;$0.&lt;/td&gt;
&lt;td&gt;Developer-first code scanning.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vulert Pro&lt;/td&gt;
&lt;td&gt;SCA dependency vulnerability monitoring.&lt;/td&gt;
&lt;td&gt;$540 per year.&lt;/td&gt;
&lt;td&gt;Teams replacing CxSCA quickly.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Checkov&lt;/td&gt;
&lt;td&gt;IaC scanning for Terraform, Kubernetes, and cloud config.&lt;/td&gt;
&lt;td&gt;$0.&lt;/td&gt;
&lt;td&gt;Cloud and platform teams using IaC.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OWASP ZAP&lt;/td&gt;
&lt;td&gt;API and DAST baseline testing.&lt;/td&gt;
&lt;td&gt;$0.&lt;/td&gt;
&lt;td&gt;Staging scans and basic API security testing.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Annual boutique pen test&lt;/td&gt;
&lt;td&gt;Manual validation and business logic testing.&lt;/td&gt;
&lt;td&gt;$8,000-$15,000 per year.&lt;/td&gt;
&lt;td&gt;Independent assurance for customers and leadership.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Replacement stack total&lt;/td&gt;
&lt;td&gt;SAST, SCA, IaC, API testing, annual manual review.&lt;/td&gt;
&lt;td&gt;$9,000-$16,000 per year.&lt;/td&gt;
&lt;td&gt;Mid-size teams that need coverage without enterprise pricing.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Checkmarx vs Snyk vs Open Source Stack
&lt;/h2&gt;

&lt;p&gt;The Checkmarx vs Snyk comparison often comes up because both vendors sell application security capabilities, while open source tools cover pieces of the same workflow. Checkmarx is broader as an enterprise platform. Snyk is developer-friendly and strong across dependency security, code scanning, containers, and IaC in its own platform model. Open source tools give more control and lower cost but require more assembly and ownership.&lt;/p&gt;

&lt;p&gt;For a mid-size team, the best answer depends on the security function you need most. If the team wants one commercial developer security platform and has budget, Snyk may be easier to adopt than a heavier enterprise platform. If the team mainly needs to replace Checkmarx SCA, Vulert is a more focused and lower-cost option. If the team needs basic SAST and IaC coverage quickly, Semgrep and Checkov can start producing results the same day.&lt;/p&gt;

&lt;p&gt;The open source stack works best when engineering owns remediation and wants fast feedback. It works less well when leadership demands one dashboard for every AppSec signal, enterprise workflow customization, and centralized policy enforcement across hundreds of teams. In that case, Checkmarx or another enterprise platform may still be the right fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Post-Divestiture Teams — Getting Covered in Under an Hour
&lt;/h2&gt;

&lt;p&gt;Post-divestiture teams have a different problem from normal tool evaluation. They may lose Checkmarx access suddenly because licenses, SSO, CI integrations, security dashboards, and historical reports belonged to the parent company. In that situation, the goal is not a perfect AppSec architecture. The goal is coverage today.&lt;/p&gt;

&lt;p&gt;Start with SCA because new CVEs are disclosed every day. Vulert can scan a manifest or SBOM in 60 seconds through &lt;code&gt;vulert.com/abom&lt;/code&gt;. A team can upload &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, or CycloneDX/SPDX SBOMs and get a vulnerability report quickly. Then the team can add continuous monitoring to avoid missing future CVEs.&lt;/p&gt;

&lt;p&gt;Next, run Semgrep locally or in CI. The first scan does not need perfect rule tuning. It needs to show whether obvious code issues exist. Then add Checkov for Terraform and Kubernetes changes. Finally, schedule OWASP ZAP baseline scans for staging systems and plan a boutique penetration test when the team has budget.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;First 5 minutes:&lt;/strong&gt; Upload your manifest file or SBOM to Vulert and restore dependency vulnerability visibility.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next 10 minutes:&lt;/strong&gt; Install Semgrep and scan the repository with automatic rules.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next 10 minutes:&lt;/strong&gt; Run Checkov against Terraform, Kubernetes, or cloud configuration directories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next 15 minutes:&lt;/strong&gt; Run OWASP ZAP baseline scan against staging if a safe staging URL exists.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Final 20 minutes:&lt;/strong&gt; Create Jira tickets for Critical and High findings and assign owners.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 0-60 minute post-divestiture replacement workflow&lt;/span&gt;

&lt;span class="c"&gt;# SAST: scan custom code&lt;/span&gt;
python3 &lt;span class="nt"&gt;-m&lt;/span&gt; pip &lt;span class="nb"&gt;install &lt;/span&gt;semgrep
semgrep &lt;span class="nt"&gt;--config&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;auto &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# IaC: scan infrastructure code&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;checkov
checkov &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nb"&gt;.&lt;/span&gt;

&lt;span class="c"&gt;# API/DAST: baseline staging scan&lt;/span&gt;
docker run &lt;span class="nt"&gt;-t&lt;/span&gt; ghcr.io/zaproxy/zaproxy:stable zap-baseline.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-t&lt;/span&gt; https://staging.example.com &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;-r&lt;/span&gt; zap-report.html

&lt;span class="c"&gt;# SCA: upload manifest or SBOM to Vulert&lt;/span&gt;
&lt;span class="c"&gt;# https://vulert.com/abom&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Migration Checklist to Replace Checkmarx Safely
&lt;/h2&gt;

&lt;p&gt;A safe migration should avoid a visibility gap. Do not turn off Checkmarx until the replacement tools are running, reporting, and creating tickets for new findings. Run both systems in parallel for at least 2-4 weeks if you still have access. Compare Critical and High findings, review false positives, and confirm developers know where new security tickets will appear.&lt;/p&gt;

&lt;p&gt;For SCA, export any available SBOMs or dependency reports before access ends. Store them by application and release. Then upload representative SBOMs or manifests to Vulert to confirm coverage. For SAST, run Semgrep against the top 5 active repositories and compare findings against the highest-priority Checkmarx SAST findings. For IaC, run Checkov against active Terraform and Kubernetes repositories. For API testing, run ZAP against staging endpoints that have safe test data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Export evidence:&lt;/strong&gt; Save Checkmarx reports, SBOMs, open findings, suppression lists, and remediation history before access ends.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Map capabilities:&lt;/strong&gt; Decide which tool replaces SAST, SCA, IaC, API testing, and reporting.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run parallel scans:&lt;/strong&gt; Compare old and new findings for Critical and High issues before switching workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create triage rules:&lt;/strong&gt; Define what blocks builds, what creates tickets, and what goes into backlog.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document ownership:&lt;/strong&gt; Assign owners for code scanning, dependency scanning, infrastructure scanning, and API testing.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review after 30 days:&lt;/strong&gt; Measure finding volume, false positives, time to fix, and developer feedback.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  When Checkmarx Still Makes Sense
&lt;/h2&gt;

&lt;p&gt;Checkmarx still makes sense for organizations that need one mature enterprise platform across many teams, business units, languages, and governance workflows. If your company has hundreds of repositories, strict compliance reporting, centralized AppSec ownership, custom policy needs, and the budget to support enterprise implementation, Checkmarx can be a good fit.&lt;/p&gt;

&lt;p&gt;The alternative stack makes more sense when the team is smaller, cost matters, and the highest priority is practical remediation. A mid-size team may not need enterprise-level workflow complexity to fix vulnerable packages, catch obvious code patterns, scan Terraform, and test APIs in staging.&lt;/p&gt;

&lt;p&gt;Use this rule: if your team spends more time administering the security platform than fixing findings, the tool may be too heavy for your stage. If your team cannot produce an audit-ready view of Critical and High vulnerabilities, your stack may be too light. The right replacement sits between those extremes.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Choose the smallest stack that gives you reliable coverage, developer adoption, and clear remediation evidence.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Checkmarx is a strong enterprise AppSec platform, but many mid-size teams do not need the full suite or enterprise pricing.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A practical Checkmarx alternative can combine Semgrep for SAST, Vulert for SCA, Checkov for IaC, OWASP ZAP for API testing, and an annual penetration test.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Teams should replace CxSCA first after a divestiture because new open source CVEs are disclosed daily and dependency visibility must continue.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vulert Pro costs $540 per year and focuses on dependency vulnerability monitoring through manifest and SBOM analysis.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Semgrep can run useful SAST scans quickly with &lt;code&gt;python3 -m pip install semgrep&lt;/code&gt; and &lt;code&gt;semgrep --config=auto .&lt;/code&gt;.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The realistic replacement stack can cost around $9,000-$16,000 per year when paired with an annual boutique penetration test.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. What is the best free Checkmarx alternative?
&lt;/h3&gt;

&lt;p&gt;The best free replacement depends on the capability. Semgrep is the best free starting point for SAST, Checkov is strong for IaC scanning, and OWASP ZAP works well for API and DAST baseline testing. For SCA, Vulert offers a free scanner at &lt;code&gt;vulert.com/abom&lt;/code&gt; and paid continuous monitoring at much lower cost than enterprise platforms.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How do I replace Checkmarx SCA specifically?
&lt;/h3&gt;

&lt;p&gt;Export your dependency files or SBOMs, then upload them to Vulert. Vulert accepts common manifest files and CycloneDX/SPDX SBOMs, shows known CVEs, provides exact fixed versions, and includes CLI fix commands. This is the fastest Checkmarx SCA replacement path for teams that need dependency vulnerability visibility immediately.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Why do teams say Checkmarx is too expensive?
&lt;/h3&gt;

&lt;p&gt;Teams usually say Checkmarx is too expensive when they are paying for an enterprise platform but mainly using SCA or basic SAST. For sub-200-person companies, a smaller stack can cover common remediation workflows at a fraction of the annual cost.&lt;/p&gt;

</description>
      <category>checkmarx</category>
      <category>sast</category>
      <category>sca</category>
      <category>vulert</category>
    </item>
    <item>
      <title>The EU Cyber Resilience Act — What Software Engineering Teams Need to Know in 2026</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Wed, 29 Jul 2026 07:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/the-eu-cyber-resilience-act-what-software-engineering-teams-need-to-know-in-2026-1kpg</link>
      <guid>https://dev.to/vulert_official/the-eu-cyber-resilience-act-what-software-engineering-teams-need-to-know-in-2026-1kpg</guid>
      <description>&lt;p&gt;&lt;strong&gt;EU cyber resilience act software&lt;/strong&gt; requirements are moving from legal text to engineering work. Teams selling software, connected products, hardware with software, or IoT devices into the EU now need practical processes for vulnerability handling, SBOMs, secure updates, and reporting.&lt;/p&gt;

&lt;p&gt;The Cyber Resilience Act entered into force on 10 December 2024. Reporting obligations begin on 11 September 2026, and the main obligations apply from 11 December 2027. That timeline gives software teams limited time to turn dependency visibility, vulnerability monitoring, and security documentation into repeatable engineering processes.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the EU Cyber Resilience Act Is
&lt;/h2&gt;

&lt;p&gt;The EU Cyber Resilience Act, or CRA, establishes cybersecurity requirements for products with digital elements made available on the EU market. A product with digital elements can include software, hardware with embedded software, connected devices, IoT products, firmware-driven systems, and other digital products that connect directly or indirectly to a network.&lt;/p&gt;

&lt;p&gt;For software teams, the CRA matters because it turns security practices into product obligations. The regulation expects manufacturers to build products with cybersecurity in mind, handle vulnerabilities across the product lifecycle, provide security updates, maintain technical documentation, and report certain serious events. This affects engineering, product management, DevOps, security, compliance, and customer support workflows.&lt;/p&gt;

&lt;p&gt;The CRA applies mainly to manufacturers placing products with digital elements on the EU market, but importers and distributors also have duties. A non-EU company can still be affected if it sells covered products to EU customers. That is why engineering teams outside Europe should not ignore the regulation if their product reaches the EU market.&lt;/p&gt;

&lt;p&gt;The most relevant operational areas for software teams are vulnerability handling, dependency monitoring, component inventory, SBOM generation, secure update processes, and evidence. These are not one-time tasks. They require a running process that can detect newly disclosed CVEs, assign fixes, document remediation, and support reporting timelines.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Dates — When Does This Apply to You?
&lt;/h2&gt;

&lt;p&gt;The CRA timeline matters because different obligations begin at different times. The regulation entered into force on 10 December 2024. The first major operational deadline for many manufacturers is 11 September 2026, when reporting obligations for actively exploited vulnerabilities and severe incidents begin. The main CRA obligations apply from 11 December 2027.&lt;/p&gt;

&lt;p&gt;Engineering teams should treat 2026 as the preparation year. Waiting until late 2027 creates a documentation and process gap. If your team sells into the EU and has no SBOM process, no continuous vulnerability monitoring, no vulnerability disclosure policy, and no remediation evidence, you may need several months to create a credible program.&lt;/p&gt;

&lt;p&gt;The reporting deadline is especially important because the clock starts when the manufacturer becomes aware of an actively exploited vulnerability or severe incident. If your monitoring process is slow, manual, or inconsistent, you may struggle to meet the 24-hour early warning expectation after awareness.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Milestone&lt;/th&gt;
&lt;th&gt;Engineering Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;10 December 2024&lt;/td&gt;
&lt;td&gt;CRA entered into force.&lt;/td&gt;
&lt;td&gt;The regulation is active, and teams should begin preparation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11 September 2026&lt;/td&gt;
&lt;td&gt;Reporting obligations begin.&lt;/td&gt;
&lt;td&gt;Manufacturers must report actively exploited vulnerabilities and severe incidents through the required channels.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11 December 2027&lt;/td&gt;
&lt;td&gt;Main obligations apply.&lt;/td&gt;
&lt;td&gt;Products with digital elements must meet the broader CRA requirements.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; The 2026 reporting deadline arrives before the full 2027 application date. Do not wait until 2027 to build vulnerability monitoring and reporting workflows.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Does the CRA Apply to Your Company?
&lt;/h2&gt;

&lt;p&gt;The CRA can apply to any company that makes or sells products with digital elements into the EU market. This includes commercial software vendors, SaaS-adjacent product companies, IoT manufacturers, hardware vendors with firmware, industrial device makers, security appliance vendors, and companies distributing connected products under their own name.&lt;/p&gt;

&lt;p&gt;The key question is not only where your company is located. The question is whether your product is made available on the EU market. A UK, US, Pakistani, Canadian, Indian, or Singaporean company may still need to prepare if EU customers buy or use its covered products. Importers and distributors may also ask vendors for evidence because they have their own obligations in the supply chain.&lt;/p&gt;

&lt;p&gt;Purely non-commercial open source projects receive important treatment under the final CRA text, but commercial products that incorporate open source components do not automatically escape responsibility. If your company ships a paid product that includes &lt;code&gt;lodash&lt;/code&gt;, &lt;code&gt;log4j-core&lt;/code&gt;, &lt;code&gt;openssl&lt;/code&gt;, &lt;code&gt;requests&lt;/code&gt;, &lt;code&gt;jackson-databind&lt;/code&gt;, or other third-party components, your company remains responsible for managing product risk.&lt;/p&gt;

&lt;p&gt;Use the table below as a practical engineering filter, not legal advice.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;Likely CRA Relevance&lt;/th&gt;
&lt;th&gt;What to Do&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;You sell commercial software to EU customers.&lt;/td&gt;
&lt;td&gt;High relevance.&lt;/td&gt;
&lt;td&gt;Prepare SBOM, vulnerability handling, monitoring, and documentation processes.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You sell IoT or hardware with firmware in the EU.&lt;/td&gt;
&lt;td&gt;High relevance.&lt;/td&gt;
&lt;td&gt;Map firmware components, update channels, and vulnerability reporting workflows.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;You maintain a free non-commercial open source project.&lt;/td&gt;
&lt;td&gt;Specific exemptions may apply.&lt;/td&gt;
&lt;td&gt;Confirm treatment with legal counsel before assuming obligations.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Your commercial product uses open source packages.&lt;/td&gt;
&lt;td&gt;High relevance.&lt;/td&gt;
&lt;td&gt;Track open source CVEs because the commercial product carries the responsibility.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  What the CRA Requires — The Open Source Dependency Angle
&lt;/h2&gt;

&lt;p&gt;EU cyber resilience act software preparation should start with open source dependency visibility. Modern software products are built from third-party packages, frameworks, libraries, SDKs, and transitive dependencies. If a product includes a vulnerable component, the manufacturer needs a process to know about it, assess it, remediate it, and document the decision.&lt;/p&gt;

&lt;p&gt;The CRA does not only ask teams to react after incidents. It pushes manufacturers toward secure-by-design development, vulnerability handling, documented components, coordinated vulnerability disclosure, and ongoing security support. For engineering teams, that translates into dependency inventory, SBOM generation, automated CVE monitoring, remediation SLAs, ticketing, release documentation, and evidence history.&lt;/p&gt;

&lt;p&gt;A practical CRA readiness process should answer 5 questions: What components are in the product? Which components have known CVEs? Which vulnerabilities are actively exploited? Who owns remediation? Can the team prove when the issue was found, fixed, and verified?&lt;/p&gt;

&lt;h2&gt;
  
  
  Vulnerability Handling Requirements
&lt;/h2&gt;

&lt;p&gt;Vulnerability handling means the company has a documented process to receive, assess, prioritize, fix, and disclose security vulnerabilities. For software teams, this includes vulnerabilities in first-party code and third-party dependencies.&lt;/p&gt;

&lt;p&gt;A working vulnerability handling process should include ownership, severity rules, remediation timelines, exception handling, customer communication, and evidence storage. For example, a team may require Critical CVEs to receive review within 24 hours, emergency fixes within 48 hours where a patch is available, and documented mitigations when no patch exists.&lt;/p&gt;

&lt;p&gt;Dependency monitoring supports this requirement because teams cannot address vulnerabilities they do not know about. Continuous SCA monitoring helps identify newly disclosed CVEs affecting specific packages and gives engineering owners the data needed to act.&lt;/p&gt;

&lt;h2&gt;
  
  
  SBOM Requirements
&lt;/h2&gt;

&lt;p&gt;Software Bill of Materials, or SBOM, is a machine-readable inventory of software components. The CRA references the need to identify and document components, including third-party and open source components. For engineering teams, that means generating and maintaining SBOMs or equivalent component records for products sold into the EU.&lt;/p&gt;

&lt;p&gt;Common SBOM formats include CycloneDX and SPDX. Teams can generate SBOMs using tools such as Syft or CycloneDX CLI, then store them with release artifacts. SBOMs should be updated when dependencies change, not created once and forgotten.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Generate a CycloneDX SBOM from the current project directory&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; cyclonedx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom.json

&lt;span class="c"&gt;# Generate an SPDX SBOM from the current project directory&lt;/span&gt;
syft &lt;span class="nb"&gt;dir&lt;/span&gt;:. &lt;span class="nt"&gt;-o&lt;/span&gt; spdx-json &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; sbom-spdx.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The 24-Hour ENISA Reporting Requirement
&lt;/h2&gt;

&lt;p&gt;ENISA reporting becomes operationally important from 11 September 2026. Manufacturers must report actively exploited vulnerabilities and severe incidents affecting product security through the required reporting process. ENISA is preparing the Single Reporting Platform to support these notifications.&lt;/p&gt;

&lt;p&gt;The early warning requirement creates a speed problem for engineering teams. You need to know when a vulnerability is actively exploited, whether your product includes the affected component, and whether your product is impacted. That requires inventory, monitoring, triage ownership, and escalation paths.&lt;/p&gt;

&lt;p&gt;Continuous monitoring does not replace legal review or official reporting decisions, but it helps engineering teams detect relevant CVEs quickly enough to support the reporting process.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Open Source Nuance — Who Is Responsible?
&lt;/h2&gt;

&lt;p&gt;EU CRA open source discussion caused concern because maintainers worried that the regulation could impose heavy obligations on volunteer open source projects. The final framework includes important nuance for open source software that is not commercialized and not provided as part of a commercial activity.&lt;/p&gt;

&lt;p&gt;Commercial product teams should not misread that nuance. If your company incorporates open source components into a commercial product, your company must manage the security risk of the product you place on the market. The maintainer of a package such as &lt;code&gt;lodash&lt;/code&gt;, &lt;code&gt;log4j-core&lt;/code&gt;, &lt;code&gt;urllib3&lt;/code&gt;, &lt;code&gt;openssl&lt;/code&gt;, or &lt;code&gt;jackson-databind&lt;/code&gt; does not become your compliance team.&lt;/p&gt;

&lt;p&gt;This is the standard SCA use case. Your team needs to know which packages are present, which versions are vulnerable, which fixed versions exist, and whether exploitation affects your product. The fact that you did not write the dependency does not remove the need to track it.&lt;/p&gt;

&lt;p&gt;Under the CRA, commercial products incorporating open source components inherit responsibility for those components. The open source maintainer is not your vulnerability management process.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Tip:&lt;/strong&gt; Treat open source dependency monitoring as product security work, not as an optional developer hygiene task.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  5 Practical Steps to Start CRA Preparation Now
&lt;/h2&gt;

&lt;p&gt;CRA compliance software preparation should begin with processes engineering teams can implement now. You do not need to wait for every harmonized standard or final internal legal interpretation to start improving component visibility, vulnerability monitoring, SBOM generation, and remediation evidence.&lt;/p&gt;

&lt;p&gt;The 5 steps below create a practical foundation for product teams. They help you answer customer security questions, prepare for audits, and support future CRA obligations.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Generate an SBOM for every product sold into the EU:&lt;/strong&gt; Use Syft or CycloneDX tooling to create CycloneDX or SPDX SBOMs for each release. Store the SBOM with the product version, build date, and repository commit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Establish continuous vulnerability monitoring:&lt;/strong&gt; Use an SCA tool such as Vulert to monitor manifest files and SBOMs against CVE databases. Continuous monitoring helps teams detect new CVEs between code changes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write a vulnerability disclosure policy:&lt;/strong&gt; Create a public or customer-facing process for reporting security issues. Define where reports go, who triages them, and what response timeline reporters should expect.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Document your remediation process:&lt;/strong&gt; Write severity-based SLAs, assign owners, create Jira tickets for findings, and keep records showing when CVEs were found, fixed, and verified.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Track reporting timelines:&lt;/strong&gt; Build escalation paths for actively exploited vulnerabilities and severe incidents. The 24-hour early warning requirement means teams need fast internal routing from engineering to leadership and legal review.&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Artifact to Produce&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Generate SBOMs&lt;/td&gt;
&lt;td&gt;CycloneDX or SPDX file per product release.&lt;/td&gt;
&lt;td&gt;Engineering or DevOps.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitor dependencies&lt;/td&gt;
&lt;td&gt;Continuous SCA dashboard and alert history.&lt;/td&gt;
&lt;td&gt;Security or engineering lead.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Create VDP&lt;/td&gt;
&lt;td&gt;Vulnerability disclosure policy page or document.&lt;/td&gt;
&lt;td&gt;Security lead and legal counsel.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Document remediation&lt;/td&gt;
&lt;td&gt;Severity SLA, Jira tickets, fix records, and scan history.&lt;/td&gt;
&lt;td&gt;Engineering manager.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Track reporting&lt;/td&gt;
&lt;td&gt;Escalation workflow for actively exploited vulnerabilities.&lt;/td&gt;
&lt;td&gt;Security, leadership, and legal.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How Vulert Helps With CRA Dependency Readiness
&lt;/h2&gt;

&lt;p&gt;EU cyber resilience act software preparation depends on knowing what components you ship and which CVEs affect them. Vulert helps with the dependency monitoring part of that process by scanning manifest files and SBOMs against 458,000+ known CVEs.&lt;/p&gt;

&lt;p&gt;Vulert supports &lt;code&gt;package-lock.json&lt;/code&gt;, &lt;code&gt;yarn.lock&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;poetry.lock&lt;/code&gt;, &lt;code&gt;composer.lock&lt;/code&gt;, &lt;code&gt;go.sum&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;Cargo.lock&lt;/code&gt;, &lt;code&gt;pubspec.lock&lt;/code&gt;, &lt;code&gt;mix.lock&lt;/code&gt;, &lt;code&gt;*.csproj&lt;/code&gt;, &lt;code&gt;packages.lock.json&lt;/code&gt;, and SBOM files in SPDX and CycloneDX formats. It supports PHP, JavaScript, Java, Python, Go, Ruby, Rust, Dart, Elixir, Erlang, C++, and C#/.NET.&lt;/p&gt;

&lt;p&gt;The most relevant features for CRA preparation are continuous 24/7 monitoring, alerting within hours of new CVE disclosures, exact fix versions, CLI fix commands, Dependency Health grouping, Jira ticket creation, vulnerability history, and trend reports. These features help teams prove that vulnerability monitoring is not a one-time scan.&lt;/p&gt;

&lt;p&gt;Vulert does not replace legal counsel, conformity assessment, or official reporting decisions. It supports the engineering evidence layer: component visibility, CVE detection, remediation guidance, and historical records. To strengthen your CRA preparation workflow, read these related Vulert guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client Security Questionnaire — Open Source Section&lt;/li&gt;
&lt;li&gt;Free Online Vulnerability Scanner Guide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These guides help connect CRA preparation with customer security questionnaires, dependency scanning, SBOMs, and continuous monitoring evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;EU cyber resilience act software readiness affects teams that sell products with digital elements into the EU market.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The CRA entered into force on 10 December 2024, reporting obligations apply from 11 September 2026, and main obligations apply from 11 December 2027.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Software teams should prepare SBOMs, vulnerability handling processes, continuous dependency monitoring, remediation evidence, and disclosure workflows.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Commercial products that include open source components remain responsible for managing vulnerabilities in those components.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The 24-hour reporting expectation for actively exploited vulnerabilities requires fast internal awareness, triage, and escalation.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Continuous SCA monitoring helps teams detect new CVEs affecting shipped packages between code changes and release cycles.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Frequently Asked Questions
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Does the EU CRA apply to open source software?
&lt;/h3&gt;

&lt;p&gt;The CRA includes important nuance for open source software that is not commercialized and not provided as part of commercial activity. Commercial products that include open source components still need to manage the security risk of those components. Ask legal counsel how the rule applies to your exact product and business model.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What does the EU CRA require for vulnerability management?
&lt;/h3&gt;

&lt;p&gt;The CRA expects manufacturers to handle vulnerabilities across the product lifecycle. Engineering teams should maintain component inventory, monitor CVEs, document remediation, provide updates, and prepare reporting workflows for actively exploited vulnerabilities and severe incidents.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Do I need an SBOM for EU CRA compliance?
&lt;/h3&gt;

&lt;p&gt;The CRA points teams toward identifying and documenting software components, including third-party and open source components. In practice, software teams should prepare CycloneDX or SPDX SBOMs for products sold into the EU and keep them updated with releases.&lt;/p&gt;

</description>
      <category>eucyber</category>
      <category>sbom</category>
      <category>cyberresilience</category>
      <category>vulert</category>
    </item>
  </channel>
</rss>
