<?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.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>Open Source Security for Healthcare Software — HIPAA, FDA, and Dependency Requirements</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Fri, 12 Jun 2026 19:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/open-source-security-for-healthcare-software-hipaa-fda-and-dependency-requirements-1kgk</link>
      <guid>https://dev.to/vulert_official/open-source-security-for-healthcare-software-hipaa-fda-and-dependency-requirements-1kgk</guid>
      <description>&lt;p&gt;Healthcare software has some of the highest security stakes of any industry. A vulnerability in a normal business application can expose data or disrupt operations. A vulnerability in healthcare software can affect patient privacy, clinical workflows, connected medical devices, hospital availability, and in some cases patient safety.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Healthcare software security vulnerabilities&lt;/strong&gt; are not only engineering problems. They can become HIPAA compliance issues, FDA medical device cybersecurity concerns, breach notification events, ransomware entry points, and audit findings. When healthcare applications rely on open-source dependencies, every vulnerable package becomes part of the organization’s risk profile.&lt;/p&gt;

&lt;p&gt;This guide explains how healthcare teams should manage open-source dependency security, including HIPAA technical safeguards, FDA cybersecurity guidance, SBOM expectations for medical device software, vulnerability monitoring, patching workflows, and audit evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Healthcare Software Has the Highest Stakes for Dependency Security
&lt;/h2&gt;

&lt;p&gt;Healthcare systems process electronic protected health information, clinical data, insurance records, prescriptions, imaging, lab results, device telemetry, scheduling, and patient communications. Many systems are also connected to operational workflows inside hospitals, clinics, labs, pharmacies, and medical device environments.&lt;/p&gt;

&lt;p&gt;That means a vulnerable dependency can do more than expose a database. It can disrupt care delivery, delay treatment, affect device availability, or force clinical teams back to manual processes. Healthcare cybersecurity is not just about confidentiality. It is also about integrity, availability, resilience, and patient safety.&lt;/p&gt;

&lt;p&gt;Open-source components are everywhere in healthcare software: web frameworks, API libraries, logging tools, authentication packages, image processing libraries, cloud SDKs, database clients, frontend packages, mobile dependencies, and container images. Without continuous monitoring, healthcare teams may not know when a newly disclosed CVE affects software already deployed in production.&lt;/p&gt;

&lt;h2&gt;
  
  
  Regulatory Requirements Specific to Healthcare
&lt;/h2&gt;

&lt;p&gt;Healthcare organizations and medical software vendors operate under multiple overlapping security expectations. Some requirements apply directly to covered entities and business associates. Others apply to medical device manufacturers. Others arise from customer contracts, hospital procurement, cyber insurance, and enterprise security questionnaires.&lt;/p&gt;

&lt;h3&gt;
  
  
  HIPAA Security Rule — Technical Safeguards
&lt;/h3&gt;

&lt;p&gt;The HIPAA Security Rule includes technical safeguard requirements for electronic protected health information, known as ePHI. The technical safeguards at 45 CFR §164.312 include controls such as access control, audit controls, integrity controls, authentication, and transmission security. The regulation requires technical measures to guard against unauthorized access to ePHI in relevant contexts.&lt;/p&gt;

&lt;p&gt;HIPAA does not list every open-source package or say “scan your dependencies with SCA.” But unpatched dependencies can become a direct path to unauthorized access. If a known CVE in a backend framework, API library, authentication package, or file parser allows attackers to access ePHI, the organization may need to explain whether appropriate technical safeguards, risk management, monitoring, and patching processes were in place.&lt;/p&gt;

&lt;p&gt;For healthcare software teams, dependency security should be treated as part of HIPAA security operations. This includes knowing which components are used, monitoring vulnerabilities, applying fixes, retaining evidence, and verifying that patches are deployed.&lt;/p&gt;

&lt;h3&gt;
  
  
  FDA Cybersecurity Guidance for Medical Devices
&lt;/h3&gt;

&lt;p&gt;The FDA’s 2023 final guidance on cybersecurity in medical devices describes cybersecurity considerations and information to include in premarket submissions. It discusses secure product development, vulnerability management, and software supply chain considerations for medical device software.&lt;/p&gt;

&lt;p&gt;The FDA guidance specifically points to software bills of materials, vulnerability assessment, and coordinated vulnerability disclosure processes as important parts of medical device cybersecurity documentation.&lt;/p&gt;

&lt;p&gt;For manufacturers, this means dependency visibility is not optional. If a device includes open-source software, third-party libraries, operating system components, or embedded services, the manufacturer needs a way to know what is inside the product and how those components will be monitored over time.&lt;/p&gt;

&lt;h3&gt;
  
  
  SBOM Requirements for Medical Device Software
&lt;/h3&gt;

&lt;p&gt;An SBOM, or Software Bill of Materials, is an inventory of software components. For medical device software, an SBOM helps manufacturers, healthcare delivery organizations, and regulators understand which components are included in a device or software release.&lt;/p&gt;

&lt;p&gt;In practice, an FDA-ready SBOM should include component names, versions, suppliers, dependency relationships where available, and identifiers that allow vulnerability matching. Formats such as CycloneDX and SPDX are commonly used for SBOM exchange. CycloneDX is especially popular in application security and software supply chain workflows because it is designed for machine-readable component and vulnerability use cases.&lt;/p&gt;

&lt;p&gt;An SBOM is not useful if it sits untouched in a folder. It must be monitored against vulnerability databases continuously. New CVEs appear after release, and healthcare software may remain in use for years. Continuous SBOM monitoring helps teams detect newly disclosed vulnerabilities that affect already-deployed software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Healthcare-Specific Vulnerability Risks
&lt;/h2&gt;

&lt;p&gt;Healthcare software security vulnerabilities are especially serious because healthcare environments combine valuable data, operational urgency, and complex legacy systems. Attackers know hospitals and healthcare providers cannot tolerate downtime, which is why ransomware has heavily targeted the sector.&lt;/p&gt;

&lt;p&gt;Key healthcare-specific risks include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Patient safety:&lt;/strong&gt; Compromised clinical systems or connected devices can affect care workflows.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ransomware:&lt;/strong&gt; Healthcare organizations are attractive targets because downtime can disrupt patient services.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patient data exposure:&lt;/strong&gt; ePHI includes highly sensitive identity, medical, insurance, and billing information.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legacy systems:&lt;/strong&gt; Hospitals often run older systems that are difficult to patch quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interoperability APIs:&lt;/strong&gt; Modern healthcare software integrates with EHRs, labs, pharmacies, claims systems, devices, and patient apps.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medical device lifecycle:&lt;/strong&gt; Devices may remain deployed for many years, making long-term vulnerability monitoring essential.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;HIPAA breach notification rules require reporting breaches affecting 500 or more individuals without unreasonable delay and no later than 60 calendar days from discovery. That makes vulnerability prevention and early detection important not only for security but also for compliance and incident response readiness.&lt;/p&gt;

&lt;h2&gt;
  
  
  The WannaCry Lesson for Healthcare
&lt;/h2&gt;

&lt;p&gt;WannaCry remains one of the clearest examples of how known, patchable vulnerabilities can disrupt healthcare. In May 2017, WannaCry ransomware spread globally by abusing the EternalBlue exploit against unpatched Windows systems. The UK National Audit Office reported that NHS England identified 6,912 cancelled appointments and estimated that more than 19,000 appointments would have been cancelled in total.&lt;/p&gt;

&lt;p&gt;WannaCry was not an open-source dependency vulnerability, but the lesson applies directly to dependency security: known vulnerabilities left unpatched can cause real-world healthcare disruption. If a patch exists and monitoring is weak, healthcare organizations may still remain exposed.&lt;/p&gt;

&lt;p&gt;The operational lesson is simple: inventory, vulnerability monitoring, patch prioritization, and evidence matter. Healthcare software teams need to know which software components exist, which vulnerabilities apply, and how quickly fixes can be deployed and verified.&lt;/p&gt;

&lt;h2&gt;
  
  
  The FDA SBOM Requirement in Practice
&lt;/h2&gt;

&lt;p&gt;For healthcare and medical device teams, an SBOM process should be part of every release. Each release should have a component inventory that can be stored, reviewed, and monitored. When a new CVE is disclosed, the team should be able to answer: does this component exist in any released product, which version is affected, and which customers or deployments need action?&lt;/p&gt;

&lt;p&gt;A practical FDA-aligned SBOM workflow looks like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Generate an SBOM during the build or release process.&lt;/li&gt;
&lt;li&gt;Use a standard machine-readable format such as CycloneDX or SPDX.&lt;/li&gt;
&lt;li&gt;Store the SBOM with release artifacts.&lt;/li&gt;
&lt;li&gt;Upload the SBOM to a vulnerability monitoring tool.&lt;/li&gt;
&lt;li&gt;Monitor the SBOM continuously against CVE databases.&lt;/li&gt;
&lt;li&gt;Create remediation tickets when affected components are found.&lt;/li&gt;
&lt;li&gt;Document patch decisions, risk acceptance, and verification evidence.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vulert accepts CycloneDX and SPDX SBOM uploads, making it easier for healthcare software teams to check open-source components against known vulnerabilities and get fix guidance.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Compliant Healthcare Dependency Security Process
&lt;/h2&gt;

&lt;p&gt;A strong process for medical software open source security should be repeatable, documented, and connected to engineering workflows. Use this checklist as a baseline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create an SBOM for every healthcare software release.&lt;/li&gt;
&lt;li&gt;Use CycloneDX or SPDX for machine-readable SBOM output.&lt;/li&gt;
&lt;li&gt;Store SBOMs with release artifacts and audit records.&lt;/li&gt;
&lt;li&gt;Scan manifest files and lock files before release.&lt;/li&gt;
&lt;li&gt;Monitor SBOMs continuously after release.&lt;/li&gt;
&lt;li&gt;Track direct and transitive open-source dependencies.&lt;/li&gt;
&lt;li&gt;Identify CVEs affecting deployed software components.&lt;/li&gt;
&lt;li&gt;Classify vulnerabilities by severity, exploitability, exposure, and patient safety impact.&lt;/li&gt;
&lt;li&gt;Set remediation SLAs for Critical, High, Medium, and Low vulnerabilities.&lt;/li&gt;
&lt;li&gt;Prioritize actively exploited vulnerabilities and internet-facing clinical systems.&lt;/li&gt;
&lt;li&gt;Create tickets with package name, current version, fixed version, CVE ID, and owner.&lt;/li&gt;
&lt;li&gt;Verify fixes with a rescan before closure.&lt;/li&gt;
&lt;li&gt;Document risk acceptance with owner, reason, compensating controls, and expiration date.&lt;/li&gt;
&lt;li&gt;Maintain a Coordinated Vulnerability Disclosure policy.&lt;/li&gt;
&lt;li&gt;Retain evidence for HIPAA, FDA, customer, and internal audits.&lt;/li&gt;
&lt;li&gt;Review dependency trends regularly with security and engineering leadership.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This process helps reduce healthcare software security vulnerabilities by making dependency risk visible and actionable. It also gives healthcare teams documentation they can use during audits, customer reviews, and regulatory submissions.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Healthcare Software Teams
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for security vulnerabilities. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies. Vulert cross-references against 458,000+ CVEs and alerts teams when newly disclosed vulnerabilities affect their packages.&lt;/p&gt;

&lt;p&gt;For healthcare software teams, Vulert can support SBOM vulnerability monitoring, dependency scanning, and remediation evidence. Teams can upload CycloneDX or SPDX SBOMs, as well as 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;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;packages.lock.json&lt;/code&gt;, and more.&lt;/p&gt;

&lt;p&gt;Vulert provides fix guidance, exact upgrade versions, CLI commands where available, dependency health grouping, Jira integration, alerts, vulnerability history, and trend reports. These features help healthcare teams move from static SBOM inventory to ongoing vulnerability management.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Healthcare dependency security affects patient safety:&lt;/strong&gt; Vulnerabilities can disrupt clinical systems, expose ePHI, or affect device availability.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;HIPAA technical safeguards apply to security controls:&lt;/strong&gt; Unpatched vulnerabilities can create unauthorized access paths to ePHI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;FDA guidance emphasizes SBOMs and vulnerability management:&lt;/strong&gt; Medical device software needs component visibility and monitoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;WannaCry showed the real-world impact of unpatched systems:&lt;/strong&gt; Thousands of NHS appointments were cancelled or disrupted.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SBOMs must be monitored continuously:&lt;/strong&gt; A static SBOM is only a snapshot unless checked against new CVEs.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulert supports SBOM and manifest scanning:&lt;/strong&gt; Healthcare teams can upload CycloneDX SBOMs and dependency files to detect vulnerable components.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Does FDA require SBOM for medical devices?
&lt;/h3&gt;

&lt;p&gt;FDA cybersecurity guidance expects medical device submissions to include software supply chain information, including SBOM-related details, vulnerability assessment, and cybersecurity management information. Medical device manufacturers should treat SBOMs as a core part of device cybersecurity documentation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How quickly must healthcare software patch critical CVEs?
&lt;/h3&gt;

&lt;p&gt;Exact timelines depend on risk, product type, exposure, and regulatory obligations. A strong internal target is to patch Critical, actively exploited, or internet-facing vulnerabilities as quickly as possible, often within 24–48 hours where feasible, with documented risk management if delays are unavoidable.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert help with FDA SBOM requirements?
&lt;/h3&gt;

&lt;p&gt;Vulert can help by accepting CycloneDX and SPDX SBOM uploads, scanning components for known vulnerabilities, providing fix guidance, and maintaining vulnerability history. FDA compliance requires broader cybersecurity processes, but Vulert supports SBOM vulnerability monitoring and dependency risk management.&lt;/p&gt;

</description>
      <category>healthcare</category>
      <category>fda</category>
      <category>hipaa</category>
      <category>sbom</category>
    </item>
    <item>
      <title>How to Set Up Jira for Vulnerability Management: A Complete Workflow</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:30:44 +0000</pubDate>
      <link>https://dev.to/vulert_official/how-to-set-up-jira-for-vulnerability-management-a-complete-workflow-20lm</link>
      <guid>https://dev.to/vulert_official/how-to-set-up-jira-for-vulnerability-management-a-complete-workflow-20lm</guid>
      <description>&lt;p&gt;Many teams know they have vulnerabilities. They scan repositories, receive security alerts, review CVEs, and discuss issues in Slack. But knowing about vulnerabilities is not the same as fixing them. Without a structured workflow, security issues pile up, ownership becomes unclear, and the same vulnerability appears again in the next scan.&lt;/p&gt;

&lt;p&gt;A strong jira vulnerability management workflow turns security findings into trackable engineering work. Each vulnerability gets an owner, severity, SLA, fix command, affected application, review step, and verification step. Instead of hoping someone remembers to patch a vulnerable package, the team has a repeatable process from discovery to closure.&lt;/p&gt;

&lt;p&gt;This guide explains how to set up Jira for vulnerability remediation. It covers project structure, custom issue types, required fields, severity-based SLAs, workflow states, automation rules, reporting dashboards, and how Vulert’s Jira integration can create pre-filled tickets from dependency vulnerability findings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Vulnerabilities Get Lost Without a Proper Workflow
&lt;/h2&gt;

&lt;p&gt;The most common vulnerability tracking process in many teams looks like this: a scanner finds a CVE, someone posts it in Slack, a developer replies “I’ll check,” the message disappears under new conversations, and the vulnerability is rediscovered in the next scan. Nobody intended to ignore it, but the process had no durable ownership.&lt;/p&gt;

&lt;p&gt;Ad-hoc tracking fails because vulnerability remediation has multiple steps. Someone must confirm whether the finding is real, determine affected applications, prioritize the issue, identify the fixed version, apply the upgrade, run tests, deploy the change, and verify with a rescan. A Slack thread or spreadsheet rarely handles that full lifecycle well.&lt;/p&gt;

&lt;p&gt;Vulnerability work also competes with feature delivery. If security findings are not visible inside the same planning and tracking system engineers already use, they are easy to deprioritize. Jira is useful because it turns vulnerabilities into normal work items with status, assignee, due date, priority, comments, links, and reporting.&lt;/p&gt;

&lt;p&gt;The goal is not to create bureaucracy. The goal is accountability. Every vulnerability should answer five questions quickly: what is affected, how severe is it, who owns it, when is it due, and how do we know it is fixed?&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up Your Jira Security Project
&lt;/h2&gt;

&lt;p&gt;There are two common ways to organize vulnerability work in Jira. The first option is to create a dedicated security project, such as SEC, VULN, or APPSEC. The second option is to add a security issue type to existing engineering projects.&lt;/p&gt;

&lt;p&gt;A dedicated security project works well for teams that handle many vulnerabilities every month, have multiple applications, need centralized reporting, or must show auditors a clear remediation workflow. It gives security teams a single place to review open vulnerabilities, SLA breaches, verification status, and trends across services.&lt;/p&gt;

&lt;p&gt;Adding a security issue type to existing engineering projects works better for smaller teams. If you only receive a few vulnerabilities per month, it may be easier to keep remediation tickets inside the same project where developers already plan sprints. The trade-off is reporting: cross-project metrics can become harder unless fields, labels, and dashboards are standardized.&lt;/p&gt;

&lt;p&gt;As a practical recommendation, create a dedicated security project if your team handles more than 10 vulnerabilities per month or if multiple engineering teams share remediation ownership. For smaller teams, start with a custom issue type named Security Vulnerability inside the main engineering project.&lt;/p&gt;

&lt;p&gt;The best jira vulnerability management setup is the one your engineers will actually use. Keep the workflow simple, make fields useful, and avoid creating tickets that lack remediation detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Security Vulnerability Issue Type — Every Field You Need
&lt;/h2&gt;

&lt;p&gt;A normal bug ticket is usually not enough for vulnerability remediation. Security tickets need fields that help teams prioritize risk, identify the affected package or system, apply the correct fix, and prove the issue is resolved.&lt;/p&gt;

&lt;p&gt;Create a custom issue type called Security Vulnerability. Use it for dependency CVEs, manually reported vulnerabilities, penetration test findings, cloud misconfigurations, and application security issues. The exact fields can vary by team, but the following structure works well for most engineering organizations.&lt;br&gt;
| Field | Type | Purpose |&lt;br&gt;
|---|---|---|&lt;br&gt;
| Summary | Text | Use a clear title such as “Security: Upgrade lodash from 4.17.20 to 4.17.21”. |&lt;br&gt;
| CVE ID | Text field | Stores the CVE identifier, such as CVE-2021-44228. |&lt;br&gt;
| CVSS Score | Number field | Stores the severity score used for prioritization. |&lt;br&gt;
| Severity | Select field | Critical, High, Medium, or Low. |&lt;br&gt;
| Affected Applications | Multi-select or linked issue field | Shows which apps, services, or repositories are affected. |&lt;br&gt;
| Current Version | Text field | The vulnerable package or component version currently used. |&lt;br&gt;
| Fixed Version | Text field | The safe version that resolves the vulnerability. |&lt;br&gt;
| Fix Command | Text area | Exact command developers can run, such as npm install &lt;a href="mailto:package@version"&gt;package@version&lt;/a&gt;. |&lt;br&gt;
| Discovery Source | Select field | Vulert, manual review, penetration test, bug bounty, customer report, or scanner. |&lt;br&gt;
| SLA Due Date | Date field | Deadline calculated from severity and company policy. |&lt;/p&gt;

&lt;p&gt;The most useful security tickets are action-oriented. A developer should be able to open the ticket and understand what package is vulnerable, why it matters, which application is affected, what version fixes it, and what command to run.&lt;/p&gt;

&lt;p&gt;A good summary format is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Security: Upgrade [package] from [current version] to [fixed version]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A good description should include vulnerability background, affected paths, CVE references, fix guidance, testing notes, and verification instructions. If the issue came from a dependency scanner, include the package name, ecosystem, direct/transitive status, and vulnerable version range.&lt;/p&gt;

&lt;h2&gt;
  
  
  SLA Configuration — Severity-Based Deadlines
&lt;/h2&gt;

&lt;p&gt;Vulnerability tickets need deadlines. Without SLAs, teams may spend weeks debating priority while critical issues remain open. A severity-based SLA policy makes expectations clear and gives managers visibility into risk.&lt;/p&gt;

&lt;p&gt;Jira Service Management supports SLAs that help teams define and track service goals. For vulnerability remediation, you can model SLA targets based on severity, business risk, exploitability, and exposure. Atlassian’s SLA features are designed to help teams track service goals and visualize remaining time against those goals. :contentReference[oaicite:1]{index=1}&lt;br&gt;
| Severity | Resolution Deadline | Rationale |&lt;br&gt;
|---|---|---|&lt;br&gt;
| Critical | 2 business days | Critical vulnerabilities may allow remote code execution, authentication bypass, or active compromise. They require immediate ownership. |&lt;br&gt;
| High | 7 business days | High-severity issues can cause serious impact but may require authentication, specific conditions, or reduced exposure. |&lt;br&gt;
| Medium | 30 business days | Medium issues should be fixed in a planned sprint unless they affect exposed or sensitive systems. |&lt;br&gt;
| Low | 90 business days or formal risk acceptance | Low-risk issues can be handled through normal maintenance, but they should not remain invisible forever. |&lt;/p&gt;

&lt;p&gt;SLAs should start when the ticket is created or confirmed as valid. They should pause only for approved reasons such as waiting for vendor patch, waiting for risk acceptance, or blocked by a dependent team. Avoid pausing SLAs simply because a developer is busy.&lt;/p&gt;

&lt;p&gt;Set up notifications before breach and after breach. For example, notify the assignee when 50% of the SLA remains, notify the security champion when 25% remains, and escalate to the engineering manager when the SLA is breached.&lt;/p&gt;
&lt;h2&gt;
  
  
  Workflow States — Including the Verification Step Teams Skip
&lt;/h2&gt;

&lt;p&gt;A vulnerability workflow should be simple enough for developers but strict enough to prove closure. The recommended workflow is:&lt;/p&gt;

&lt;p&gt;Open → In Progress → In Review → Resolved → Verified&lt;/p&gt;

&lt;p&gt;Open means the vulnerability ticket exists and needs triage or assignment. In Progress means a developer is actively applying the fix. In Review means a pull request or change is waiting for review. Resolved means the fix has been merged or deployed. Verified means the vulnerability has been confirmed fixed through a rescan or manual validation.&lt;/p&gt;

&lt;p&gt;The verification step is critical. Many teams close vulnerability tickets when a pull request is merged. That is not enough. A dependency may still exist through another transitive path. The deployment may not have reached production. The scanner may still detect the old version in another service. Verification confirms the risk is actually gone.&lt;/p&gt;

&lt;p&gt;Jira workflows are built from statuses and transitions, and administrators can customize workflows to match team processes. Use that flexibility to make verification a required part of security work, not an optional afterthought. :contentReference[oaicite:2]{index=2}&lt;/p&gt;

&lt;p&gt;Add transition requirements where useful. For example, moving from Resolved to Verified should require a rescan result, release version, deployment link, or security reviewer approval. Moving to risk accepted should require a reason, approver, expiration date, and compensating controls.&lt;/p&gt;
&lt;h2&gt;
  
  
  Jira Automation Rules for Security Workflows
&lt;/h2&gt;

&lt;p&gt;Automation keeps security tickets moving. Jira automation rules are built from triggers, conditions, and actions, which makes them useful for routing, notifications, escalation, and recurring reports. :contentReference[oaicite:3]{index=3}&lt;/p&gt;

&lt;p&gt;Start with a few high-value rules instead of automating everything at once. The goal is to reduce manual coordination and make critical vulnerabilities impossible to miss.&lt;/p&gt;
&lt;h3&gt;
  
  
  Auto-assign critical vulnerabilities
&lt;/h3&gt;

&lt;p&gt;When a ticket is created with severity Critical, assign it to the security champion for the affected application or the owning engineering team. If the affected application field is empty, assign it to the security triage queue.&lt;/p&gt;
&lt;h3&gt;
  
  
  Send Slack notification for critical tickets
&lt;/h3&gt;

&lt;p&gt;When a Critical vulnerability is created, send a message to the security channel and the owning team channel. Include CVE ID, affected application, severity, SLA due date, and ticket link.&lt;/p&gt;
&lt;h3&gt;
  
  
  Escalate if not acknowledged in 4 hours
&lt;/h3&gt;

&lt;p&gt;If a Critical ticket remains Open and unassigned for 4 business hours, escalate to the engineering manager and security lead. This prevents urgent issues from waiting silently.&lt;/p&gt;
&lt;h3&gt;
  
  
  Create weekly vulnerability digest
&lt;/h3&gt;

&lt;p&gt;Every Monday, send a digest of open vulnerability tickets grouped by severity, team, and SLA status. This gives leadership a consistent view of risk without asking security teams for manual updates.&lt;/p&gt;
&lt;h3&gt;
  
  
  Reopen ticket if verification fails
&lt;/h3&gt;

&lt;p&gt;If a rescan still detects the same CVE after the ticket is marked Resolved, automatically move it back to In Progress or Open, add a comment, and notify the assignee.&lt;/p&gt;

&lt;p&gt;These rules make your jira vulnerability management process more reliable because ownership, escalation, and verification happen consistently.&lt;/p&gt;
&lt;h2&gt;
  
  
  Reporting for Management and Auditors
&lt;/h2&gt;

&lt;p&gt;Security leaders, engineering managers, SOC 2 auditors, enterprise customers, and compliance teams all ask similar questions: how many vulnerabilities are open, how severe are they, how quickly are they fixed, and is the trend improving?&lt;/p&gt;

&lt;p&gt;Your Jira dashboard should answer those questions without manual spreadsheet work. Start with these reports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open vulnerability count by severity:&lt;/strong&gt; Shows current risk posture.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Critical and High tickets past SLA:&lt;/strong&gt; Shows urgent remediation failures.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mean Time to Resolve by severity:&lt;/strong&gt; Shows how quickly teams fix issues.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulnerability trend over time:&lt;/strong&gt; Shows whether the backlog is improving or getting worse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open vulnerabilities by application:&lt;/strong&gt; Shows which services carry the most risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Risk accepted tickets:&lt;/strong&gt; Shows vulnerabilities that were not fixed and require review.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification status:&lt;/strong&gt; Shows how many resolved tickets still need proof of remediation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For management, keep dashboards simple. Executives rarely need every CVE detail. They need severity, trend, SLA performance, and business impact. Engineering teams need more detail: package name, fixed version, fix command, affected application, and pull request status.&lt;/p&gt;

&lt;p&gt;For auditors, consistency matters. A repeatable workflow with ticket history, SLA dates, comments, evidence of review, and verification proof is much stronger than screenshots from a scanner and informal Slack discussions.&lt;/p&gt;
&lt;h2&gt;
  
  
  Connecting Automated Scanning to Your Jira Workflow
&lt;/h2&gt;

&lt;p&gt;Manual ticket creation works at small scale, but it becomes painful when vulnerability volume increases. The best workflow connects automated scanning directly to Jira. When a scanner finds a vulnerable dependency, it should create or update a Jira ticket with the information developers need to fix it.&lt;/p&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for security vulnerabilities. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies. Vulert cross-references against 458,000+ CVEs and alerts teams when new vulnerabilities are disclosed that affect their packages.&lt;/p&gt;

&lt;p&gt;Vulert’s Jira integration supports one-click ticket creation. A Vulert-created Jira ticket can include a title with the CVE ID and upgrade action, a description with vulnerability background, affected package details, fixed version, remediation guidance, and exact CLI command where available. Priority can be mapped from severity, helping teams turn vulnerability intelligence into engineering work quickly.&lt;/p&gt;

&lt;p&gt;This is where jira vulnerability management becomes operational. Vulert finds the affected package, identifies the safe version, and helps create the Jira ticket. Jira then manages ownership, SLA, review, deployment, and verification.&lt;/p&gt;

&lt;p&gt;For example, a dependency finding can become:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Security: Upgrade example-package from 1.4.2 to 1.4.5

CVE ID: CVE-2026-12345
Severity: High
Current Version: 1.4.2
Fixed Version: 1.4.5
Fix Command: npm install example-package@1.4.5
Discovery Source: Vulert
Affected Application: Customer API
SLA Due Date: 7 business days
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Automation does not replace human judgment. Teams still need to verify exploitability, test upgrades, and deploy safely. But automated ticket creation removes the most common failure point: vulnerabilities getting noticed but never assigned.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Slack is not a remediation workflow:&lt;/strong&gt; Vulnerabilities need durable tickets, owners, SLAs, and verification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a dedicated security project for scale:&lt;/strong&gt; Teams handling more than 10 vulnerabilities per month usually benefit from a separate Jira project.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create a Security Vulnerability issue type:&lt;/strong&gt; Add fields for CVE ID, CVSS score, severity, affected apps, current version, fixed version, fix command, source, and SLA due date.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use severity-based SLAs:&lt;/strong&gt; Critical issues should move in days, not weeks.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not skip verification:&lt;/strong&gt; A ticket should not be fully closed until a rescan or validation confirms the vulnerability is fixed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automate routing and escalation:&lt;/strong&gt; Use Jira automation for assignment, Slack alerts, manager escalation, and weekly digests.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connect scanning to Jira:&lt;/strong&gt; Vulert can help create pre-filled Jira tickets from dependency vulnerability findings.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Should security vulnerabilities be in a separate Jira project?
&lt;/h3&gt;

&lt;p&gt;Use a separate security project if your team handles more than 10 vulnerabilities per month, manages multiple applications, needs centralized reporting, or must provide audit evidence. Smaller teams can start by adding a Security Vulnerability issue type to existing engineering projects.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How do I set up SLAs in Jira for security tickets?
&lt;/h3&gt;

&lt;p&gt;Define SLA targets by severity, such as Critical within 2 business days, High within 7 business days, Medium within 30 business days, and Low within 90 business days. In Jira Service Management, configure SLA goals, start and stop conditions, calendars, and breach notifications according to your team’s process.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert create Jira tickets for CVEs?
&lt;/h3&gt;

&lt;p&gt;Yes. Vulert’s Jira integration can help create pre-filled Jira tickets for vulnerable dependencies, including CVE details, affected package information, fix versions, and remediation commands where available.&lt;/p&gt;

</description>
      <category>jira</category>
      <category>devsecops</category>
      <category>vulert</category>
      <category>security</category>
    </item>
    <item>
      <title>Open Source Security for Fintech — Compliance Requirements and Best Practices</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:30:32 +0000</pubDate>
      <link>https://dev.to/vulert_official/open-source-security-for-fintech-compliance-requirements-and-best-practices-351n</link>
      <guid>https://dev.to/vulert_official/open-source-security-for-fintech-compliance-requirements-and-best-practices-351n</guid>
      <description>&lt;p&gt;Fintech companies operate in one of the most security-sensitive software environments. They process payment data, banking credentials, identity documents, transaction records, investment data, lending workflows, and customer financial behavior. That makes vulnerable open-source dependencies more than a technical issue. They can become a compliance issue, a breach trigger, a customer trust problem, and a board-level risk.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fintech open source security&lt;/strong&gt; is no longer optional. Modern financial products depend on open-source packages, frameworks, SDKs, APIs, and infrastructure components. If one of those components contains a known vulnerability and your team cannot show inventory, monitoring, prioritization, patching, and evidence, auditors and enterprise customers will ask difficult questions.&lt;/p&gt;

&lt;p&gt;This guide explains the compliance requirements and best practices fintech teams should follow for open-source dependency security, including PCI DSS 4.0, SOC 2, FCA/PRA operational resilience, GDPR Article 32, SBOMs, SCA tooling, vulnerability SLAs, and audit evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Fintech Has Zero Tolerance for Vulnerable Dependencies
&lt;/h2&gt;

&lt;p&gt;In many industries, a vulnerable dependency may be treated as engineering backlog. In fintech, it can directly affect regulatory posture and customer trust. Financial applications often sit close to money movement, payment authorization, cardholder data, bank account access, personally identifiable information, fraud detection, identity verification, or trading activity.&lt;/p&gt;

&lt;p&gt;Attackers understand this. Financial data has high resale value, payment systems can be abused quickly, and account takeover can create immediate financial loss. A vulnerable open-source component in a public API, payment flow, customer portal, admin dashboard, or data processing pipeline may become a direct path to sensitive information.&lt;/p&gt;

&lt;p&gt;The Equifax breach remains the most cited lesson for financial-data companies. A known Apache Struts vulnerability had a patch available, but the vulnerable component remained exposed. The total costs reported by Equifax later reached roughly $1.4 billion, showing how one unpatched dependency can become a catastrophic business event.&lt;/p&gt;

&lt;p&gt;For fintech companies, the lesson is clear: you must know what open-source components you use, which versions are deployed, which CVEs affect them, who owns remediation, and how quickly fixes are verified.&lt;/p&gt;

&lt;h2&gt;
  
  
  Regulatory Requirements That Specifically Cover Open Source
&lt;/h2&gt;

&lt;p&gt;Regulators and standards bodies may not always use the phrase “open-source dependency,” but the requirements clearly apply to software components, vulnerabilities, patching, inventory, operational resilience, and security controls. For fintech teams, open-source security must be mapped into compliance workflows, not handled as an informal engineering activity.&lt;/p&gt;

&lt;h3&gt;
  
  
  PCI DSS 4.0 — The New SBOM and Patching Requirements
&lt;/h3&gt;

&lt;p&gt;PCI DSS applies to organizations that store, process, or transmit payment card data, or that can affect the security of cardholder data environments. For fintech companies involved in payments, PCI DSS is often one of the most important frameworks.&lt;/p&gt;

&lt;p&gt;PCI DSS 4.0 introduced stronger expectations around software inventory and vulnerability management. Requirement 6.3.2 requires maintaining an inventory of bespoke and custom software, including third-party software components incorporated into that software, to support vulnerability and patch management. This is not always called an SBOM requirement in the standard, but in practice, it pushes teams toward SBOM-style component inventory.&lt;/p&gt;

&lt;p&gt;Requirement 6.3.3 requires protecting system components from known vulnerabilities by installing applicable security patches and updates. Public PCI DSS guidance summaries commonly describe this as requiring critical or high-security patches to be installed within defined timelines based on risk ranking.&lt;/p&gt;

&lt;p&gt;For open-source dependencies, this means fintech teams need a process to identify vulnerable package versions, determine applicable fixes, apply upgrades, and retain evidence. A spreadsheet updated once per year is not enough for a modern fintech environment.&lt;/p&gt;

&lt;h3&gt;
  
  
  SOC 2 Type II for Fintech
&lt;/h3&gt;

&lt;p&gt;SOC 2 Type II is not fintech-specific, but fintech companies pursuing enterprise clients often need it. Security-conscious banks, payment processors, lending partners, insurers, and enterprise buyers commonly ask for SOC 2 reports during vendor review.&lt;/p&gt;

&lt;p&gt;For dependency security, SOC 2 usually maps to monitoring, risk assessment, change management, vulnerability management, access controls, and incident response. The key point is evidence over time. A Type II report assesses operating effectiveness across a period, so you need a repeatable process: continuous detection, ticketing, remediation, verification, and reporting.&lt;/p&gt;

&lt;p&gt;If your team cannot show when a dependency vulnerability was detected, when it was assigned, when it was fixed, and how the fix was verified, your vulnerability management process will look immature during security reviews.&lt;/p&gt;

&lt;h3&gt;
  
  
  FCA Operational Resilience Requirements
&lt;/h3&gt;

&lt;p&gt;UK fintech firms may fall under Financial Conduct Authority expectations around outsourcing, third-party risk, operational resilience, and incident reporting. FCA guidance on outsourcing and operational resilience emphasizes that firms using outsourcing and third-party service providers remain responsible for managing operational resilience implications.&lt;/p&gt;

&lt;p&gt;In 2026, the FCA also confirmed updated incident and third-party reporting rules intended to improve consistency and strengthen resilience against disruptions such as cyber attacks and outages.&lt;/p&gt;

&lt;p&gt;Open-source software fits into this broader operational resilience picture because fintech systems increasingly depend on software supply chains. A vulnerable dependency in a critical service can create disruption, data exposure, or service degradation. Dependency visibility and patching therefore support operational resilience, not just AppSec hygiene.&lt;/p&gt;

&lt;h3&gt;
  
  
  GDPR Article 32
&lt;/h3&gt;

&lt;p&gt;If a fintech company processes EU personal data, GDPR Article 32 requires appropriate technical and organisational measures to ensure a level of security appropriate to the risk. The article specifically references measures such as encryption, confidentiality, integrity, availability, resilience, and regular testing/evaluation where appropriate.&lt;/p&gt;

&lt;p&gt;Unpatched known vulnerabilities can undermine the security of processing. If a dependency vulnerability exposes customer personal data, regulators may ask whether the organization had appropriate technical measures, monitoring, patching, and risk management in place.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fintech Risk Profile — Why You're a High-Value Target
&lt;/h2&gt;

&lt;p&gt;Fintech companies are attractive targets because they combine valuable data, money movement, APIs, and trust relationships. A single compromised dependency can affect payment workflows, banking integrations, customer accounts, KYC records, API tokens, or internal admin systems.&lt;/p&gt;

&lt;p&gt;Common fintech exposures include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Payment card data and payment authorization flows.&lt;/li&gt;
&lt;li&gt;Banking credentials, OAuth tokens, and API keys.&lt;/li&gt;
&lt;li&gt;Investment portfolios, trading history, and financial records.&lt;/li&gt;
&lt;li&gt;KYC documents, identity verification data, and personal information.&lt;/li&gt;
&lt;li&gt;Fraud detection systems and risk scoring pipelines.&lt;/li&gt;
&lt;li&gt;Admin dashboards used by support, finance, and operations teams.&lt;/li&gt;
&lt;li&gt;Third-party APIs for payments, banking, credit scoring, and compliance.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fintech also has a dense third-party ecosystem. Payment gateways, banking APIs, fraud vendors, analytics tools, KYC providers, cloud infrastructure, observability tools, and customer communication platforms all interact with your systems. Each integration adds operational and supply chain risk.&lt;/p&gt;

&lt;p&gt;This is why fintech open source security must include direct dependencies, transitive dependencies, vendor assessment, SBOMs, and documented remediation workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  PCI DSS 4.0 Compliance Checklist for Open Source Dependencies
&lt;/h2&gt;

&lt;p&gt;Use this checklist to align open-source dependency security with PCI DSS-style expectations for inventory, vulnerability identification, patching, and evidence.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Maintain an inventory of open-source components used in custom applications.&lt;/li&gt;
&lt;li&gt;Generate or collect SBOMs for applications that support payment flows.&lt;/li&gt;
&lt;li&gt;Track third-party software components included in bespoke/custom software.&lt;/li&gt;
&lt;li&gt;Scan manifest files and lock files for known vulnerabilities.&lt;/li&gt;
&lt;li&gt;Identify both direct and transitive dependency vulnerabilities.&lt;/li&gt;
&lt;li&gt;Map vulnerable dependencies to affected applications and environments.&lt;/li&gt;
&lt;li&gt;Define risk ranking for Critical, High, Medium, and Low vulnerabilities.&lt;/li&gt;
&lt;li&gt;Document patching timelines by severity.&lt;/li&gt;
&lt;li&gt;Apply critical and high-security patches within required timelines.&lt;/li&gt;
&lt;li&gt;Create remediation tickets with owner, due date, CVE ID, and fixed version.&lt;/li&gt;
&lt;li&gt;Verify fixes with a rescan before closing tickets.&lt;/li&gt;
&lt;li&gt;Retain evidence of scans, tickets, pull requests, deployments, and rescans.&lt;/li&gt;
&lt;li&gt;Review dependency risk before major releases.&lt;/li&gt;
&lt;li&gt;Monitor new CVEs continuously after release.&lt;/li&gt;
&lt;li&gt;Include dependency security in vendor and third-party risk assessments.&lt;/li&gt;
&lt;li&gt;Review SBOMs and vulnerability trends during compliance preparation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This checklist helps turn open-source security into audit-ready evidence. The goal is not just to say “we patch dependencies.” The goal is to prove inventory, monitoring, prioritization, remediation, and verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Recommended Fintech Dependency Security Stack
&lt;/h2&gt;

&lt;p&gt;A fintech dependency security program should be built around continuous visibility and evidence. Manual checks before an audit are not enough because new CVEs appear constantly and fintech systems change frequently.&lt;/p&gt;

&lt;p&gt;A practical stack includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Continuous SCA scanning:&lt;/strong&gt; Use Vulert or an equivalent SCA tool to scan manifests, lock files, and SBOMs for known vulnerabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SBOM generation for every release:&lt;/strong&gt; Use CycloneDX or SPDX so each release has a software component inventory.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Jira integration:&lt;/strong&gt; Turn vulnerability findings into tracked remediation tickets with owners and due dates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Severity-based SLAs:&lt;/strong&gt; For fintech, target Critical vulnerabilities within 24 hours where internet-facing or high-impact systems are involved.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit trail:&lt;/strong&gt; Retain scan results, vulnerability history, ticket status, pull request evidence, deployment dates, and rescan confirmation.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This stack supports compliance, but it also improves engineering speed. Developers get clearer fix guidance. Security teams get visibility. Auditors get evidence. Leadership gets measurable risk reduction.&lt;/p&gt;

&lt;h2&gt;
  
  
  SBOM Requirements in PCI DSS 4.0
&lt;/h2&gt;

&lt;p&gt;PCI DSS 4.0 Requirement 6.3.2 does not simply say “generate an SBOM” in the same way an SBOM standard would. Instead, it requires an inventory of bespoke/custom software and third-party components incorporated into that software to support vulnerability and patch management. In practice, SBOMs are one of the most effective ways to satisfy this kind of component inventory expectation.&lt;/p&gt;

&lt;p&gt;An SBOM helps fintech teams answer important questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Which components are included in this release?&lt;/li&gt;
&lt;li&gt;Which versions are running in production?&lt;/li&gt;
&lt;li&gt;Which dependencies are direct and which are transitive?&lt;/li&gt;
&lt;li&gt;Which CVEs affect these components?&lt;/li&gt;
&lt;li&gt;Which applications need urgent patching?&lt;/li&gt;
&lt;li&gt;Can we show auditors evidence of inventory and remediation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;SBOMs become especially useful when combined with continuous scanning. A static SBOM is a snapshot. Continuous monitoring turns that snapshot into an alerting and remediation workflow as new vulnerabilities are disclosed.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Fintech Teams
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for security vulnerabilities. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies. Vulert cross-references against 458,000+ CVEs and alerts teams when newly disclosed vulnerabilities affect their packages.&lt;/p&gt;

&lt;p&gt;For fintech open source security, Vulert helps teams build the visibility needed for compliance and engineering remediation. Teams can upload manifest files or SBOMs and get an instant vulnerability report in about 60 seconds. Vulert provides fix guidance, exact versions to upgrade to, and CLI commands where available.&lt;/p&gt;

&lt;p&gt;Vulert supports common dependency files 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;composer.lock&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;go.mod&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;gradle.lockfile&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, &lt;code&gt;sbom.json&lt;/code&gt;, &lt;code&gt;bom.json&lt;/code&gt;, &lt;code&gt;spdx.json&lt;/code&gt;, and CycloneDX/SPDX SBOMs.&lt;/p&gt;

&lt;p&gt;Vulert also supports Jira integration, vulnerability history, trend reports, and Dependency Health grouping. These features help fintech teams convert vulnerability detection into remediation tickets and audit-ready evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Best Practices for Fintech Open Source Security
&lt;/h2&gt;

&lt;p&gt;A mature fintech open source security process should be continuous, measurable, and connected to engineering workflows. Use the following best practices as a baseline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scan every application manifest or SBOM before release.&lt;/li&gt;
&lt;li&gt;Monitor production dependencies continuously after release.&lt;/li&gt;
&lt;li&gt;Set Critical vulnerability SLAs at 24 hours for exposed financial services.&lt;/li&gt;
&lt;li&gt;Use Jira tickets for ownership, due dates, and verification evidence.&lt;/li&gt;
&lt;li&gt;Verify every fix with a rescan before closing.&lt;/li&gt;
&lt;li&gt;Retain vulnerability history for audits and client reviews.&lt;/li&gt;
&lt;li&gt;Require SBOMs from critical software vendors where possible.&lt;/li&gt;
&lt;li&gt;Review third-party APIs and vendors as part of supply chain risk management.&lt;/li&gt;
&lt;li&gt;Use risk acceptance only with documented owner, reason, and expiration date.&lt;/li&gt;
&lt;li&gt;Report vulnerability trends to leadership monthly.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open source security is a compliance issue in fintech:&lt;/strong&gt; Vulnerable dependencies can affect PCI DSS, SOC 2, GDPR, and operational resilience expectations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PCI DSS 4.0 raises inventory expectations:&lt;/strong&gt; Requirement 6.3.2 pushes teams toward software component inventory and SBOM-style practices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Known vulnerabilities must be patched:&lt;/strong&gt; Requirement 6.3.3 focuses on protecting system components from known vulnerabilities through applicable patches and updates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fintech has a high-value risk profile:&lt;/strong&gt; Payment data, banking credentials, KYC records, and financial APIs make dependency risk more serious.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SBOMs support audit evidence:&lt;/strong&gt; They help prove what components are included in each release.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Vulert supports continuous dependency monitoring:&lt;/strong&gt; Teams can scan manifests and SBOMs, detect vulnerable packages, and receive fix guidance.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Does PCI DSS require SBOM?
&lt;/h3&gt;

&lt;p&gt;PCI DSS 4.0 Requirement 6.3.2 requires maintaining an inventory of bespoke/custom software and third-party software components incorporated into that software. The standard does not simply phrase this as “generate an SBOM,” but SBOMs are a practical way to maintain and prove that software component inventory.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How quickly must fintech companies patch critical CVEs?
&lt;/h3&gt;

&lt;p&gt;PCI DSS requirement summaries commonly reference timely installation of applicable security patches, especially for critical and high-risk vulnerabilities. For fintech systems that are internet-facing or handle payment and financial data, a 24-hour target for critical vulnerabilities is a strong internal SLA, even if formal requirements vary by environment and risk ranking.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Does Vulert help with PCI DSS compliance?
&lt;/h3&gt;

&lt;p&gt;Vulert can support PCI DSS compliance efforts by helping teams identify vulnerable open-source dependencies, monitor CVEs continuously, scan SBOMs and manifest files, generate remediation evidence, and maintain vulnerability history. PCI DSS compliance still requires broader controls beyond SCA, but Vulert helps with dependency visibility and vulnerability response.&lt;/p&gt;

</description>
      <category>fintech</category>
      <category>compliance</category>
      <category>sbom</category>
      <category>opensourcesecurity</category>
    </item>
    <item>
      <title>Langflow CVE-2026-5027 Exploited in the Wild — Unauthenticated RCE Risk in AI App Builder</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 11 Jun 2026 19:00:00 +0000</pubDate>
      <link>https://dev.to/vulert_official/langflow-cve-2026-5027-exploited-in-the-wild-unauthenticated-rce-risk-in-ai-app-builder-lc1</link>
      <guid>https://dev.to/vulert_official/langflow-cve-2026-5027-exploited-in-the-wild-unauthenticated-rce-risk-in-ai-app-builder-lc1</guid>
      <description>&lt;p&gt;Attackers are actively targeting AI development infrastructure, and &lt;strong&gt;Langflow CVE-2026-5027&lt;/strong&gt; is the latest example. CVE-2026-5027 is a high-severity path traversal vulnerability that can allow attackers to write files to arbitrary locations on the filesystem. In exposed deployments, this can lead to remote code execution risk.&lt;/p&gt;

&lt;p&gt;Langflow is an open-source low-code platform used to build AI applications, agents, and workflows. Because it often connects to model providers, internal APIs, credentials, file systems, and automation pipelines, a vulnerability in Langflow should be treated as a production infrastructure risk, not just a developer-tool issue.&lt;/p&gt;

&lt;p&gt;The vulnerability affects the &lt;code&gt;POST /api/v2/files&lt;/code&gt; endpoint. According to the uploaded article, the endpoint does not properly sanitize the &lt;code&gt;filename&lt;/code&gt; parameter from multipart form data. An attacker can use path traversal sequences such as &lt;code&gt;../&lt;/code&gt; to write files outside the intended upload directory.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is CVE-2026-5027?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CVE-2026-5027&lt;/code&gt; is a path traversal vulnerability in Langflow’s file upload functionality. The vulnerable endpoint is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST /api/v2/files
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The issue exists because Langflow does not properly sanitize the &lt;code&gt;filename&lt;/code&gt; parameter in multipart form data. By supplying a malicious filename containing traversal sequences, an attacker may write a file to an unintended location on the server filesystem.&lt;/p&gt;

&lt;p&gt;Path traversal vulnerabilities are dangerous because they break the boundary between the application’s intended file directory and the underlying host filesystem. In a file upload endpoint, this can allow attackers to place files where they should not be allowed to write.&lt;/p&gt;

&lt;p&gt;Depending on the deployment, file permissions, writable paths, runtime behavior, and application configuration, arbitrary file write can become remote code execution. For example, if an attacker can write to a location that is later executed, imported, loaded, or served as active content, the impact becomes much more severe.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This Langflow Vulnerability Matters
&lt;/h2&gt;

&lt;p&gt;This vulnerability matters because Langflow is part of the rapidly growing AI application infrastructure stack. Many organizations deploy AI builders, workflow tools, and low-code platforms quickly to support experimentation and internal automation. In some cases, these systems are exposed to the internet before they are hardened like production services.&lt;/p&gt;

&lt;p&gt;Public reporting says VulnCheck observed exploitation attempts against &lt;code&gt;CVE-2026-5027&lt;/code&gt;. The early activity reportedly involved writing test files to victim systems, but even test-file activity is important because it shows that attackers are probing real targets and validating exploitability.&lt;/p&gt;

&lt;p&gt;The risk becomes more serious where Langflow deployments allow unauthenticated auto-login by default. If attackers can obtain a valid session token without credentials and then reach the vulnerable file upload endpoint, exploitation may not require a real user account.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; AI workflow builders are now part of the attack surface. If they are exposed publicly, they need the same controls as any production web application.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Affected Endpoint and Root Cause
&lt;/h2&gt;

&lt;p&gt;The root cause is insufficient validation of user-controlled file names. The vulnerable endpoint accepts multipart form data and uses the supplied filename in a way that can allow path traversal.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Item&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVE ID&lt;/td&gt;
&lt;td&gt;&lt;code&gt;CVE-2026-5027&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected Product&lt;/td&gt;
&lt;td&gt;Langflow&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vulnerability Type&lt;/td&gt;
&lt;td&gt;Path traversal leading to arbitrary file write&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vulnerable Endpoint&lt;/td&gt;
&lt;td&gt;&lt;code&gt;POST /api/v2/files&lt;/code&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CVSS Score&lt;/td&gt;
&lt;td&gt;8.8 High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Attack Vector&lt;/td&gt;
&lt;td&gt;Remote network attack&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Potential Impact&lt;/td&gt;
&lt;td&gt;Arbitrary file write, configuration modification, code injection, possible RCE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploit Status&lt;/td&gt;
&lt;td&gt;Exploitation observed in the wild&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;A simplified malicious upload flow may look like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;An attacker sends a request to &lt;code&gt;POST /api/v2/files&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;The multipart request contains a malicious filename value.&lt;/li&gt;
&lt;li&gt;The filename includes traversal sequences such as &lt;code&gt;../&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Langflow writes the uploaded file outside the intended directory.&lt;/li&gt;
&lt;li&gt;The attacker attempts to place a file in a location that enables code execution or persistence.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How Path Traversal Can Become RCE
&lt;/h2&gt;

&lt;p&gt;Path traversal and arbitrary file write are already serious. They can become remote code execution when the attacker can write to a sensitive location that the application or operating system later executes, imports, loads, or processes.&lt;/p&gt;

&lt;p&gt;Possible abuse paths include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Writing a malicious Python file into an importable path.&lt;/li&gt;
&lt;li&gt;Overwriting configuration files that control application behavior.&lt;/li&gt;
&lt;li&gt;Writing files into startup, plugin, workflow, or template directories.&lt;/li&gt;
&lt;li&gt;Dropping web-accessible files that can trigger server-side behavior.&lt;/li&gt;
&lt;li&gt;Modifying files used by Langflow flows, agents, or integrations.&lt;/li&gt;
&lt;li&gt;Creating persistence files if the process has enough permissions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The exact exploitability depends on deployment details. File permissions, container isolation, working directory, mounted volumes, and runtime user privileges all matter. However, any internet-exposed arbitrary file write in an AI application platform should be treated as high risk.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; If Langflow is exposed to the internet and unauthenticated access is enabled, treat &lt;code&gt;CVE-2026-5027&lt;/code&gt; as urgent even if current exploitation appears limited.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Exposed Langflow Instances Are at Risk
&lt;/h2&gt;

&lt;p&gt;Public reporting noted that Censys observed roughly 7,000 Langflow instances exposed to the internet, with many located in North America. Exposed AI tooling is attractive to attackers because it may provide access to credentials, workflows, model integrations, internal APIs, files, and automation logic.&lt;/p&gt;

&lt;p&gt;Many organizations initially deploy AI tools for experimentation. A prototype may start as an internal demo but later become reachable from the internet, connected to real credentials, or used by internal teams. That transition often happens faster than the security hardening process.&lt;/p&gt;

&lt;p&gt;Langflow and similar AI workflow platforms should be protected with strong authentication, network restrictions, least-privilege runtime permissions, secrets management, logging, and continuous vulnerability monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related Langflow Exploitation Activity
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CVE-2026-5027&lt;/code&gt; follows a series of Langflow security issues that attackers have targeted. Public reporting has mentioned exploitation or attention around other Langflow vulnerabilities, including &lt;code&gt;CVE-2026-0770&lt;/code&gt;, &lt;code&gt;CVE-2026-33017&lt;/code&gt;, &lt;code&gt;CVE-2026-21445&lt;/code&gt;, and &lt;code&gt;CVE-2025-34291&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;This pattern shows that attackers are paying attention to AI development tools. As organizations adopt AI platforms, attackers are testing whether those systems are exposed, misconfigured, or running vulnerable versions.&lt;/p&gt;

&lt;p&gt;For defenders, the lesson is simple: AI infrastructure must be inventoried, patched, monitored, and isolated like any other production system.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Check If Your Langflow Deployment Is Exposed
&lt;/h2&gt;

&lt;p&gt;Start by identifying whether Langflow is running and whether it is reachable from untrusted networks.&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;# Check running containers&lt;/span&gt;
docker ps | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; langflow

&lt;span class="c"&gt;# Check local processes&lt;/span&gt;
ps aux | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; langflow

&lt;span class="c"&gt;# Check exposed ports&lt;/span&gt;
ss &lt;span class="nt"&gt;-lntp&lt;/span&gt;
netstat &lt;span class="nt"&gt;-lntp&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then review network exposure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is Langflow reachable from the public internet?&lt;/li&gt;
&lt;li&gt;Is it behind VPN, SSO, or private network controls?&lt;/li&gt;
&lt;li&gt;Is unauthenticated auto-login enabled?&lt;/li&gt;
&lt;li&gt;Can unauthenticated users reach &lt;code&gt;/api/v2/files&lt;/code&gt;?&lt;/li&gt;
&lt;li&gt;Are upload directories restricted and isolated?&lt;/li&gt;
&lt;li&gt;Does the Langflow process run with minimal privileges?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also search reverse proxy and application logs for access to the vulnerable endpoint:&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="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"/api/v2/files"&lt;/span&gt; /var/log/nginx/access.log
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"/api/v2/files"&lt;/span&gt; /var/log/nginx/error.log
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"filename="&lt;/span&gt; /var/log/nginx/access.log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not attempt exploit testing against production systems. Verify safely through configuration review, logs, access controls, and a controlled test environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Immediate Mitigations
&lt;/h2&gt;

&lt;p&gt;At the time of the public reporting, the issue was described as unpatched. If no official fix is available in your environment, reduce exposure immediately.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Restrict public access:&lt;/strong&gt; Do not expose Langflow directly to the internet.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disable unauthenticated access:&lt;/strong&gt; Turn off auto-login or unauthenticated access where possible.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Block the vulnerable endpoint:&lt;/strong&gt; Restrict &lt;code&gt;POST /api/v2/files&lt;/code&gt; at the reverse proxy or API gateway.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Apply authentication at the edge:&lt;/strong&gt; Require SSO, VPN, or identity-aware proxy access before requests reach Langflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Run with least privilege:&lt;/strong&gt; Ensure the Langflow process cannot write to sensitive system paths.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review upload directories:&lt;/strong&gt; Ensure uploaded files cannot affect application code, configuration, or startup behavior.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor suspicious uploads:&lt;/strong&gt; Watch for traversal strings, unexpected file locations, and new executable files.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patch when available:&lt;/strong&gt; Upgrade as soon as maintainers release a fixed version.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example Nginx mitigation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;/api/v2/files&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;deny&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Langflow must remain available, restrict the endpoint to trusted internal users only:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;/api/v2/files&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kn"&gt;allow&lt;/span&gt; &lt;span class="mf"&gt;10.0&lt;/span&gt;&lt;span class="s"&gt;.0.0/8&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;allow&lt;/span&gt; &lt;span class="mf"&gt;192.168&lt;/span&gt;&lt;span class="s"&gt;.0.0/16&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="kn"&gt;deny&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a temporary mitigation, not a permanent fix. Once a patched version is available, upgrade and verify the vulnerable behavior is removed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detection and Incident Response
&lt;/h2&gt;

&lt;p&gt;If your Langflow instance was exposed, review it for signs of file-write activity. Start with web server logs, application logs, filesystem changes, and suspicious files created near the time of exploitation attempts.&lt;/p&gt;

&lt;p&gt;Look for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requests to &lt;code&gt;/api/v2/files&lt;/code&gt; from unknown IP addresses.&lt;/li&gt;
&lt;li&gt;Multipart uploads with suspicious filenames.&lt;/li&gt;
&lt;li&gt;Filenames containing &lt;code&gt;../&lt;/code&gt; or encoded traversal sequences.&lt;/li&gt;
&lt;li&gt;Unexpected files outside intended upload directories.&lt;/li&gt;
&lt;li&gt;Recently modified Python files, config files, templates, or startup scripts.&lt;/li&gt;
&lt;li&gt;Unexpected outbound network connections from the Langflow host.&lt;/li&gt;
&lt;li&gt;New users, tokens, flows, or changed credentials.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful investigation commands include:&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;# Find recently modified files&lt;/span&gt;
find / &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-mtime&lt;/span&gt; &lt;span class="nt"&gt;-7&lt;/span&gt; 2&amp;gt;/dev/null

&lt;span class="c"&gt;# Search for traversal indicators in logs&lt;/span&gt;
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\.\.&lt;/span&gt;&lt;span class="s2"&gt;/"&lt;/span&gt; /var/log 2&amp;gt;/dev/null
&lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-R&lt;/span&gt; &lt;span class="s2"&gt;"%2e%2e"&lt;/span&gt; /var/log 2&amp;gt;/dev/null

&lt;span class="c"&gt;# Check suspicious files in common writable paths&lt;/span&gt;
find /tmp /var/tmp /app /workspace &lt;span class="nt"&gt;-type&lt;/span&gt; f &lt;span class="nt"&gt;-mtime&lt;/span&gt; &lt;span class="nt"&gt;-7&lt;/span&gt; 2&amp;gt;/dev/null
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If suspicious files are found, preserve evidence before deleting them. Rotate secrets used by Langflow, including model provider keys, API tokens, database credentials, and integration secrets. If the host may be compromised, rebuild it from a trusted image rather than trying to clean it manually.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why AI App Builders Need Production-Grade Security
&lt;/h2&gt;

&lt;p&gt;AI app builders such as Langflow are often treated as internal productivity tools. But they can quickly become powerful infrastructure. They may connect to LLM providers, databases, vector stores, APIs, cloud credentials, and internal services.&lt;/p&gt;

&lt;p&gt;If attackers compromise an AI builder, they may gain access to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model provider API keys.&lt;/li&gt;
&lt;li&gt;Internal workflow logic.&lt;/li&gt;
&lt;li&gt;Uploaded files and prompts.&lt;/li&gt;
&lt;li&gt;Application secrets.&lt;/li&gt;
&lt;li&gt;Connected databases or vector stores.&lt;/li&gt;
&lt;li&gt;Automation pipelines and agent tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is why AI tooling should not be left exposed with default settings. Treat it like production infrastructure: authenticate it, segment it, monitor it, patch it, and restrict what it can access.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Detect Vulnerable AI Tooling Dependencies
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for security vulnerabilities. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies without requiring access to source code.&lt;/p&gt;

&lt;p&gt;For Python and AI application projects, Vulert can scan files such as &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, and SBOMs to identify vulnerable packages. It also supports many other dependency files, 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;composer.lock&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;go.mod&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;gradle.lockfile&lt;/code&gt;, &lt;code&gt;sbom.json&lt;/code&gt;, &lt;code&gt;bom.json&lt;/code&gt;, &lt;code&gt;spdx.json&lt;/code&gt;, and CycloneDX/SPDX SBOMs.&lt;/p&gt;

&lt;p&gt;Vulert cross-references dependency versions against 458,000+ CVEs and alerts teams when newly disclosed vulnerabilities affect packages they use. It provides fix guidance, exact safe versions, and CLI commands where available. This helps teams catch risks like Langflow &lt;code&gt;CVE-2026-5027&lt;/code&gt; before exposed deployments become incidents.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2026-5027 affects Langflow:&lt;/strong&gt; The flaw exists in &lt;code&gt;POST /api/v2/files&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The bug is path traversal:&lt;/strong&gt; Unsanitized filenames can allow arbitrary file writes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RCE risk is possible:&lt;/strong&gt; Arbitrary file write can become code execution depending on where files are written.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exploitation is active:&lt;/strong&gt; Public reporting says the flaw is being exploited in the wild.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Exposed AI tools are risky:&lt;/strong&gt; Internet-facing Langflow instances should be restricted immediately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mitigate now:&lt;/strong&gt; Block &lt;code&gt;/api/v2/files&lt;/code&gt;, disable unauthenticated access, restrict network exposure, and patch when available.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. What is CVE-2026-5027?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;CVE-2026-5027&lt;/code&gt; is a Langflow path traversal vulnerability in the &lt;code&gt;POST /api/v2/files&lt;/code&gt; endpoint. It allows attackers to write files to arbitrary filesystem locations through unsanitized filename values.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What should I do if Langflow is exposed to the internet?
&lt;/h3&gt;

&lt;p&gt;Restrict public access immediately, disable unauthenticated access where possible, block &lt;code&gt;/api/v2/files&lt;/code&gt; at the reverse proxy, review logs, check for unexpected files, rotate secrets, and patch as soon as a fix is available.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert detect Langflow vulnerabilities?
&lt;/h3&gt;

&lt;p&gt;Yes. Vulert can scan Python dependency files and SBOMs to identify known vulnerabilities in Langflow and related open-source packages.&lt;/p&gt;

</description>
      <category>langflow</category>
      <category>pathtraversal</category>
      <category>vulert</category>
      <category>aisecurity</category>
    </item>
    <item>
      <title>LiteLLM CVE-2026-42271 Exploited in the Wild — AI Gateway Flaw Chains to Unauthenticated RCE</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 11 Jun 2026 15:22:39 +0000</pubDate>
      <link>https://dev.to/vulert_official/litellm-cve-2026-42271-exploited-in-the-wild-ai-gateway-flaw-chains-to-unauthenticated-rce-3d4d</link>
      <guid>https://dev.to/vulert_official/litellm-cve-2026-42271-exploited-in-the-wild-ai-gateway-flaw-chains-to-unauthenticated-rce-3d4d</guid>
      <description>&lt;p&gt;AI infrastructure is becoming a serious attack surface. The latest example is LiteLLM &lt;code&gt;CVE-2026-42271&lt;/code&gt;, a &lt;code&gt;command&lt;/code&gt; injection vulnerability in BerriAI LiteLLM that CISA has added to its Known Exploited Vulnerabilities catalog after evidence of active exploitation.&lt;/p&gt;

&lt;p&gt;LiteLLM is a popular open-source AI gateway and Python SDK used to route requests to different LLM providers through OpenAI-compatible interfaces. That makes it a sensitive piece of infrastructure. It often sits between applications, users, API keys, model providers, internal tools, and AI workflows.&lt;/p&gt;

&lt;p&gt;The vulnerability is dangerous on its own because an authenticated user with a valid proxy API key could execute arbitrary &lt;code&gt;command&lt;/code&gt;s on the LiteLLM host. But the risk becomes even more severe when chained with &lt;code&gt;CVE-2026-48710&lt;/code&gt;, a Starlette Host header validation bypass. Horizon3.ai reported that this chain can bypass authentication entirely and turn the issue into unauthenticated remote code execution against vulnerable LiteLLM deployments. :contentReference[oaicite:0]{index=0}&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is CVE-2026-42271?
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;CVE-2026-42271&lt;/code&gt; is a &lt;code&gt;command&lt;/code&gt; injection vulnerability affecting the LiteLLM Python package. According to NVD, LiteLLM versions from 1.74.2 before &lt;code&gt;1.83.7&lt;/code&gt; are affected. The issue exists in two MCP server preview endpoints that accepted full server configuration data in the request body, including &lt;code&gt;command&lt;/code&gt; execution fields used by the stdio transport. :contentReference[oaicite:1]{index=1}&lt;/p&gt;

&lt;p&gt;The vulnerable endpoints are:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight http"&gt;&lt;code&gt;&lt;span class="err"&gt;POST /mcp-rest/test/connection
POST /mcp-rest/test/tools/list
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These endpoints were designed to test or preview an MCP server before saving it. The problem was that they accepted fields such as &lt;code&gt;command&lt;/code&gt;, &lt;code&gt;args&lt;/code&gt;, and &lt;code&gt;env&lt;/code&gt;. When called with a stdio configuration, LiteLLM attempted to connect to the supplied server configuration and spawned the provided &lt;code&gt;command&lt;/code&gt; as a subprocess on the proxy host.&lt;/p&gt;

&lt;p&gt;In simple terms: a user who could access these endpoints could make the LiteLLM proxy run &lt;code&gt;command&lt;/code&gt;s on the server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why This LiteLLM Vulnerability Matters
&lt;/h2&gt;

&lt;p&gt;This vulnerability matters because LiteLLM is not just another library. It is often deployed as an AI gateway. That means it may hold or access model provider API keys, proxy credentials, &lt;code&gt;env&lt;/code&gt;ironment variables, internal service tokens, logging data, and routing rules for AI traffic.&lt;/p&gt;

&lt;p&gt;If attackers gain &lt;code&gt;command&lt;/code&gt; execution on the LiteLLM host, they may be able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Steal model provider credentials.&lt;/li&gt;
&lt;li&gt;Extract API keys and secrets stored by the proxy.&lt;/li&gt;
&lt;li&gt;Access environment variables.&lt;/li&gt;
&lt;li&gt;Modify AI gateway behavior.&lt;/li&gt;
&lt;li&gt;Move laterally into connected AI infrastructure.&lt;/li&gt;
&lt;li&gt;Compromise downstream systems integrated with the gateway.&lt;/li&gt;
&lt;li&gt;Deploy malware, miners, or persistence mechanisms.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;CISA adding &lt;code&gt;CVE-2026-42271&lt;/code&gt; to KEV means defenders should treat it as present danger, not theoretical risk. CISA’s Known Exploited Vulnerabilities catalog is specifically used to highlight vulnerabilities with evidence of exploitation in real attacks. :contentReference[oaicite:2]{index=2}&lt;/p&gt;

&lt;h2&gt;
  
  
  Affected Versions
&lt;/h2&gt;

&lt;p&gt;The affected LiteLLM versions are:&lt;br&gt;
| Component | Affected Versions | Fixed Version |&lt;br&gt;
|---|---|---|&lt;br&gt;
| LiteLLM | &amp;gt;= 1.74.2 and &amp;lt; 1.83.7 | 1.83.7 or later |&lt;br&gt;
| Starlette | &amp;lt;= 1.0.0 in the reported chain context | 1.0.1 or later |&lt;/p&gt;

&lt;p&gt;LiteLLM users should upgrade to &lt;code&gt;1.83.7&lt;/code&gt; or later. Deployments that include vulnerable Starlette versions should also upgrade Starlette to &lt;code&gt;1.0.1&lt;/code&gt; or later, especially if LiteLLM or related AI gateway services depend on it. NVD describes &lt;code&gt;CVE-2026-48710&lt;/code&gt; as a Starlette Host header validation flaw fixed in Starlette &lt;code&gt;1.0.1&lt;/code&gt;. :contentReference[oaicite:3]{index=3}&lt;/p&gt;
&lt;h2&gt;
  
  
  How the Command Injection Works
&lt;/h2&gt;

&lt;p&gt;The core issue is that LiteLLM’s MCP preview endpoints accepted a full server configuration before saving it. That configuration could include fields used by the stdio transport. In a safe design, test endpoints should not allow ordinary authenticated users to cause arbitrary subprocess execution on the proxy host.&lt;/p&gt;

&lt;p&gt;The vulnerable flow looked like this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A user sends a request to one of the MCP test endpoints.&lt;/li&gt;
&lt;li&gt;The request body includes a stdio MCP server configuration.&lt;/li&gt;
&lt;li&gt;The configuration includes attacker-controlled command, args, or env fields.&lt;/li&gt;
&lt;li&gt;LiteLLM attempts to test the connection.&lt;/li&gt;
&lt;li&gt;The proxy host spawns the supplied command as a subprocess.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before the patch, these endpoints were protected by a valid proxy API key. That still created serious risk because any authenticated user, including users with internal keys, could potentially execute &lt;code&gt;command&lt;/code&gt;s on the host. The patch in LiteLLM &lt;code&gt;1.83.7&lt;/code&gt; changed authorization so these test endpoints require the &lt;code&gt;PROXY_ADMIN&lt;/code&gt; role, aligning them with the save endpoint behavior described in public reporting. :contentReference[oaicite:4]{index=4}&lt;/p&gt;
&lt;h2&gt;
  
  
  The Starlette Chain: From Authenticated RCE to Unauthenticated RCE
&lt;/h2&gt;

&lt;p&gt;The most concerning part of this incident is the exploit chain. Horizon3.ai reported that &lt;code&gt;CVE-2026-42271&lt;/code&gt; can be chained with &lt;code&gt;CVE-2026-48710&lt;/code&gt;, a Starlette “BadHost” Host header validation bypass, to completely bypass LiteLLM authentication in vulnerable deployments. :contentReference[oaicite:5]{index=5}&lt;/p&gt;

&lt;p&gt;Starlette is a lightweight ASGI framework used across many Python web services, including AI infrastructure. &lt;code&gt;CVE-2026-48710&lt;/code&gt; affects Host header validation and can cause differences between the raw requested path and the reconstructed &lt;code&gt;request.url.path&lt;/code&gt;. NVD notes that Starlette prior to version &lt;code&gt;1.0.1&lt;/code&gt; did not validate the HTTP Host header before using it to reconstruct request URLs. :contentReference[oaicite:6]{index=6}&lt;/p&gt;

&lt;p&gt;In the LiteLLM chain, this can sidestep the authentication mechanism and expose the vulnerable MCP test endpoints without valid credentials. That changes the risk profile dramatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Standalone CVE-2026-42271:&lt;/strong&gt; authenticated command injection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Chained with CVE-2026-48710:&lt;/strong&gt; unauthenticated remote code execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Warning:&lt;/strong&gt; If your LiteLLM deployment includes a vulnerable Starlette dependency and exposes the affected routes, treat this as a critical unauthenticated RCE risk.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2&gt;
  
  
  Why AI Gateways Are Becoming High-Value Targets
&lt;/h2&gt;

&lt;p&gt;AI gateways are now part of production infrastructure. They manage access to LLM providers, enforce routing logic, store API keys, handle user requests, log prompts and responses, and connect internal applications with external AI services. That makes them attractive to attackers.&lt;/p&gt;

&lt;p&gt;A compromised AI gateway can expose more than one application. It may give attackers access to multiple model providers, internal APIs, secrets, and downstream systems. In some &lt;code&gt;env&lt;/code&gt;ironments, the gateway may sit close to sensitive workflows such as customer support automation, document processing, code generation, agent orchestration, or internal knowledge retrieval.&lt;/p&gt;

&lt;p&gt;This is why AI gateway vulnerabilities should be handled like vulnerabilities in authentication systems, API gateways, CI/CD systems, or secrets infrastructure. They are not just developer tooling anymore.&lt;/p&gt;
&lt;h2&gt;
  
  
  How to Check If You Are Vulnerable
&lt;/h2&gt;

&lt;p&gt;Start by checking your LiteLLM version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip show litellm
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Or check installed packages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip freeze | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; litellm
pip freeze | &lt;span class="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; starlette
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you use a requirements file, check for LiteLLM and Starlette:&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="nb"&gt;grep&lt;/span&gt; &lt;span class="nt"&gt;-i&lt;/span&gt; &lt;span class="s2"&gt;"litellm&lt;/span&gt;&lt;span class="se"&gt;\|&lt;/span&gt;&lt;span class="s2"&gt;starlette"&lt;/span&gt; requirements.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Poetry:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;poetry show litellm
poetry show starlette
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For Docker-based deployments, check the container image, not only the repository:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; your-litellm-image pip show litellm
docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; your-litellm-image pip show starlette
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You should also check whether these endpoints are reachable from untrusted networks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/mcp-rest/test/connection
/mcp-rest/test/tools/list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do not test exploitation against production. Instead, verify routing, authentication, reverse proxy rules, and logs safely.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Fix CVE-2026-42271
&lt;/h2&gt;

&lt;p&gt;The primary fix is to upgrade LiteLLM:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; &lt;span class="s2"&gt;"litellm&amp;gt;=1.83.7"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Also upgrade Starlette if it appears in your dependency tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; &lt;span class="s2"&gt;"starlette&amp;gt;=1.0.1"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then verify installed versions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip show litellm
pip show starlette
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you use pinned dependencies, update your lock file and rebuild your deployment artifact:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip-compile &lt;span class="nt"&gt;--upgrade-package&lt;/span&gt; litellm &lt;span class="nt"&gt;--upgrade-package&lt;/span&gt; starlette
docker build &lt;span class="nt"&gt;--no-cache&lt;/span&gt; &lt;span class="nt"&gt;-t&lt;/span&gt; your-litellm-image &lt;span class="nb"&gt;.&lt;/span&gt;
docker push your-litellm-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After upgrading, redeploy and confirm that vulnerable versions are no longer present in production containers, virtual &lt;code&gt;env&lt;/code&gt;ironments, or server images.&lt;/p&gt;

&lt;h2&gt;
  
  
  Temporary Mitigations If You Cannot Patch Immediately
&lt;/h2&gt;

&lt;p&gt;Patching should be the priority. If immediate patching is not possible, apply temporary controls to reduce exposure:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Block POST /mcp-rest/test/connection at your reverse proxy or API gateway.&lt;/li&gt;
&lt;li&gt;Block POST /mcp-rest/test/tools/list at your reverse proxy or API gateway.&lt;/li&gt;
&lt;li&gt;Restrict LiteLLM access to trusted network segments only.&lt;/li&gt;
&lt;li&gt;Require strong authentication at the edge before traffic reaches LiteLLM.&lt;/li&gt;
&lt;li&gt;Rotate credentials stored or used by the LiteLLM proxy.&lt;/li&gt;
&lt;li&gt;Review logs for unusual Host header activity.&lt;/li&gt;
&lt;li&gt;Review logs for unexpected subprocess execution events.&lt;/li&gt;
&lt;li&gt;Audit model provider keys and internal API tokens exposed to the proxy process.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example Nginx-style blocking rule:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight nginx"&gt;&lt;code&gt;&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;/mcp-rest/test/connection&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kn"&gt;deny&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="k"&gt;location&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;/mcp-rest/test/tools/list&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="kn"&gt;deny&lt;/span&gt; &lt;span class="s"&gt;all&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;These mitigations reduce immediate risk, but they are not a replacement for upgrading LiteLLM and Starlette.&lt;/p&gt;

&lt;h2&gt;
  
  
  Detection and Log Review
&lt;/h2&gt;

&lt;p&gt;There is currently limited public detail on exactly how &lt;code&gt;CVE-2026-42271&lt;/code&gt; is being exploited in the wild, including the identity of threat actors, target sectors, and whether observed attacks are using the full Starlette chain. Public reporting notes that CISA added the flaw to KEV, but exploitation details remain limited. :contentReference[oaicite:7]{index=7}&lt;/p&gt;

&lt;p&gt;Security teams should review:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Requests to /mcp-rest/test/connection.&lt;/li&gt;
&lt;li&gt;Requests to /mcp-rest/test/tools/list.&lt;/li&gt;
&lt;li&gt;Requests with unusual or malformed Host headers.&lt;/li&gt;
&lt;li&gt;LiteLLM proxy logs around MCP test activity.&lt;/li&gt;
&lt;li&gt;Unexpected subprocess execution by the LiteLLM process.&lt;/li&gt;
&lt;li&gt;Outbound network connections from the LiteLLM host.&lt;/li&gt;
&lt;li&gt;Access to environment variables, secrets, or credential files.&lt;/li&gt;
&lt;li&gt;New files, cron jobs, shell scripts, or unknown processes on the host.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you find suspicious activity, rotate model provider API keys and other secrets accessible to LiteLLM. Treat the host as potentially compromised until reviewed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Related LiteLLM Security Context
&lt;/h2&gt;

&lt;p&gt;This is not the first major LiteLLM vulnerability in 2026. Public reporting notes that &lt;code&gt;CVE-2026-42208&lt;/code&gt;, a critical SQL injection flaw in LiteLLM, came under active exploitation within 36 hours of public disclosure. That earlier issue affected LiteLLM proxy server API key validation and could allow database access or modification in vulnerable versions. :contentReference[oaicite:8]{index=8}&lt;/p&gt;

&lt;p&gt;Together, these incidents show that AI gateway infrastructure is now being watched closely by both defenders and attackers. Teams deploying AI infrastructure should expect the same level of scrutiny and exploitation speed seen in web frameworks, VPNs, CI/CD platforms, and identity systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Detect Vulnerable LiteLLM Dependencies
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for security vulnerabilities. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies without requiring access to source code.&lt;/p&gt;

&lt;p&gt;For Python projects using LiteLLM, Vulert can help identify vulnerable dependency versions through files such as &lt;code&gt;requirements.txt&lt;/code&gt;, &lt;code&gt;Pipfile.lock&lt;/code&gt;, and SBOMs. It also supports other ecosystems and files 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;composer.lock&lt;/code&gt;, &lt;code&gt;Gemfile.lock&lt;/code&gt;, &lt;code&gt;go.mod&lt;/code&gt;, &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;gradle.lockfile&lt;/code&gt;, &lt;code&gt;s&lt;/code&gt;bom.json`&lt;code&gt;,&lt;/code&gt;bom.json&lt;code&gt;,&lt;/code&gt;spdx.json`, and CycloneDX/SPDX SBOMs.&lt;/p&gt;

&lt;p&gt;Vulert cross-references dependency versions against 458,000+ CVEs and alerts teams when newly disclosed vulnerabilities affect their packages. It also provides fix guidance, exact safe versions, and CLI &lt;code&gt;command&lt;/code&gt;s where available. This helps teams move faster when vulnerabilities like LiteLLM &lt;code&gt;CVE-2026-42271&lt;/code&gt; become actively exploited.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2026-42271 is actively exploited:&lt;/strong&gt; CISA added the LiteLLM command injection flaw to the Known Exploited Vulnerabilities catalog.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Affected LiteLLM versions:&lt;/strong&gt; Versions from 1.74.2 before 1.83.7 are vulnerable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The impact is command execution:&lt;/strong&gt; Vulnerable MCP test endpoints can spawn attacker-supplied commands as subprocesses on the proxy host.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The Starlette chain is worse:&lt;/strong&gt; CVE-2026-48710 can bypass authentication and make the issue unauthenticated RCE in affected deployments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Patch immediately:&lt;/strong&gt; Upgrade LiteLLM to 1.83.7+ and Starlette to 1.0.1+.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rotate secrets if exposed:&lt;/strong&gt; LiteLLM may have access to model provider credentials, API keys, and internal service tokens.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. What is CVE-2026-42271?
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;CVE-2026-42271&lt;/code&gt; is a &lt;code&gt;command&lt;/code&gt; injection vulnerability in BerriAI LiteLLM. It affects MCP server test endpoints that accepted server configuration fields capable of causing subprocess execution on the LiteLLM proxy host.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What should I do if I cannot patch immediately?
&lt;/h3&gt;

&lt;p&gt;Block the affected MCP test endpoints at the reverse proxy, restrict access to trusted networks, rotate credentials, review logs for suspicious Host header and subprocess activity, and patch as soon as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert detect vulnerable LiteLLM versions?
&lt;/h3&gt;

&lt;p&gt;Yes. Vulert can scan Python dependency files and SBOMs to identify vulnerable LiteLLM versions and provide fix guidance when available.&lt;/p&gt;

</description>
      <category>litellm</category>
      <category>aisecurity</category>
      <category>aigateway</category>
      <category>vulert</category>
    </item>
    <item>
      <title>DevSecOps for Small Teams — Security Without a Security Department</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 11 Jun 2026 08:16:54 +0000</pubDate>
      <link>https://dev.to/vulert_official/devsecops-for-small-teams-security-without-a-security-department-2nbn</link>
      <guid>https://dev.to/vulert_official/devsecops-for-small-teams-security-without-a-security-department-2nbn</guid>
      <description>&lt;p&gt;DevSecOps often sounds like something only large companies can afford. It brings to mind dedicated security engineers, AppSec teams, expensive platforms, long policy documents, and enterprise dashboards. But the core idea is much simpler: security should happen automatically throughout the development workflow, not as a separate gate at the end.&lt;/p&gt;

&lt;p&gt;DevSecOps small teams can implement this without hiring a CISO, building a security department, or buying a full enterprise stack. A five-person engineering team can make meaningful security improvements by automating the basics: dependency checks, secret scanning, lightweight code scanning, container scanning, and post-deployment monitoring.&lt;/p&gt;

&lt;p&gt;The goal is not to slow developers down. The goal is to make security part of normal engineering habits so risky changes are caught early, vulnerable dependencies are monitored continuously, and no one waits until an audit or customer questionnaire to discover security debt.&lt;/p&gt;

&lt;h2&gt;
  
  
  What DevSecOps Actually Means for a 5-Person Engineering Team
&lt;/h2&gt;

&lt;p&gt;For a small team, DevSecOps does not mean buying every security tool category at once. It does not mean blocking every pull request for minor issues. It does not mean turning developers into full-time security analysts.&lt;/p&gt;

&lt;p&gt;For a small team, DevSecOps means building a lightweight security workflow that runs with minimal manual effort. The most useful controls are the ones that run automatically in the background, alert the right person, and provide clear remediation steps.&lt;/p&gt;

&lt;p&gt;In practice, this means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dependency vulnerabilities are detected automatically.&lt;/li&gt;
&lt;li&gt;Secrets are caught before they reach production.&lt;/li&gt;
&lt;li&gt;Critical issues fail pull request checks.&lt;/li&gt;
&lt;li&gt;Container images are scanned before deployment.&lt;/li&gt;
&lt;li&gt;Production dependencies are monitored continuously.&lt;/li&gt;
&lt;li&gt;One developer acts as the security champion for triage and prioritization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This approach is realistic for startups, agencies, small SaaS teams, and internal product teams. It gives you a minimum viable security program without creating a separate security department.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Three Places Security Should Live in Your Development Workflow
&lt;/h2&gt;

&lt;p&gt;Security should not appear only at the end of the release process. By then, fixes are more expensive, teams are under deadline pressure, and vulnerabilities may already be deployed. A lightweight DevSecOps workflow places security in three stages.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Before code is written — dependency decisions
&lt;/h3&gt;

&lt;p&gt;Every new package is a security decision. Before adding a dependency, developers should check whether it is maintained, widely used, vulnerable, and reasonable in dependency size. A small utility that pulls in hundreds of packages may not be worth the risk.&lt;/p&gt;

&lt;p&gt;This is where dependency scanning and package evaluation matter. If your team adds a new npm, Maven, Composer, PyPI, Ruby, Go, Rust, or .NET package, you should know whether known CVEs affect it and whether safer alternatives exist.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. During development — code and commit checks
&lt;/h3&gt;

&lt;p&gt;The second security layer runs while developers write code and open pull requests. Secret scanning catches hardcoded API keys and credentials. SAST tools catch obvious insecure coding patterns. Pull request checks stop critical dependency vulnerabilities from being introduced.&lt;/p&gt;

&lt;p&gt;The best setup gives fast feedback. Developers should know about security issues while the code is still fresh, not weeks later during an audit.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. After deployment — continuous monitoring
&lt;/h3&gt;

&lt;p&gt;Security does not stop after release. A dependency that is safe today can become vulnerable tomorrow when a new CVE is disclosed. Continuous monitoring checks your existing dependency files and SBOMs against new vulnerability data so you are alerted when risk changes.&lt;/p&gt;

&lt;p&gt;This is one of the biggest reasons devsecops small teams need automation. Small teams cannot manually check every package every week. The tooling has to do the monitoring.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Lightweight DevSecOps Stack for Small Teams
&lt;/h2&gt;

&lt;p&gt;The stack below is intentionally simple. It focuses on coverage, automation, and low operational overhead. Most small teams can start with these categories and expand later.&lt;br&gt;
| Security Area | Recommended Tool | Typical Cost | Setup Time |&lt;br&gt;
|---|---|---|---|&lt;br&gt;
| Dependency scanning | Vulert or Dependabot | Free to low monthly cost depending on usage | 15–30 minutes |&lt;br&gt;
| Secret scanning | GitHub or GitLab built-in secret scanning | Often included depending on plan | 10–20 minutes |&lt;br&gt;
| SAST | Semgrep Community Edition or SonarQube Community | Free community options available | 30–60 minutes |&lt;br&gt;
| Container scanning | Trivy | Open source | 30–60 minutes |&lt;br&gt;
| Ticketing | Jira, GitHub Issues, or Linear | Usually already in use | 30 minutes |&lt;br&gt;
| Monitoring and history | Vulert dependency monitoring | Low overhead | 15 minutes |&lt;/p&gt;

&lt;p&gt;The total added cost can be very small compared to traditional enterprise security programs. For many small teams, the practical cost is around $50–100/month plus a little setup time, depending on the tools and plans they choose. More importantly, if the workflow is automated correctly, the recurring developer time can be as low as 30 minutes per week for triage and review.&lt;/p&gt;

&lt;p&gt;GitHub Dependabot can create automated pull requests for dependencies with known vulnerabilities, which helps teams avoid manual version research. GitHub secret scanning can detect hardcoded credentials in repositories. Semgrep Community Edition provides open-source static analysis for code patterns, and Trivy is a versatile scanner for containers, filesystems, repositories, and Kubernetes. :contentReference[oaicite:1]{index=1}&lt;/p&gt;

&lt;h2&gt;
  
  
  The Security Champion Model — No Security Hire Required
&lt;/h2&gt;

&lt;p&gt;Small teams usually cannot justify a dedicated security engineer. That does not mean nobody owns security. The security champion model gives one developer responsibility for coordinating security work without turning them into a full-time specialist.&lt;/p&gt;

&lt;p&gt;A security champion is not a CISO. They are not expected to know every vulnerability class or perform deep exploit research. Their job is to make sure security signals are seen, prioritized, and handled.&lt;/p&gt;

&lt;p&gt;A security champion typically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reviews security-related pull requests.&lt;/li&gt;
&lt;li&gt;Checks critical vulnerability alerts.&lt;/li&gt;
&lt;li&gt;Confirms security tools are still running.&lt;/li&gt;
&lt;li&gt;Helps prioritize CVEs affecting the team’s stack.&lt;/li&gt;
&lt;li&gt;Escalates urgent issues to the founder, CTO, or engineering lead.&lt;/li&gt;
&lt;li&gt;Adds security review items to sprint planning or retrospectives.&lt;/li&gt;
&lt;li&gt;Documents decisions when a vulnerability is accepted rather than fixed immediately.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This model works because it creates ownership. Without a champion, security alerts often become everyone’s responsibility, which means they become no one’s responsibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shift Left in Practice — 3 Changes That Prevent Most Issues
&lt;/h2&gt;

&lt;p&gt;“Shift left” simply means catching security issues earlier in the development process. For small teams, the best shift-left controls are practical and low-friction.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Fail pull requests that introduce critical CVEs
&lt;/h3&gt;

&lt;p&gt;Do not allow a new dependency with a critical known vulnerability to merge silently. Configure your dependency scanner or CI workflow to fail when a pull request introduces a Critical vulnerability. For High vulnerabilities, warn and require review. For Medium and Low vulnerabilities, track and batch remediation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Add pre-commit or repository secret scanning
&lt;/h3&gt;

&lt;p&gt;Hardcoded secrets are one of the easiest mistakes to prevent. Use built-in repository secret scanning and optional pre-commit hooks to catch API keys, tokens, private keys, and credentials before they spread through Git history.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Review dependencies before merging new packages
&lt;/h3&gt;

&lt;p&gt;Before adding a package, check maintenance, license, dependency count, and CVE history. This takes minutes and prevents long-term dependency risk. A package that looks convenient today can become a security burden later.&lt;/p&gt;

&lt;p&gt;These three changes give devsecops small teams a strong baseline without slowing every release. They focus on the highest-value prevention points: dependencies, secrets, and critical issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Measure Security Posture Without a Security Team
&lt;/h2&gt;

&lt;p&gt;You do not need a complex dashboard to start measuring security. Small teams should track a few simple metrics that create accountability and show improvement over time.&lt;/p&gt;

&lt;p&gt;Start with these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Open Critical vulnerabilities:&lt;/strong&gt; The number should be zero or trending down quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open High vulnerabilities:&lt;/strong&gt; Track count and age.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mean Time to Remediate:&lt;/strong&gt; How long does it take to fix vulnerabilities after detection?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Days since last security review:&lt;/strong&gt; Add a short security checkpoint to sprint retrospectives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secret scanning alerts:&lt;/strong&gt; Track whether secrets are caught and resolved quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency update backlog:&lt;/strong&gt; Track old packages that are hard to upgrade.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These metrics are enough for early maturity. They help the team answer practical questions: are we introducing fewer issues, fixing them faster, and keeping critical risk under control?&lt;/p&gt;

&lt;p&gt;For customer security questionnaires, these metrics also help. A small company can say: “We continuously monitor dependencies, fail Critical CVEs in pull requests, review security alerts weekly, and track remediation time.” That is much stronger than saying “we take security seriously” without evidence.&lt;/p&gt;

&lt;h2&gt;
  
  
  Common Mistakes Small Teams Make With Security
&lt;/h2&gt;

&lt;p&gt;Small teams usually fail at security for predictable reasons. The problem is rarely that they do not care. The problem is that security work is not automated, not owned, or not connected to normal development.&lt;/p&gt;

&lt;h3&gt;
  
  
  Trying to do everything at once
&lt;/h3&gt;

&lt;p&gt;Do not start with a massive security program. Start with dependencies, secrets, and critical code patterns. Build from there.&lt;/p&gt;

&lt;h3&gt;
  
  
  Buying tools before defining workflow
&lt;/h3&gt;

&lt;p&gt;A scanner without ownership creates noise. Decide who reviews alerts, how tickets are created, and what severity thresholds require action.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ignoring production after deployment
&lt;/h3&gt;

&lt;p&gt;One-time scans are not enough. New CVEs appear after release. Continuous monitoring is essential.&lt;/p&gt;

&lt;h3&gt;
  
  
  Closing findings without verification
&lt;/h3&gt;

&lt;p&gt;A merged pull request is not proof that risk is gone. Verify that the vulnerable package is no longer present in the deployed build.&lt;/p&gt;

&lt;h3&gt;
  
  
  Letting alerts pile up
&lt;/h3&gt;

&lt;p&gt;Alert fatigue destroys small-team security programs. Prioritize Critical and High issues first, batch lower-risk work, and suppress only with documented reasons.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Fits a Small-Team DevSecOps Workflow
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that monitors open-source dependencies for known vulnerabilities. It analyzes manifest files and SBOMs to detect vulnerable direct and transitive dependencies without requiring access to source code.&lt;/p&gt;

&lt;p&gt;For devsecops small teams, Vulert is useful because it removes manual dependency tracking. A small team can upload files such as package-lock.json, yarn.lock, pnpm-lock.yaml, composer.lock, Gemfile.lock, go.mod, pom.xml, requirements.txt, gradle.lockfile, Pipfile.lock, sbom.json, bom.json, spdx.json, or CycloneDX/SPDX SBOMs and get a vulnerability report quickly.&lt;/p&gt;

&lt;p&gt;Vulert also provides fix guidance, exact versions to upgrade to, and CLI commands where available. Continuous monitoring alerts teams when new CVEs affect packages they already use. Jira integration helps turn findings into tickets, while vulnerability history and trend reports help show progress over time.&lt;/p&gt;

&lt;p&gt;This makes Vulert a practical first step for small teams that want to implement security without creating a separate AppSec function.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DevSecOps does not require a security department:&lt;/strong&gt; Small teams can implement lightweight controls with automation and ownership.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start with the highest-value areas:&lt;/strong&gt; Dependency scanning, secret scanning, SAST, container scanning, and continuous monitoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use a security champion:&lt;/strong&gt; One developer should coordinate triage, prioritization, and security workflow hygiene.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Shift left with simple rules:&lt;/strong&gt; Fail Critical CVEs in pull requests, catch secrets early, and evaluate new packages before merging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Measure a few useful metrics:&lt;/strong&gt; Open Critical vulnerabilities, remediation time, and days since last security review are enough to start.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation prevents security debt:&lt;/strong&gt; The less manual the process, the more likely a small team will keep doing it.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Do I need a security engineer to implement DevSecOps?
&lt;/h3&gt;

&lt;p&gt;No. A dedicated security engineer helps, but small teams can start with automated dependency scanning, secret scanning, lightweight SAST, container scanning, and one developer acting as a security champion.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. How much does DevSecOps cost for a small team?
&lt;/h3&gt;

&lt;p&gt;A lightweight setup can often start with free or low-cost tools. Depending on your tooling choices, a small team may spend around $50–100/month plus initial setup time. The bigger cost is usually workflow discipline, not software licenses.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How does Vulert help small teams?
&lt;/h3&gt;

&lt;p&gt;Vulert helps by scanning manifest files and SBOMs for vulnerable dependencies, including transitive dependencies. It provides fix guidance and continuous monitoring so small teams do not need to manually track CVEs.&lt;/p&gt;

</description>
      <category>devsecops</category>
      <category>cybersecurity</category>
      <category>itsecurity</category>
      <category>vulert</category>
    </item>
    <item>
      <title>The 10 Most Exploited Open Source Vulnerabilities of 2025</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Thu, 11 Jun 2026 07:38:47 +0000</pubDate>
      <link>https://dev.to/vulert_official/the-10-most-exploited-open-source-vulnerabilities-of-2025-b5d</link>
      <guid>https://dev.to/vulert_official/the-10-most-exploited-open-source-vulnerabilities-of-2025-b5d</guid>
      <description>&lt;p&gt;The difference between a theoretical vulnerability and an actively exploited one is the difference between future risk and present danger. A high CVSS score means a vulnerability could be dangerous. Active exploitation means attackers are already using it.&lt;/p&gt;

&lt;p&gt;That is why security teams should pay special attention to the most exploited vulnerabilities 2025 list. These are not just CVEs sitting in a database. They are vulnerabilities that appeared in real-world exploitation reports, CISA Known Exploited Vulnerabilities entries, vendor advisories, and security research publications.&lt;/p&gt;

&lt;p&gt;This list focuses on open source software, frameworks, libraries, and widely used software components that affected developers, DevOps teams, SaaS platforms, CMS operators, AI app builders, and infrastructure teams in 2025.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; CISA KEV confirms known exploitation, but it does not publish a public ranking by exploitation volume. This article is a practical prioritization guide based on KEV status, real-world exploitation reporting, severity, popularity, and remediation urgency.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Why Active Exploitation Changes Everything
&lt;/h2&gt;

&lt;p&gt;Most vulnerability backlogs are too large to fix all at once. Teams may have hundreds of medium and high findings across applications, containers, operating systems, and dependencies. If everything is urgent, nothing is urgent.&lt;/p&gt;

&lt;p&gt;Active exploitation changes the priority model. If a CVE is being used in real attacks, it should move above theoretical findings, even if another vulnerability has a higher CVSS score. Attackers do not prioritize based on your scanner dashboard. They prioritize based on reachable systems, available exploits, and business value.&lt;/p&gt;

&lt;p&gt;For open source dependencies, active exploitation is especially dangerous because the same vulnerable package may appear across thousands of applications. A single vulnerable framework, CMS, runtime library, or build tool can become an internet-wide target within hours of proof-of-concept publication.&lt;/p&gt;

&lt;h2&gt;
  
  
  How We Selected This List
&lt;/h2&gt;

&lt;p&gt;To build this most exploited vulnerabilities 2025 shortlist, we prioritized vulnerabilities that met one or more of these conditions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Listed in the CISA Known Exploited Vulnerabilities catalog.&lt;/li&gt;
&lt;li&gt;Confirmed by vendor or reputable research teams as exploited in the wild.&lt;/li&gt;
&lt;li&gt;Affected widely used open source software, developer tooling, frameworks, or web platforms.&lt;/li&gt;
&lt;li&gt;Had public proof-of-concept exploit activity or mass scanning.&lt;/li&gt;
&lt;li&gt;Had clear remediation guidance and fixed versions.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Where public data does not provide a reliable number of affected applications, the “Estimated still affected” field uses a conservative exposure label instead of inventing a number.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 10 Most Exploited Vulnerabilities
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. CVE-2025-24813: Apache Tomcat Path Equivalence — Apache Tomcat
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;Critical / vendor and NVD scoring vary by configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Tomcat 11.0.0-M1–11.0.2, 10.1.0-M1–10.1.34, 9.0.0.M1–9.0.98; EOL 8.5.x also known affected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to 11.0.3+, 10.1.35+, or 9.0.99+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;High exposure risk where Tomcat is internet-facing or bundled in legacy Java apps&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Apache Tomcat is one of the most widely deployed Java web servers. CVE-2025-24813 involves path equivalence behavior around partial PUT requests and can lead to remote code execution, information disclosure, or malicious content injection under vulnerable configurations.&lt;/p&gt;

&lt;p&gt;Attackers targeted exposed Tomcat instances because the vulnerable component is common in enterprise Java stacks. The fix is to upgrade Tomcat immediately and check container images, embedded application servers, vendor appliances, and legacy WAR deployments.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="c"&gt;&amp;lt;!-- Maven users should verify the Tomcat version resolved by Spring Boot or embedded containers --&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;tomcat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Still dangerous:&lt;/strong&gt; Tomcat often appears inside container images and vendor products, so patching only the system package may miss embedded copies.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  2. CVE-2025-29927: Middleware Authorization Bypass — Next.js
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;9.1 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Next.js before 12.3.5, 13.5.9, 14.2.25, and 15.2.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to 12.3.5+, 13.5.9+, 14.2.25+, or 15.2.3+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Active exploitation and scanning reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;High exposure due to widespread Next.js usage&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CVE-2025-29927 affects Next.js middleware authorization logic. Attackers can bypass middleware-based authorization checks by sending crafted requests with the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header.&lt;/p&gt;

&lt;p&gt;This issue was dangerous because many applications used middleware to protect private routes, admin pages, dashboards, and API paths. If middleware was the only authorization layer, attackers could potentially reach sensitive routes without proper access.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;next@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If immediate upgrading is not possible, block external requests that include the &lt;code&gt;x-middleware-subrequest&lt;/code&gt; header before they reach your application.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. CVE-2025-55182: React2Shell RCE — React Server Components
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;10.0 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;React Server Components packages 19.0, 19.1.0, 19.1.1, and 19.2.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to React 19.0.1, 19.1.2, or 19.2.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — widespread exploitation and scanning reported&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Very high exposure among server-side React/Next.js deployments&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;React2Shell was one of the most urgent JavaScript ecosystem vulnerabilities of 2025. It affected server-side React Server Components and could allow unauthenticated remote code execution when vulnerable packages processed attacker-controlled requests.&lt;/p&gt;

&lt;p&gt;Because React Server Components are used through frameworks such as Next.js, many teams had to check framework versions, React package versions, deployment models, and server-side routing behavior. Attackers quickly moved from proof-of-concept testing to real exploitation, including cryptomining and malware deployment.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;react@19.2.1 react-dom@19.2.1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Patch immediately:&lt;/strong&gt; React2Shell is pre-authentication RCE. If server-side React packages are exposed, treat this as emergency work.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  4. CVE-2025-3248: Unauthenticated Code Injection — Langflow
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;9.8 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Langflow versions before 1.3.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to Langflow 1.3.0+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Medium to high exposure among internet-facing AI workflow builders&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Langflow became a major AI application builder in 2025, and CVE-2025-3248 showed how quickly open-source AI tooling can become part of the attack surface. The vulnerability allowed unauthenticated attackers to execute arbitrary code through the /api/v1/validate/code endpoint.&lt;/p&gt;

&lt;p&gt;Attackers targeted exposed Langflow instances because many teams deployed AI tooling quickly without the same hardening applied to traditional production services.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--upgrade&lt;/span&gt; langflow
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  5. CVE-2025-32433: SSH Server RCE — Erlang/OTP
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;10.0 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Erlang/OTP before 27.3.3, 26.2.5.11, and 25.3.2.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to OTP-27.3.3, OTP-26.2.5.11, or OTP-25.3.2.20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Medium exposure where Erlang SSH services are enabled&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CVE-2025-32433 affects the Erlang/OTP SSH server. It can allow unauthenticated remote code execution through flawed SSH protocol message handling.&lt;/p&gt;

&lt;p&gt;This vulnerability mattered because Erlang/OTP is embedded in many systems and products, and some teams may not realize they are exposing the vulnerable SSH server functionality. The fix is to upgrade Erlang/OTP and verify whether any application or vendor product bundles an affected OTP release.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;erl &lt;span class="nt"&gt;-eval&lt;/span&gt; &lt;span class="s1"&gt;'erlang:display(erlang:system_info(otp_release)), halt().'&lt;/span&gt; &lt;span class="nt"&gt;-noshell&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  6. CVE-2025-48384: Link Following / Submodule Attack — Git
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;8.0 High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Multiple Git versions before patched releases in 2.43.7–2.50.1 branches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to patched Git versions such as 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1, or 2.50.1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;High exposure across developer workstations and CI/CD systems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Git is not just a developer tool; it is part of CI/CD, deployment automation, build containers, dependency fetching, and internal platform engineering. CVE-2025-48384 stems from inconsistent handling of carriage return characters in configuration files and can lead to attacker-controlled behavior through malicious repositories and submodules.&lt;/p&gt;

&lt;p&gt;The exploitation path is especially concerning in build systems that clone untrusted repositories, recursively fetch submodules, or execute hooks and build scripts.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Mitigations include upgrading Git, avoiding recursive submodule clones from untrusted sources, disabling hooks where appropriate, and auditing CI/CD pipelines.&lt;/p&gt;

&lt;h3&gt;
  
  
  7. CVE-2025-57819: Authentication Bypass to RCE — FreePBX
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;FreePBX 15, 16, and 17 Endpoint Manager module before fixed releases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Endpoint Manager 15.0.66, 16.0.89, or 17.0.3&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Medium exposure among exposed PBX/admin interfaces&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;FreePBX is an open-source web-based PBX management interface. CVE-2025-57819 allows unauthenticated access to FreePBX Administrator paths, arbitrary database manipulation, and possible remote code execution through insufficient sanitization in the Endpoint Manager module.&lt;/p&gt;

&lt;p&gt;Attackers targeted exposed PBX systems because telephony infrastructure is often internet-accessible, under-monitored, and operationally sensitive.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;PBX risk:&lt;/strong&gt; Exposed FreePBX admin paths should never be treated as ordinary web apps. Patch and restrict access immediately.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  8. CVE-2025-23209: Code Injection / RCE — Craft CMS
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;8.1 High&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Craft CMS 4 and 5 under vulnerable conditions involving compromised security keys&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Craft 4.13.8+ or 5.5.8+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Yes — added to CISA KEV&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Medium exposure across public Craft CMS websites&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Craft CMS had multiple security issues in 2025, and CVE-2025-23209 was added to CISA KEV due to active exploitation. The flaw can lead to remote code execution in certain Craft installations, especially where application security keys are compromised.&lt;/p&gt;

&lt;p&gt;CMS vulnerabilities are heavily exploited because attackers can scan the web for exposed instances and quickly deploy web shells, defacement payloads, credential stealers, or spam infrastructure.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;composer update craftcms/cms
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  9. CVE-2025-49113: PHP Object Deserialization RCE — Roundcube Webmail
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;9.9 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Roundcube before 1.5.10 and 1.6.x before 1.6.11&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to 1.5.10+ or 1.6.11+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Exploitation reported; later KEV listing confirmed active exploitation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;Medium exposure among self-hosted webmail systems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Roundcube is widely used for self-hosted webmail. CVE-2025-49113 allows authenticated remote code execution because a parameter is not properly validated, leading to PHP object deserialization.&lt;/p&gt;

&lt;p&gt;Even though authentication is required, webmail systems are high-value targets. Attackers can combine stolen credentials, phishing, or session compromise with server-side RCE to gain persistence or access sensitive communications.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. CVE-2025-49844: Lua Use-After-Free RCE — Redis
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field&lt;/th&gt;
&lt;th&gt;Details&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;CVSS&lt;/td&gt;
&lt;td&gt;10.0 Critical&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Affected versions&lt;/td&gt;
&lt;td&gt;Redis OSS/CE/Stack versions with Lua scripting before fixed releases&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix version&lt;/td&gt;
&lt;td&gt;Upgrade to Redis OSS/CE 8.2.2+, 8.0.4+, 7.4.6+, or 7.2.11+ depending on branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Exploited in wild&lt;/td&gt;
&lt;td&gt;Critical 2025 exposure; exploitation risk high where Redis is exposed or weakly authenticated&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Estimated still affected&lt;/td&gt;
&lt;td&gt;High exposure risk in internet-facing or poorly segmented Redis deployments&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;CVE-2025-49844 is a Redis Lua use-after-free vulnerability that can lead to remote code execution. Redis is often used for caching, queues, sessions, rate limiting, and background job coordination, which makes it a valuable target.&lt;/p&gt;

&lt;p&gt;Even when Redis is not meant to be public, misconfigurations happen frequently. A vulnerable Redis instance exposed to untrusted networks should be treated as critical.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;redis-server &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Do not expose Redis publicly:&lt;/strong&gt; Patch, restrict network access, require authentication, and rotate credentials if compromise is suspected.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Are You Affected? Check in 60 Seconds
&lt;/h2&gt;

&lt;p&gt;The fastest way to check whether these most exploited vulnerabilities 2025 affect your applications is to scan the exact dependency files your builds use.&lt;/p&gt;

&lt;p&gt;For JavaScript applications, check &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;. For Java applications, check &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, and resolved dependency trees. For PHP, check &lt;code&gt;composer.lock&lt;/code&gt;. For Python, check &lt;code&gt;requirements.txt&lt;/code&gt; and lock files. For infrastructure, check SBOMs, container images, and vendor software inventories.&lt;/p&gt;

&lt;p&gt;Vulert helps teams identify vulnerable open-source dependencies by scanning manifests and SBOMs. It checks direct and transitive dependencies against 458,000+ CVEs and provides fix guidance, safe versions, and CLI commands where available.&lt;/p&gt;

&lt;p&gt;Upload your dependency file or SBOM to Vulert and check whether any of these 2025 exploited vulnerabilities appear in your application stack.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Active exploitation beats theoretical severity:&lt;/strong&gt; A KEV-listed vulnerability should jump to the top of your remediation queue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open source frameworks became major 2025 targets:&lt;/strong&gt; Next.js, React Server Components, Langflow, Tomcat, Git, and Craft CMS all had high-impact exploitation stories.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Developer tooling is part of your attack surface:&lt;/strong&gt; Git vulnerabilities can affect CI/CD pipelines, build workers, and developer machines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CMS and webmail remain heavily targeted:&lt;/strong&gt; Craft CMS, FreePBX, and Roundcube show why public admin panels and self-hosted apps need fast patching.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded copies matter:&lt;/strong&gt; Tomcat, Redis, Git, and Erlang/OTP may be bundled inside containers, appliances, or vendor products.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous scanning is essential:&lt;/strong&gt; The next exploited CVE may affect a package you already shipped months ago.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Where does the CISA KEV list come from?
&lt;/h3&gt;

&lt;p&gt;The CISA Known Exploited Vulnerabilities catalog is maintained by the U.S. Cybersecurity and Infrastructure Security Agency. It includes vulnerabilities with evidence of active exploitation and is used by federal agencies and private organizations to prioritize remediation.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What’s the difference between CVSS score and active exploitation?
&lt;/h3&gt;

&lt;p&gt;CVSS estimates theoretical severity. Active exploitation means attackers are already using the vulnerability in real attacks. A vulnerability with confirmed exploitation should usually be prioritized above a similar vulnerability with no exploitation evidence.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Should I fix KEV vulnerabilities before non-KEV critical vulnerabilities?
&lt;/h3&gt;

&lt;p&gt;Usually yes, especially if the affected system is internet-facing or business-critical. KEV means exploitation is known, while a non-KEV critical CVE may still be theoretical in your environment. Use KEV, exposure, exploitability, and business impact together.&lt;/p&gt;

</description>
      <category>exploits</category>
      <category>devsecops</category>
      <category>cisakev</category>
      <category>vulert</category>
    </item>
    <item>
      <title>How to Write a Vulnerability Disclosure Policy — And Why Every Company Needs One</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Wed, 10 Jun 2026 11:38:45 +0000</pubDate>
      <link>https://dev.to/vulert_official/how-to-write-a-vulnerability-disclosure-policy-and-why-every-company-needs-one-7go</link>
      <guid>https://dev.to/vulert_official/how-to-write-a-vulnerability-disclosure-policy-and-why-every-company-needs-one-7go</guid>
      <description>&lt;p&gt;Security researchers discover vulnerabilities in company software every day. They test websites, APIs, mobile apps, open-source projects, cloud endpoints, and SaaS products. Some are professional researchers. Some are customers. Some are independent hobbyists. If they find a weakness in your systems, the next question is simple: how should they report it?&lt;/p&gt;

&lt;p&gt;If your company does not have a clear vulnerability disclosure policy, researchers may not know who to contact, what information to include, what testing is allowed, or whether your company will treat them as helpful or hostile. That uncertainty creates risk for everyone.&lt;/p&gt;

&lt;p&gt;A good policy gives researchers a safe, professional reporting path. It tells them what is in scope, what is out of scope, how quickly you will respond, and what behavior is allowed. It also helps your engineering and security teams receive better reports, fix vulnerabilities earlier, and avoid surprise public disclosure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens When Researchers Find Vulnerabilities Without a Policy
&lt;/h2&gt;

&lt;p&gt;Many startups and growing companies assume they are too small to need a disclosure process. That assumption is dangerous. Security researchers and automated scanners do not only test large enterprises. They scan the internet, package registries, GitHub repositories, exposed APIs, cloud storage, login pages, and public assets at scale.&lt;/p&gt;

&lt;p&gt;If a researcher finds a vulnerability and cannot find a reporting channel, several bad outcomes are possible. They may disclose the issue publicly to get attention. They may contact random employees on LinkedIn or Twitter. They may send details to a generic support inbox that never reaches engineering. They may sell the finding to a broker. Or they may simply give up, leaving your company unaware of the risk.&lt;/p&gt;

&lt;p&gt;None of those outcomes is ideal. A disclosure policy does not make your software secure by itself, but it creates a controlled path for vulnerability reports. That path can be the difference between responsible remediation and public embarrassment.&lt;/p&gt;

&lt;p&gt;For engineering teams, the practical benefit is clarity. When a valid report arrives, the team already knows where it goes, who triages it, what response time is expected, and how to communicate with the researcher.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a Vulnerability Disclosure Policy Is (and Isn’t)
&lt;/h2&gt;

&lt;p&gt;A vulnerability disclosure policy is a public document that explains how external researchers can report security vulnerabilities to your organization. It is sometimes called a responsible disclosure policy or coordinated vulnerability disclosure policy.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;VDP&lt;/code&gt; typically explains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How to report a vulnerability.&lt;/li&gt;
&lt;li&gt;Which systems, domains, APIs, apps, and services are in scope.&lt;/li&gt;
&lt;li&gt;Which activities are out of scope.&lt;/li&gt;
&lt;li&gt;What researchers should avoid, such as data access or service disruption.&lt;/li&gt;
&lt;li&gt;What your company commits to, such as response timelines and good-faith handling.&lt;/li&gt;
&lt;li&gt;Whether researchers may receive credit.&lt;/li&gt;
&lt;li&gt;Whether legal safe harbor applies to good-faith research.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A &lt;code&gt;VDP&lt;/code&gt; is not the same as a bug bounty program. A bug bounty program pays researchers for valid findings. A &lt;code&gt;VDP&lt;/code&gt; gives researchers a safe reporting process but does not necessarily include payment. Most small companies should start with a &lt;code&gt;VDP&lt;/code&gt; before launching a paid bounty program.&lt;/p&gt;

&lt;p&gt;A &lt;code&gt;VDP&lt;/code&gt; is also not a replacement for secure development, dependency scanning, penetration testing, code review, or incident response. It is a communication and coordination mechanism. You still need internal processes to validate, prioritize, fix, and verify reported issues.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing Your VDP — Section by Section
&lt;/h2&gt;

&lt;p&gt;A strong &lt;code&gt;VDP&lt;/code&gt; does not need to be long. It needs to be clear. Researchers should quickly understand what they can test, how to report, and what behavior keeps them protected under your policy.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scope
&lt;/h3&gt;

&lt;p&gt;The scope section tells researchers which assets are covered. Be specific. If everything under your main domain is allowed, say that. If only certain products or APIs are in scope, list them.&lt;/p&gt;

&lt;p&gt;Example scope:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;https:&lt;/strong&gt;//example.com&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;https:&lt;/strong&gt;//app.example.com&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;https:&lt;/strong&gt;//api.example.com&lt;/li&gt;
&lt;li&gt;Official mobile applications published by your company.&lt;/li&gt;
&lt;li&gt;Company-owned open-source repositories under your GitHub organization.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A clear scope protects both sides. Researchers know where testing is allowed, and your company avoids receiving reports about systems you do not own or cannot fix.&lt;/p&gt;

&lt;h3&gt;
  
  
  Out of Scope
&lt;/h3&gt;

&lt;p&gt;The out-of-scope section is just as important. It prevents researchers from using harmful testing methods or reporting issues your team does not want handled through the &lt;code&gt;VDP&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Common out-of-scope items include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Social engineering, phishing, or impersonation of employees or customers.&lt;/li&gt;
&lt;li&gt;Physical attacks against offices, devices, or employees.&lt;/li&gt;
&lt;li&gt;Denial-of-service testing or load testing.&lt;/li&gt;
&lt;li&gt;Spam, brute force, credential stuffing, or automated high-volume scanning.&lt;/li&gt;
&lt;li&gt;Accessing, modifying, deleting, or exfiltrating data that does not belong to the researcher.&lt;/li&gt;
&lt;li&gt;Third-party services, vendors, or infrastructure not controlled by your company.&lt;/li&gt;
&lt;li&gt;Reports without practical security impact.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Keep this section firm but respectful. The goal is to guide good-faith researchers, not scare them away.&lt;/p&gt;

&lt;h2&gt;
  
  
  Safe Harbor — Protecting Researchers Who Act in Good Faith
&lt;/h2&gt;

&lt;p&gt;Safe harbor is one of the most important parts of a responsible disclosure policy. It tells researchers that your company will not pursue legal action against them for good-faith research that follows the policy.&lt;/p&gt;

&lt;p&gt;This matters because security research can involve activities that look suspicious to automated systems: unusual requests, parameter testing, authentication checks, or controlled proof-of-concept testing. Without safe harbor, researchers may fear that reporting a vulnerability could expose them to legal risk.&lt;/p&gt;

&lt;p&gt;A practical safe harbor clause should say that your company will not initiate legal action for research conducted in good faith, within scope, without privacy violations, without service disruption, and with prompt reporting. It should also require researchers to stop testing and notify you immediately if they accidentally access sensitive data.&lt;/p&gt;

&lt;p&gt;This is not legal advice. Your legal team should review the final language, especially if you operate in regulated industries or multiple jurisdictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your Commitments to Researchers
&lt;/h2&gt;

&lt;p&gt;Researchers are more likely to report responsibly when they know what to expect. Your policy should include response commitments.&lt;/p&gt;

&lt;p&gt;A good starting point is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;First response:&lt;/strong&gt; within 72 hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Triage update:&lt;/strong&gt; within 7 business days.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remediation updates:&lt;/strong&gt; at reasonable intervals for valid reports.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Credit:&lt;/strong&gt; public recognition if the researcher wants it and disclosure is coordinated.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not promise timelines you cannot meet. If your team is small, it is better to commit to a realistic first response than to publish aggressive timelines you will miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Submit a Report
&lt;/h2&gt;

&lt;p&gt;The submission section should be simple and direct. Include a dedicated email address such as &lt;a href="mailto:security@example.com"&gt;security@example.com&lt;/a&gt;. If possible, provide a PGP key for encrypted reports. You can also include a web form, bug tracking portal, or vulnerability reporting platform.&lt;/p&gt;

&lt;p&gt;Ask researchers to include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A clear description of the vulnerability.&lt;/li&gt;
&lt;li&gt;Steps to reproduce.&lt;/li&gt;
&lt;li&gt;Affected URL, endpoint, package, or component.&lt;/li&gt;
&lt;li&gt;Potential impact.&lt;/li&gt;
&lt;li&gt;Screenshots, logs, or proof-of-concept details where safe.&lt;/li&gt;
&lt;li&gt;Their preferred contact information.&lt;/li&gt;
&lt;li&gt;Whether they want public credit.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The easier you make reporting, the more likely you are to receive useful, actionable reports.&lt;/p&gt;

&lt;h2&gt;
  
  
  security.txt — Publishing Your VDP the Standard Way
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;security.txt&lt;/code&gt; is the standard way to publish vulnerability reporting information. RFC 9116 defines a machine-readable format that organizations can place at a known location to help researchers find disclosure contacts and policy information. The common location is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://example.com/.well-known/security.txt
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;RFC 9116 says the file is intended to help security researchers when disclosing vulnerabilities and defines a text format for organizations to publish disclosure information. :contentReference[oaicite:1]{index=1}&lt;/p&gt;

&lt;p&gt;Here is a simple &lt;code&gt;security.txt&lt;/code&gt; template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Contact: mailto:security@example.com
Expires: 2027-12-31T23:59:59.000Z
Preferred-Languages: en
Canonical: https://example.com/.well-known/security.txt
Policy: https://example.com/security
Acknowledgments: https://example.com/security/thanks
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use Contact to list the reporting email or URL. Use Policy to link to your full disclosure policy. Use Expires to show that the file is maintained. Use Canonical to point to the official location. If you publicly thank researchers, use Acknowledgments.&lt;/p&gt;

&lt;p&gt;Adding &lt;code&gt;security.txt&lt;/code&gt; is a low-effort, high-value signal. It tells researchers, scanners, and enterprise customers that your company has a real vulnerability reporting process.&lt;/p&gt;

&lt;h2&gt;
  
  
  VDP vs Bug Bounty — Which Should Your Company Start With?
&lt;/h2&gt;

&lt;p&gt;A &lt;code&gt;VDP&lt;/code&gt; and a bug bounty program are related, but they are not the same.&lt;br&gt;
| Program Type | What It Does | Payment | Best For |&lt;br&gt;
|---|---|---|---|&lt;br&gt;
| VDP | Gives researchers a safe way to report vulnerabilities. | No payment required. | Startups, SaaS companies, growing engineering teams, and companies without a mature security program. |&lt;br&gt;
| Bug bounty | Invites researchers to find and report vulnerabilities for rewards. | Paid rewards for valid findings. | Teams with mature triage, budget, legal review, and remediation capacity. |&lt;/p&gt;

&lt;p&gt;Small companies should usually start with a &lt;code&gt;VDP&lt;/code&gt;. A paid bug bounty can generate many reports quickly, including duplicates, low-impact findings, and edge cases. If your team cannot triage and fix reports consistently, a bounty program can create operational overload.&lt;/p&gt;

&lt;p&gt;Start with a &lt;code&gt;VDP&lt;/code&gt;, build internal triage and remediation processes, then consider a private bug bounty when your team is ready.&lt;/p&gt;
&lt;h2&gt;
  
  
  A VDP Template You Can Use Today
&lt;/h2&gt;

&lt;p&gt;Use this template as a starting point. Ask your legal team to review it before publishing.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Vulnerability Disclosure Policy
Introduction
We take the security of our systems and users seriously. If you believe you have found a security vulnerability in our products or services, we encourage you to report it to us responsibly.

### Scope
The following systems are in scope:
- https://example.com
- https://app.example.com
- https://api.example.com
- Company-owned applications and services listed on this page

### Out of Scope
The following activities are not permitted:
- Social engineering, phishing, or impersonation
- Physical attacks
- Denial-of-service or load testing
- Accessing, modifying, deleting, or exfiltrating data that is not yours
- Testing third-party services we do not control
- Automated high-volume scanning that may disrupt service
Safe Harbor
We will not pursue legal action against researchers who act in good faith, follow this policy, avoid privacy violations, avoid service disruption, and promptly report vulnerabilities to us. If you accidentally access sensitive data, stop testing immediately and notify us.
Our Commitments
We will acknowledge valid reports within 72 hours.
We will investigate and triage reports as quickly as possible.
We will keep reporters informed of meaningful remediation progress.
We may provide public credit if the reporter requests it and disclosure is coordinated.
Researcher Commitments
Please avoid harming users, disrupting services, accessing data that does not belong to you, or publicly disclosing details before we have had time to investigate and remediate.
How to Submit
Email security@example.com with:
- Description of the vulnerability
- Steps to reproduce
- Affected URL, endpoint, package, or component
- Potential impact
- Screenshots or proof-of-concept details where safe
- Your contact information
- Whether you would like public credit
Disclosure
Please do not disclose the vulnerability publicly until we have completed investigation and remediation or agreed on a coordinated disclosure timeline.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This template gives researchers enough information to report safely while giving your company enough structure to respond professionally.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Fits Into Your Security Process
&lt;/h2&gt;

&lt;p&gt;A disclosure policy helps external researchers report vulnerabilities in your systems. But many vulnerabilities do not come from researchers. They come from open-source dependencies that receive new CVEs after you install them.&lt;/p&gt;

&lt;p&gt;Vulert helps teams monitor open-source dependencies continuously. It analyzes manifest files and SBOMs to detect known vulnerabilities across direct and transitive dependencies. Vulert checks against 458,000+ CVEs and provides fix guidance, safe versions, and CLI commands where available.&lt;/p&gt;

&lt;p&gt;This complements your &lt;code&gt;VDP&lt;/code&gt;. A researcher may report an application bug through your policy, while Vulert alerts you when a dependency in your codebase becomes vulnerable. Together, they help you discover and fix issues before they become incidents.&lt;/p&gt;

&lt;p&gt;Vulert 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;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 formats such as &lt;code&gt;SPDX&lt;/code&gt; and &lt;code&gt;CycloneDX&lt;/code&gt;.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Researchers need a clear path:&lt;/strong&gt; Without a policy, vulnerability reports may be delayed, misrouted, or publicly disclosed too early.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;A VDP is not a bug bounty:&lt;/strong&gt; A VDP defines reporting rules; a bug bounty adds paid rewards.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scope matters:&lt;/strong&gt; Clearly list which domains, APIs, apps, and services are covered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Safe harbor builds trust:&lt;/strong&gt; Good-faith researchers are more likely to report responsibly when legal expectations are clear.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;security.txt improves discoverability:&lt;/strong&gt; Publish reporting details at /.well-known/security.txt.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;VDP plus monitoring is stronger:&lt;/strong&gt; External reports and continuous dependency scanning cover different parts of your security process.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Is a vulnerability disclosure policy legally required?
&lt;/h3&gt;

&lt;p&gt;In many cases, a &lt;code&gt;VDP&lt;/code&gt; is not universally required by law, but it may be expected by enterprise customers, compliance programs, security frameworks, or industry-specific regulations. Some jurisdictions and product categories increasingly expect coordinated vulnerability disclosure processes. Ask legal counsel if you operate in a regulated market.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What is safe harbor in a VDP?
&lt;/h3&gt;

&lt;p&gt;Safe harbor is language that says your company will not pursue legal action against researchers who act in good faith, stay within scope, avoid privacy violations, avoid service disruption, and report vulnerabilities responsibly.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How quickly must I respond to a vulnerability report?
&lt;/h3&gt;

&lt;p&gt;A common first-response target is within 72 hours. You can set a different timeline, but it should be realistic and clearly published. Faster acknowledgment builds trust with researchers.&lt;/p&gt;

</description>
      <category>cybersecurity</category>
      <category>compliance</category>
      <category>vdp</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Mean Time to Remediate Vulnerabilities — Benchmarks and How to Improve Yours</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Wed, 10 Jun 2026 11:07:36 +0000</pubDate>
      <link>https://dev.to/vulert_official/mean-time-to-remediate-vulnerabilities-benchmarks-and-how-to-improve-yours-1em8</link>
      <guid>https://dev.to/vulert_official/mean-time-to-remediate-vulnerabilities-benchmarks-and-how-to-improve-yours-1em8</guid>
      <description>&lt;p&gt;Security teams are increasingly asked a question that sounds simple but is difficult to answer without proper tracking: how long does it take your organization to fix vulnerabilities after discovering them?&lt;/p&gt;

&lt;p&gt;That question is about &lt;strong&gt;mean time to remediate vulnerabilities&lt;/strong&gt;, commonly called &lt;strong&gt;MTTR&lt;/strong&gt;. It is one of the most important vulnerability management metrics because it shows how quickly your team moves from detection to a verified fix. SOC 2 auditors, cyber insurers, enterprise customers, and security-conscious buyers increasingly care about this number because it reflects real operational maturity.&lt;/p&gt;

&lt;p&gt;Many teams track how many vulnerabilities are open. Fewer teams track how long those vulnerabilities stay open. That difference matters. A critical CVE that remains unresolved for 60 days is not just a backlog item; it is 60 days of exposure. MTTR gives teams a practical way to measure and improve that exposure window.&lt;/p&gt;

&lt;h2&gt;
  
  
  What MTTR Means for Dependency Vulnerabilities
&lt;/h2&gt;

&lt;p&gt;MTTR stands for &lt;strong&gt;Mean Time to Remediate&lt;/strong&gt;. In vulnerability management, it measures the average time between a vulnerability being discovered in your systems and the point where it is fully remediated. Fully remediated means patched, deployed, and verified. A merged pull request is not enough if the vulnerable package is still present in production.&lt;/p&gt;

&lt;p&gt;MTTR is different from MTTD, or &lt;strong&gt;Mean Time to Detect&lt;/strong&gt;. MTTD measures how long it takes to know that a vulnerability affects you. MTTR measures how long it takes to fix the issue after detection.&lt;/p&gt;

&lt;p&gt;For dependency vulnerabilities, the difference is especially important:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MTTD:&lt;/strong&gt; Time from CVE disclosure to your scanner or team detecting that your application uses the vulnerable dependency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MTTR:&lt;/strong&gt; Time from detection to verified remediation, including upgrade, testing, deployment, and rescan.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For example, if a CVE is disclosed on Monday, your scanner alerts you on Tuesday, your team upgrades the package on Thursday, and a rescan confirms the fix on Friday, your MTTD is one day and your MTTR is three days.&lt;/p&gt;

&lt;p&gt;This is why &lt;strong&gt;mean time to remediate vulnerabilities&lt;/strong&gt; should be measured alongside detection speed. A team may fix issues quickly after a ticket is created, but if it takes two weeks to discover that a CVE affects the application, the real exposure window is much longer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Industry Benchmarks — How Does Your Team Compare?
&lt;/h2&gt;

&lt;p&gt;Industry benchmarks vary by source, company size, environment, vulnerability type, and severity. Still, public research consistently shows that many organizations take weeks or months to remediate software vulnerabilities, especially when fixes require engineering work, regression testing, deployment coordination, or dependency upgrades.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key stat:&lt;/strong&gt; Median remediation time for critical vulnerabilities is often measured in 60–90 days across broad industry environments, while attackers can move in days.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Common benchmark ranges used by security teams include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Critical vulnerabilities:&lt;/strong&gt; 60–90 days in many broad industry environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;High-severity vulnerabilities:&lt;/strong&gt; 90–180 days in slower or less automated environments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated programs:&lt;/strong&gt; Often significantly faster than manual programs because detection, ticket creation, and fix guidance happen earlier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Veracode benchmark:&lt;/strong&gt; Veracode has reported that API-based scanning reduces the time to fix 50% of flaws by 17.5 days, showing that automation can materially improve remediation speed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attack timing pressure:&lt;/strong&gt; CISA has warned that adversaries can exploit vulnerabilities within about 15 days on average after discovery.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Log4Shell is a useful reminder of why MTTR matters. The Log4j vulnerability became one of the most urgent Java ecosystem incidents because exploit activity appeared quickly and affected software was widely deployed. Even after patches were available, many organizations continued to discover exposed systems, embedded copies, and forgotten applications long after disclosure.&lt;/p&gt;

&lt;p&gt;The goal is not to compare your team against the slowest organizations. The goal is to build a remediation process that matches your risk. If your applications are internet-facing, process customer data, or are evaluated by enterprise buyers, your MTTR targets should be much faster than broad industry averages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why MTTR Matters Beyond Just Compliance
&lt;/h2&gt;

&lt;p&gt;Compliance is only one reason to measure MTTR. Yes, SOC 2 auditors may ask how vulnerabilities are tracked and resolved. Cyber insurers may ask about patch timelines, critical vulnerability SLAs, and continuous monitoring. Enterprise clients may ask for vulnerability remediation time in security questionnaires.&lt;/p&gt;

&lt;p&gt;But the operational reason is more important: every day between detection and remediation is exposure time. Attackers do not wait for your next sprint planning meeting. Public CVEs can become weaponized quickly, especially when proof-of-concept exploit code is released or the vulnerability is added to CISA’s Known Exploited Vulnerabilities catalog.&lt;/p&gt;

&lt;p&gt;MTTR also helps leadership understand whether security operations are improving. A team may reduce open vulnerability counts, but if critical issues still take 45 days to fix, risk remains high. A trend showing MTTR dropping from 30 days to 7 days is stronger evidence of maturity than a one-time clean scan.&lt;/p&gt;

&lt;p&gt;For sales and customer trust, MTTR is also valuable. When enterprise clients ask how quickly your company remediates critical vulnerabilities, a measured answer is stronger than a vague promise. “Critical dependency vulnerabilities are targeted within 48 hours and verified by rescan” sounds much better than “we patch quickly.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Calculate Your Current MTTR
&lt;/h2&gt;

&lt;p&gt;To calculate &lt;strong&gt;mean time to remediate vulnerabilities&lt;/strong&gt;, you need clear timestamps. At minimum, track the detection timestamp and the verified fix timestamp. For a more mature process, also track CVE disclosure time, ticket creation time, fix merge time, deployment time, and verification time.&lt;/p&gt;

&lt;p&gt;The basic formula is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MTTR = Average of (Verified Fix Time - Detection Time)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For dependency vulnerabilities, use this timeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CVE disclosure time:&lt;/strong&gt; When the CVE or advisory became public.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Detection time:&lt;/strong&gt; When your scanner, tool, or team identified that the vulnerable dependency exists in your application.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Remediation time:&lt;/strong&gt; When the package was upgraded, configuration changed, or vulnerable component removed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment time:&lt;/strong&gt; When the fix reached the relevant environment.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification time:&lt;/strong&gt; When a rescan confirmed that the vulnerability was no longer present.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CVE detected in application: March 1, 10:00 AM
Fix merged: March 3, 3:00 PM
Fix deployed: March 4, 1:00 PM
Rescan verified clean: March 4, 4:00 PM

MTTR = March 4, 4:00 PM - March 1, 10:00 AM
MTTR = 3 days and 6 hours
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use the verification timestamp as the end point. This matters because many teams close tickets when a pull request is merged. A vulnerability should be considered remediated only when the fixed version is deployed and a rescan confirms the vulnerable version is gone.&lt;/p&gt;

&lt;p&gt;Calculate MTTR separately by severity. Critical, High, Medium, and Low vulnerabilities should not be averaged into one broad number because they have different urgency and SLA expectations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Biggest Factor in Slow MTTR: Detection Lag
&lt;/h2&gt;

&lt;p&gt;Many teams think MTTR starts when developers receive a ticket. In practice, the biggest delay often happens before that. The vulnerability exists, but no one knows it affects their application.&lt;/p&gt;

&lt;p&gt;If your team only scans before audits or major releases, a vulnerable dependency may sit unnoticed for weeks. By the time someone finds it, attackers may already have exploit code, scanning activity, or automated attack paths available.&lt;/p&gt;

&lt;p&gt;This is why MTTD and MTTR should be viewed together. A team may proudly say it fixed a vulnerability within five days of ticket creation. But if the CVE was disclosed 30 days earlier and the team did not detect exposure until the audit, the true exposure window was 35 days.&lt;/p&gt;

&lt;p&gt;Continuous monitoring reduces detection lag. When your manifest files or SBOMs are continuously monitored, new CVEs can be matched against the packages you already use. This turns detection from a periodic activity into an ongoing security control.&lt;/p&gt;

&lt;h2&gt;
  
  
  6 Ways to Improve Your MTTR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Reduce MTTD with continuous monitoring:&lt;/strong&gt; Faster detection gives your team more time to act. Continuous monitoring can reduce discovery delays from days or weeks to hours.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prioritize ruthlessly:&lt;/strong&gt; Fix Critical and actively exploited vulnerabilities first. Batch Medium and Low issues into planned maintenance cycles unless exposure increases their priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Include fix guidance in alerts:&lt;/strong&gt; Developers lose time researching safe versions. Alerts should include the affected package, current version, fixed version, CVE details, and exact upgrade command where available.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Create Jira tickets immediately:&lt;/strong&gt; Manual ticket creation delays ownership. Integrate scanning with Jira so vulnerabilities become assigned work items with severity, due date, fix guidance, and verification requirements.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Improve CI/CD release speed:&lt;/strong&gt; If fixes sit unreleased for weeks, MTTR stays high. Automated testing and deployment help safe patch upgrades move faster.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pre-approve low-risk patch upgrades:&lt;/strong&gt; For patch-version bumps with passing tests, allow fast approval or auto-merge. Save deep review for major upgrades and sensitive packages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Improving MTTR is mostly about removing waiting time: waiting to detect, waiting to assign, waiting to research, waiting for approval, waiting for release, and waiting for verification.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Internal SLA Targets by Severity
&lt;/h2&gt;

&lt;p&gt;Internal SLAs turn MTTR goals into operational expectations. They help developers understand urgency and help managers see when remediation is falling behind.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Severity&lt;/th&gt;
&lt;th&gt;MTTR Target&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;Critical&lt;/td&gt;
&lt;td&gt;48 hours&lt;/td&gt;
&lt;td&gt;Critical issues may allow remote code execution, authentication bypass, data exposure, or active exploitation.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;7 days&lt;/td&gt;
&lt;td&gt;High-severity vulnerabilities can cause serious impact but may require authentication, specific conditions, or reduced exposure.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;30 days&lt;/td&gt;
&lt;td&gt;Medium findings should be planned into sprint work before they become security debt.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;90 days or formal risk acceptance&lt;/td&gt;
&lt;td&gt;Low findings can be handled through maintenance, but long-term acceptance should be documented and reviewed.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Compare these targets against your current actual MTTR. If your current Critical MTTR is 45 days, do not pretend you can instantly reach 48 hours across every system. Set staged goals: 14 days, then 7 days, then 48 hours for internet-facing or actively exploited vulnerabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Report MTTR to Auditors and Enterprise Clients
&lt;/h2&gt;

&lt;p&gt;Auditors and enterprise clients want evidence that vulnerability remediation is controlled and measurable. A good MTTR report should show both policy and performance.&lt;/p&gt;

&lt;p&gt;Include these items in your report:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;SLA policy:&lt;/strong&gt; Critical, High, Medium, and Low remediation targets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Actual MTTR by severity:&lt;/strong&gt; Average verified remediation time for each severity tier.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open vulnerabilities by severity:&lt;/strong&gt; Current risk snapshot.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SLA breaches:&lt;/strong&gt; Number of vulnerabilities past target and explanation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trend over time:&lt;/strong&gt; Whether remediation speed is improving month over month.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification evidence:&lt;/strong&gt; Rescan results, ticket links, deployment dates, and closure notes.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Continuous monitoring evidence:&lt;/strong&gt; Proof that new CVEs are monitored continuously.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use Jira, you can calculate MTTR using security ticket timestamps. Use ticket created date as detection time and verified date as closure time. For better accuracy, add custom fields for detection timestamp, deployment timestamp, and verification timestamp.&lt;/p&gt;

&lt;p&gt;For security posture reports, avoid vague language. Instead of “we patch vulnerabilities quickly,” write: “Critical dependency vulnerabilities are assigned within 4 hours, targeted for remediation within 48 hours, and closed only after verification by rescan.”&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Measure and Improve MTTR
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that helps teams detect known vulnerabilities in open-source dependencies. It analyzes manifest files and SBOMs to identify vulnerable direct and transitive dependencies without requiring source code access.&lt;/p&gt;

&lt;p&gt;Vulert helps reduce detection lag by continuously monitoring dependencies and alerting teams when new CVEs affect packages they use. It also provides fix guidance, exact safe versions, and CLI commands where available. That reduces the time developers spend researching remediation steps.&lt;/p&gt;

&lt;p&gt;Vulert also supports workflow improvement through Jira integration. One-click ticket creation helps teams turn vulnerability findings into assigned remediation work with CVE details, severity, affected package information, fixed version, and fix guidance. Vulnerability history and trend reports help teams show progress to auditors and clients.&lt;/p&gt;

&lt;p&gt;For teams trying to improve &lt;strong&gt;mean time to remediate vulnerabilities&lt;/strong&gt;, Vulert helps with two major bottlenecks: faster detection and clearer remediation guidance.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;MTTR measures remediation speed:&lt;/strong&gt; It tracks the time from vulnerability detection to verified fix.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MTTD is different:&lt;/strong&gt; Detection lag can add days or weeks before remediation even starts.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Benchmarks are often slow:&lt;/strong&gt; Many organizations still take weeks or months to remediate serious vulnerabilities.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Attackers move quickly:&lt;/strong&gt; CISA has warned that adversaries can exploit vulnerabilities within about 15 days on average after discovery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automation improves remediation:&lt;/strong&gt; Continuous monitoring, fix guidance, Jira integration, and CI/CD automation reduce waiting time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Report by severity:&lt;/strong&gt; Critical, High, Medium, and Low MTTR should be tracked separately.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verification matters:&lt;/strong&gt; MTTR should end when a rescan confirms the vulnerability is fixed, not when a pull request is merged.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. What is a good MTTR for critical vulnerabilities?
&lt;/h3&gt;

&lt;p&gt;A strong target for critical vulnerabilities is 48 hours, especially for internet-facing systems or vulnerabilities with known exploitation. Some organizations may need staged targets if their current process is much slower, but critical issues should not remain open for weeks without documented reason.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Does faster detection always lead to faster remediation?
&lt;/h3&gt;

&lt;p&gt;Not automatically. Faster detection reduces exposure only if findings are assigned, prioritized, fixed, deployed, and verified. Continuous monitoring should be paired with ticketing, SLAs, fix guidance, and deployment automation.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How do I measure MTTR without a dedicated security team?
&lt;/h3&gt;

&lt;p&gt;Start simple. Use Jira or your issue tracker. Record the date a vulnerability is detected, the date a fix is deployed, and the date a rescan verifies closure. Group results by severity and review the trend monthly.&lt;/p&gt;

</description>
      <category>mttr</category>
      <category>vulnerabilities</category>
      <category>remediate</category>
      <category>devops</category>
    </item>
    <item>
      <title>Your Security Audit Found Vulnerable Dependencies — Here’s Exactly What to Do</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Tue, 09 Jun 2026 15:58:15 +0000</pubDate>
      <link>https://dev.to/vulert_official/your-security-audit-found-vulnerable-dependencies-heres-exactly-what-to-do-3hob</link>
      <guid>https://dev.to/vulert_official/your-security-audit-found-vulnerable-dependencies-heres-exactly-what-to-do-3hob</guid>
      <description>&lt;p&gt;Someone just handed you a security audit or penetration test report. Page 7 lists vulnerable open-source dependencies. Your CTO wants a remediation plan by Friday. A client may be waiting for an answer. The engineering team is already busy. Now you need to decide what must be fixed immediately, what can wait, and how to prove the issues are resolved.&lt;/p&gt;

&lt;p&gt;If your security audit found vulnerabilities, the first reaction may be frustration or panic. That is normal. Teams often feel defensive, overwhelmed, or unsure where to start. But the right response is not to argue with the report or rush into random upgrades. The right response is a calm, systematic remediation process.&lt;/p&gt;

&lt;p&gt;This guide explains exactly what to do when an audit or penetration test finds vulnerable dependencies. It covers triage, communication, verification, continuous monitoring, remediation priority, rescanning, auditor response, and long-term prevention.&lt;/p&gt;

&lt;h2&gt;
  
  
  First: Don’t Panic. Start With Triage.
&lt;/h2&gt;

&lt;p&gt;Not every vulnerability in an audit report requires emergency action. Some findings may be critical and internet-exposed. Others may be theoretical, unreachable, already fixed in production, or related to a dependency that is only used in development. Treating every finding as equal creates noise and slows down the fixes that matter most.&lt;/p&gt;

&lt;p&gt;Your first two hours should be focused on triage. Create a simple list of all dependency findings from the report. For each one, capture the CVE ID, package name, current version, fixed version, severity, affected application, environment, exploit status, and whether the affected component is internet-facing.&lt;/p&gt;

&lt;p&gt;Then sort findings into action groups:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fix today:&lt;/strong&gt; CVSS 9.0+, actively exploited, and internet-exposed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix this week:&lt;/strong&gt; CVSS 7.0+ or known active exploitation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Plan for next sprint:&lt;/strong&gt; Medium and low findings without active exploitation or direct exposure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Also check CISA’s Known Exploited Vulnerabilities catalog. If a CVE appears in KEV, it has known exploitation evidence and should move higher in priority. Do not rely only on CVSS. A lower-scored vulnerability that is actively exploited against your stack may be more urgent than a higher-scored vulnerability that is not reachable in your environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1 — Classify Findings by Actual Risk (Not Just CVSS Score)
&lt;/h2&gt;

&lt;p&gt;CVSS is useful, but it is not the full risk story. A CVSS 9.8 vulnerability in a package used only in a local test tool may not be urgent. A CVSS 7.5 vulnerability in an internet-facing authentication service may require immediate attention. Actual risk depends on severity, exploitability, exposure, business impact, and whether the vulnerable code path is reachable.&lt;/p&gt;

&lt;p&gt;Classify each finding with these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Is it in production?&lt;/strong&gt; Confirm whether the vulnerable dependency is actually deployed.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is it internet-facing?&lt;/strong&gt; Publicly reachable systems are higher priority.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is it actively exploited?&lt;/strong&gt; Check CISA KEV, vendor advisories, and threat intelligence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is the vulnerable code path reachable?&lt;/strong&gt; Some package vulnerabilities require specific features or configurations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is sensitive data involved?&lt;/strong&gt; Vulnerabilities affecting customer data, credentials, payments, or admin systems need faster action.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Is there a safe upgrade path?&lt;/strong&gt; Some fixes are simple patch upgrades, while others require major version migration.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the security audit found vulnerabilities across multiple applications, create a risk matrix. Put internet-facing, actively exploited, critical findings at the top. Put development-only, non-reachable, low-severity findings lower. This gives leadership a clear remediation order instead of a long unprioritized list.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 — Communicate Appropriately to Leadership and Clients
&lt;/h2&gt;

&lt;p&gt;Good communication prevents panic. Bad communication creates either false comfort or unnecessary alarm. Your CTO does not need a 40-page explanation in the first hour. They need a clear status: how many findings exist, how many are critical, what requires immediate action, who owns the work, and when the plan will be ready.&lt;/p&gt;

&lt;p&gt;Use this template for leadership:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Subject: Security Audit Dependency Findings — Initial Triage Plan

The audit identified [X] vulnerable dependency findings.

Initial triage:
- Critical: [number]
- High: [number]
- Medium: [number]
- Low: [number]

Immediate action required:
- [Y] findings appear to be internet-facing, actively exploited, or critical.
- Owners have been assigned.
- Target timeline: [today / this week / next sprint].

Next steps:
1. Verify each finding against production dependency versions.
2. Set up continuous dependency monitoring.
3. Patch prioritized findings first.
4. Rescan and document evidence for the auditor.

We will provide a detailed remediation tracker by [date/time].
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;What should you avoid? Do not minimize the report by saying “these are just dependencies.” Do not over-dramatize by saying “we are breached” unless you have evidence of compromise. Do not hide findings from leadership. Do not notify clients before checking contractual obligations and internal policy.&lt;/p&gt;

&lt;p&gt;Client notification depends on your contract, regulatory obligations, and the nature of the finding. Some contracts require notification of material security findings. Others require notification only for incidents, breaches, or confirmed data exposure. Review your agreement and involve legal, compliance, or leadership before sending external communication.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 — Verify Each Finding Before Acting
&lt;/h2&gt;

&lt;p&gt;Audit findings are important, but they are not always perfectly accurate. Some may be false positives. Some may be based on old scan data. Some may identify a vulnerable package that exists in a lock file but is not deployed. Others may apply only to configurations your application does not use.&lt;/p&gt;

&lt;p&gt;Before making changes, verify each finding:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is the vulnerable dependency actually present in the production build?&lt;/li&gt;
&lt;li&gt;Is the reported version accurate?&lt;/li&gt;
&lt;li&gt;Is the package direct or transitive?&lt;/li&gt;
&lt;li&gt;Is the affected feature used by your application?&lt;/li&gt;
&lt;li&gt;Does the fixed version exist and match your ecosystem?&lt;/li&gt;
&lt;li&gt;Is the vulnerability already fixed in a newer branch or release?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For JavaScript projects, inspect &lt;code&gt;package-lock.json&lt;/code&gt; or &lt;code&gt;yarn.lock&lt;/code&gt;. For PHP, review &lt;code&gt;composer.lock&lt;/code&gt;. For Java, inspect &lt;code&gt;pom.xml&lt;/code&gt;, Gradle files, and dependency trees. For Python, review &lt;code&gt;requirements.txt&lt;/code&gt;, lock files, or environment exports. For containers, remember that OS packages and bundled binaries can also introduce vulnerable components.&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&lt;/span&gt;
npm audit
npm &lt;span class="nb"&gt;ls &lt;/span&gt;package-name

&lt;span class="c"&gt;# Maven&lt;/span&gt;
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;package-name

&lt;span class="c"&gt;# Composer&lt;/span&gt;
composer audit

&lt;span class="c"&gt;# Python&lt;/span&gt;
pip-audit
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verification should not become an excuse to delay urgent fixes. If a critical, exploited, internet-facing issue is clearly present, patch immediately. But for the rest, verification prevents wasted work and gives you better evidence for the auditor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 — Set Up Continuous Monitoring Before You Start Fixing
&lt;/h2&gt;

&lt;p&gt;A one-time audit shows the state of your application at audit time. It does not protect you tomorrow. New CVEs are disclosed constantly, and a package that looked clean during the audit can become vulnerable during remediation.&lt;/p&gt;

&lt;p&gt;That is why continuous monitoring should be set up on day one, before or alongside remediation. Upload your manifest files or SBOMs to Vulert to get an immediate current-state picture of your dependency risk. Vulert monitors open-source dependencies and alerts teams when newly disclosed vulnerabilities affect their packages.&lt;/p&gt;

&lt;p&gt;This step matters because an audit report can become outdated quickly. If you fix only the listed findings but do not monitor for new CVEs, the next audit may find a fresh set of vulnerable dependencies. Continuous monitoring turns vulnerability response from a panic cycle into an ongoing process.&lt;/p&gt;

&lt;p&gt;Vulert can analyze 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;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 formats such as SPDX and CycloneDX. It checks direct and transitive dependencies against a large CVE database and provides fix guidance where available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 — Remediate in Priority Order
&lt;/h2&gt;

&lt;p&gt;Once findings are verified and monitored, fix them in priority order. Do not start with the easiest low-risk upgrade just to show progress if critical issues remain exposed. Prioritize based on exploitability, exposure, severity, and business impact.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Severity Tier&lt;/th&gt;
&lt;th&gt;Timeline&lt;/th&gt;
&lt;th&gt;Owner&lt;/th&gt;
&lt;th&gt;Action&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Critical + actively exploited + internet-facing&lt;/td&gt;
&lt;td&gt;Today&lt;/td&gt;
&lt;td&gt;Engineering lead + security owner&lt;/td&gt;
&lt;td&gt;Patch immediately, deploy quickly, verify with rescan.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Critical without known active exploitation&lt;/td&gt;
&lt;td&gt;This sprint&lt;/td&gt;
&lt;td&gt;Application owner&lt;/td&gt;
&lt;td&gt;Upgrade package, test compatibility, deploy, document evidence.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;High&lt;/td&gt;
&lt;td&gt;Next sprint or within 7 business days&lt;/td&gt;
&lt;td&gt;Service team&lt;/td&gt;
&lt;td&gt;Plan upgrade, regression test, verify after release.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Medium&lt;/td&gt;
&lt;td&gt;Next quarter or planned maintenance window&lt;/td&gt;
&lt;td&gt;Backlog owner&lt;/td&gt;
&lt;td&gt;Schedule remediation unless exposure increases.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Low&lt;/td&gt;
&lt;td&gt;Fix opportunistically or accept risk formally&lt;/td&gt;
&lt;td&gt;Product/security owner&lt;/td&gt;
&lt;td&gt;Track, document, and review periodically.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For each dependency upgrade, create a ticket that includes the package name, current version, fixed version, CVE ID, severity, affected application, fix command, pull request link, deployment status, and verification result. If your team uses Jira, this becomes your remediation evidence trail.&lt;/p&gt;

&lt;p&gt;Some upgrades are simple patch bumps. Others require breaking changes. If a fixed version requires a major upgrade, document the risk and timeline clearly. For critical vulnerabilities, consider temporary compensating controls while the major upgrade is tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6 — Verify Each Fix With a Rescan
&lt;/h2&gt;

&lt;p&gt;A pull request is not proof that a vulnerability is fixed. A merged upgrade is not proof either. The vulnerable dependency may still exist through another transitive path. The fixed build may not be deployed. The scanner may still find the old version in a container image, staging environment, or another service.&lt;/p&gt;

&lt;p&gt;After each fix, rescan. Confirm that the CVE is no longer flagged. Check the dependency tree again. Confirm deployment version. Attach evidence to the remediation ticket.&lt;/p&gt;

&lt;p&gt;Document at least:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What was vulnerable.&lt;/li&gt;
&lt;li&gt;Which version was running.&lt;/li&gt;
&lt;li&gt;Which version fixed the vulnerability.&lt;/li&gt;
&lt;li&gt;Who made the change.&lt;/li&gt;
&lt;li&gt;When the fix was deployed.&lt;/li&gt;
&lt;li&gt;Which scan or validation confirmed closure.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This documentation is what you show the auditor during the next review. It also protects the engineering team from repeated questions about the same finding.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7 — Respond to the Auditor With Evidence
&lt;/h2&gt;

&lt;p&gt;Auditors want specific actions, timeframes, and evidence. They do not want vague statements such as “we will look into it” or “we plan to improve security.” A strong remediation response shows that you understood the finding, verified it, fixed it or accepted risk formally, and added controls to prevent recurrence.&lt;/p&gt;

&lt;p&gt;Use this audit response template:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Finding: Vulnerable open-source dependency [package-name] [version]
CVE: [CVE-ID]
Severity: [Critical/High/Medium/Low]
Affected Application: [application/service name]

Validation:
We verified that [package-name] version [current-version] was present in [environment/application].
The vulnerable dependency was [direct/transitive].
The affected code path was [reachable/not reachable/partially applicable].

Remediation:
We upgraded [package-name] from [current-version] to [fixed-version].
Pull Request: [link]
Deployment Date: [date]
Owner: [name/team]

Verification:
A rescan was completed on [date].
Result: The CVE is no longer detected in [application/environment].

Prevention:
Continuous dependency monitoring has been enabled using Vulert.
Future dependency CVEs will be tracked through [Jira/security workflow].
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If the finding is not applicable, explain why with evidence. For example, the package may be development-only, not deployed, not reachable, or already upgraded in production. Avoid simply saying “false positive” without proof.&lt;/p&gt;

&lt;p&gt;If the finding cannot be fixed immediately, provide a remediation plan with dates, owner, compensating controls, and risk acceptance if required.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8 — Prevent This From Happening Again
&lt;/h2&gt;

&lt;p&gt;Post-audit is the best time to improve your process. Leadership is paying attention. The engineering team understands the pain. The auditor has created urgency. Use that moment to move from reactive remediation to continuous vulnerability management.&lt;/p&gt;

&lt;p&gt;Teams that get surprised by dependency findings usually lack continuous monitoring. They may scan once before an audit, once before a release, or only when a client asks. That leaves long gaps where new CVEs can appear unnoticed.&lt;/p&gt;

&lt;p&gt;Prevention means building a repeatable workflow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scan dependency files continuously.&lt;/li&gt;
&lt;li&gt;Create tickets for confirmed findings.&lt;/li&gt;
&lt;li&gt;Prioritize using severity, KEV status, exploitability, and exposure.&lt;/li&gt;
&lt;li&gt;Assign owners and deadlines.&lt;/li&gt;
&lt;li&gt;Fix and rescan.&lt;/li&gt;
&lt;li&gt;Document evidence for future audits.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When a security audit found vulnerabilities, treat it as a signal that monitoring needs to improve. The goal is not only to fix this audit’s findings. The goal is to make sure the next audit has nothing new to discover in the dependency category.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps After an Audit
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that helps teams detect known vulnerabilities in open-source dependencies. It scans manifest files and SBOMs, identifies vulnerable direct and transitive dependencies, and provides fix guidance with safe versions and CLI commands where available.&lt;/p&gt;

&lt;p&gt;For audit response, Vulert helps in three ways. First, it gives you an immediate current-state view by scanning your dependency files. Second, it helps prioritize affected packages and fixed versions. Third, it provides continuous monitoring so new CVEs do not surprise you after the audit is closed.&lt;/p&gt;

&lt;p&gt;Vulert also supports Jira integration, helping teams turn findings into remediation tickets with useful details such as CVE ID, package name, severity, fixed version, and fix guidance. That makes it easier to show auditors that vulnerability management is now part of your normal engineering workflow.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Do not panic:&lt;/strong&gt; Start with structured triage and classify findings by actual risk.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Do not rely only on CVSS:&lt;/strong&gt; Consider exploitation, exposure, reachability, and business impact.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Communicate clearly:&lt;/strong&gt; Leadership needs counts, urgency, owners, and timelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Verify findings:&lt;/strong&gt; Confirm the vulnerable version is actually present and relevant.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Monitor continuously:&lt;/strong&gt; One-time audits become outdated quickly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fix in priority order:&lt;/strong&gt; Critical exploited internet-facing vulnerabilities come first.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rescan after each fix:&lt;/strong&gt; Evidence matters for auditors and future reviews.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Prevent recurrence:&lt;/strong&gt; A strong vulnerability workflow reduces surprises in the next audit.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Do I have to tell clients about vulnerability audit findings?
&lt;/h3&gt;

&lt;p&gt;It depends on your contract, regulatory obligations, and whether the finding represents a material risk or confirmed incident. Review your agreement and involve leadership, legal, or compliance before notifying clients. Do not hide required notifications, but do not over-disclose unverified findings without context.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What if the audit finding is a false positive?
&lt;/h3&gt;

&lt;p&gt;Verify it with evidence. Confirm whether the package is present, deployed, reachable, and actually vulnerable. If it is not applicable, document why clearly for the auditor instead of simply labeling it a false positive.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. How do I prevent failing the next security audit?
&lt;/h3&gt;

&lt;p&gt;Set up continuous dependency scanning, create tickets for findings, define remediation SLAs, verify fixes with rescans, and keep documentation. Tools like Vulert help by monitoring dependencies and alerting you when new CVEs affect your packages.&lt;/p&gt;

</description>
      <category>security</category>
      <category>compliance</category>
      <category>devops</category>
      <category>vulert</category>
    </item>
    <item>
      <title>Spring4Shell Explained — Is Your Spring Application Still Vulnerable?</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Tue, 09 Jun 2026 14:14:21 +0000</pubDate>
      <link>https://dev.to/vulert_official/spring4shell-explained-is-your-spring-application-still-vulnerable-31m8</link>
      <guid>https://dev.to/vulert_official/spring4shell-explained-is-your-spring-application-still-vulnerable-31m8</guid>
      <description>&lt;p&gt;Spring4Shell, tracked as &lt;code&gt;CVE-2022-22965&lt;/code&gt;, was disclosed in March 2022 and quickly created panic across the Java ecosystem. The timing made it even more alarming: it arrived only months after Log4Shell, another critical Java vulnerability that had already forced engineering and security teams into emergency patching mode.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;spring4shell vulnerability&lt;/strong&gt; is a Remote Code Execution flaw in the Spring Framework’s data binding mechanism. Under specific conditions, an attacker can send crafted HTTP requests that manipulate Java class properties and potentially lead to arbitrary code execution on the server.&lt;/p&gt;

&lt;p&gt;But there is an important nuance many early reports missed: not every Spring application was vulnerable. The original &lt;code&gt;CVE-2022-22965&lt;/code&gt; exploit required a specific combination of Spring Framework versions, JDK version, servlet container, deployment format, and classpath components. Most modern Spring Boot applications deployed as executable JAR files were not affected by the original exploit path.&lt;/p&gt;

&lt;p&gt;This guide explains what Spring4Shell actually is, the exact conditions required for exploitation, how it differs from other Spring CVEs disclosed around the same time, how to check your application, and exactly what to upgrade.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Spring4Shell Actually Is
&lt;/h2&gt;

&lt;p&gt;Spring Framework is one of the most widely used Java application frameworks. It powers web applications, APIs, enterprise systems, internal tools, microservices, and backend services across thousands of organizations. Because Spring is so widely deployed, any critical vulnerability in it gets immediate attention.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;CVE-2022-22965&lt;/code&gt; is a Remote Code Execution vulnerability involving Spring’s data binding functionality. Data binding is a normal framework feature that maps incoming request parameters to Java objects. In typical web applications, this allows developers to receive form fields or request parameters and bind them to model objects automatically.&lt;/p&gt;

&lt;p&gt;The problem was that under certain conditions, attackers could abuse this binding behavior to manipulate sensitive Java class properties. When combined with Apache Tomcat and WAR deployment, that manipulation could be used to write a malicious web shell or otherwise gain code execution.&lt;/p&gt;

&lt;p&gt;This made the issue serious. Remote Code Execution means an attacker may be able to run commands or code on the affected server. In a vulnerable internet-facing application, that can lead to web shell deployment, data theft, lateral movement, service disruption, or full server compromise.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;spring4shell vulnerability&lt;/strong&gt; was rated critical because exploitation could be performed remotely against affected applications. However, the exploitability depended heavily on deployment details, which is why accurate assessment was so important.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Exact Conditions Required for Exploitation
&lt;/h2&gt;

&lt;p&gt;The most important part of Spring4Shell is understanding who was actually affected. Early reporting caused confusion because many teams heard “Spring RCE” and assumed every Spring or Spring Boot application was vulnerable. That was not correct.&lt;/p&gt;

&lt;p&gt;For the original &lt;code&gt;CVE-2022-22965&lt;/code&gt; exploit path, the application needed to meet a specific set of conditions. The official Spring guidance described the issue as affecting Spring MVC or Spring WebFlux applications running on JDK 9 or higher, with the specific exploit requiring the application to be packaged and deployed as a traditional WAR on a servlet container such as Tomcat.&lt;/p&gt;

&lt;p&gt;In practical terms, the common affected configuration was:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Spring Framework &lt;strong&gt;5.3.0 to 5.3.17&lt;/strong&gt;, &lt;strong&gt;5.2.0 to 5.2.19&lt;/strong&gt;, or older unsupported versions.&lt;/li&gt;
&lt;li&gt;JDK 9 or higher. The attack path relied on Java 9+ behavior.&lt;/li&gt;
&lt;li&gt;Apache Tomcat as the servlet container.&lt;/li&gt;
&lt;li&gt;Traditional WAR deployment.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;spring-webmvc&lt;/code&gt; or &lt;code&gt;spring-webflux&lt;/code&gt; on the classpath.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Important:&lt;/strong&gt; Spring Boot apps deployed as executable JAR files are not affected by &lt;code&gt;CVE-2022-22965&lt;/code&gt;’s original exploit path — despite widespread reporting suggesting otherwise.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This does not mean Spring Boot users could ignore the issue completely. Many Spring Boot projects still depended on vulnerable Spring Framework versions, and some teams deployed Spring Boot applications as WAR files to external servlet containers. The correct response was to check the exact deployment model and dependency versions, then upgrade where needed.&lt;/p&gt;

&lt;p&gt;If your application used Spring Boot’s default executable JAR packaging with embedded Tomcat, it was not vulnerable to the original exploit described in the advisory. If your application was packaged as a WAR and deployed to external Tomcat, you needed to investigate immediately.&lt;/p&gt;

&lt;h2&gt;
  
  
  Spring4Shell vs Spring Cloud Function vs CVE-2022-22968 — Three Different Things
&lt;/h2&gt;

&lt;p&gt;Spring4Shell was not the only Spring-related security issue discussed in 2022. Around the same time, multiple Spring CVEs appeared in advisories and news reports. This caused confusion because developers saw different CVE IDs, different products, and different exploit details all being discussed together.&lt;/p&gt;

&lt;p&gt;The three commonly confused issues are:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CVE ID&lt;/th&gt;
&lt;th&gt;Common Name / Area&lt;/th&gt;
&lt;th&gt;What It Affects&lt;/th&gt;
&lt;th&gt;Impact&lt;/th&gt;
&lt;th&gt;Fixed Version&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CVE-2022-22965&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Spring4Shell&lt;/td&gt;
&lt;td&gt;Spring Framework MVC/WebFlux under specific JDK 9+, Tomcat, WAR deployment conditions&lt;/td&gt;
&lt;td&gt;Remote Code Execution&lt;/td&gt;
&lt;td&gt;Spring Framework 5.3.18+ or 5.2.20+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CVE-2022-22963&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Spring Cloud Function SpEL injection&lt;/td&gt;
&lt;td&gt;Spring Cloud Function&lt;/td&gt;
&lt;td&gt;Remote Code Execution through expression injection&lt;/td&gt;
&lt;td&gt;Upgrade affected Spring Cloud Function versions according to vendor guidance&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CVE-2022-22968&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Spring Framework data binding DoS&lt;/td&gt;
&lt;td&gt;Spring Framework data binding patterns&lt;/td&gt;
&lt;td&gt;Denial of Service / security bypass concern, not the same RCE as Spring4Shell&lt;/td&gt;
&lt;td&gt;Spring Framework patched releases according to advisory guidance&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;CVE-2022-22965&lt;/code&gt; Spring4Shell is the main Spring Framework RCE issue discussed in this article. It is not the same as &lt;code&gt;CVE-2022-22963&lt;/code&gt;, which affected Spring Cloud Function and involved SpEL expression injection. It is also different from &lt;code&gt;CVE-2022-22968&lt;/code&gt;, which involved data binding rules and did not represent the same original Spring4Shell RCE scenario.&lt;/p&gt;

&lt;p&gt;During vulnerability response, mixing these CVEs can cause bad decisions. A team may patch Spring Cloud Function and think Spring Framework is fixed, or upgrade Spring Framework and assume a Spring Cloud Function issue is gone. Always check the exact CVE ID, affected component, version range, and fix version.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Check If Your Application Is Vulnerable
&lt;/h2&gt;

&lt;p&gt;Start by identifying your Spring Framework version. In Maven projects, use &lt;code&gt;mvn dependency:tree&lt;/code&gt; to inspect resolved dependencies. This is important because you may not declare &lt;code&gt;spring-webmvc&lt;/code&gt; directly; it may arrive through Spring Boot starters or other dependencies.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also search for specific Spring Framework artifacts:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-webmvc
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-webflux
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-core
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-beans
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Next, confirm your deployment model. Ask these questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are you using Spring Framework 5.3.0–5.3.17, 5.2.0–5.2.19, or older?&lt;/li&gt;
&lt;li&gt;Are you running on JDK 9 or higher?&lt;/li&gt;
&lt;li&gt;Are you deploying to Apache Tomcat?&lt;/li&gt;
&lt;li&gt;Is the application packaged as a WAR file?&lt;/li&gt;
&lt;li&gt;Do you have &lt;code&gt;spring-webmvc&lt;/code&gt; or &lt;code&gt;spring-webflux&lt;/code&gt; on the classpath?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If all of these are true, your application should be treated as vulnerable until patched or proven otherwise. If you use Spring Boot executable JAR packaging, the original exploit path does not apply, but upgrading is still recommended because patched Framework versions remove the underlying issue.&lt;/p&gt;

&lt;p&gt;You should also check CI/CD build files, parent POMs, dependency management sections, Docker images, legacy WAR deployments, and application servers. Enterprise Java environments often have older applications that are still running because they are stable and hard to migrate.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fix — Exactly What to Upgrade To
&lt;/h2&gt;

&lt;p&gt;The fix for &lt;code&gt;CVE-2022-22965&lt;/code&gt; is to upgrade Spring Framework to patched versions. &lt;strong&gt;Spring Framework 5.3.18+ and 5.2.20+&lt;/strong&gt; contain the fix. For Spring Boot users, &lt;strong&gt;Spring Boot 2.6.6+ and 2.5.12+&lt;/strong&gt; include the corresponding patched Spring Framework versions.&lt;/p&gt;

&lt;p&gt;If your project manages Spring Framework directly, update the affected Spring dependencies. Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;spring-framework.version&amp;gt;&lt;/span&gt;5.3.18&lt;span class="nt"&gt;&amp;lt;/spring-framework.version&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If your project uses Spring Boot dependency management, upgrade the Spring Boot parent version:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;parent&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-starter-parent&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.6.6&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;relativePath/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/parent&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For applications on the Spring Boot 2.5 line, upgrade to at least:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;parent&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework.boot&lt;span class="nt"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-boot-starter-parent&lt;span class="nt"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.5.12&lt;span class="nt"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
  &lt;span class="nt"&gt;&amp;lt;relativePath/&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/parent&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After upgrading, rebuild and verify the resolved dependency tree:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;mvn clean package
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-framework
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-core
mvn dependency:tree | &lt;span class="nb"&gt;grep &lt;/span&gt;spring-webmvc
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you cannot upgrade immediately, review vendor mitigations and restrict exposure. However, mitigation should only be temporary. The correct long-term fix is to upgrade to a patched Spring Framework or Spring Boot version.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is Your Application Still at Risk in 2026?
&lt;/h2&gt;

&lt;p&gt;Yes, some applications can still be at risk in 2026. Many enterprise Java systems run older Spring versions because of compatibility constraints, long release cycles, legacy application servers, old WAR deployment models, or business-critical systems that are difficult to modify.&lt;/p&gt;

&lt;p&gt;The &lt;strong&gt;spring4shell vulnerability&lt;/strong&gt; is old enough that many teams assume it is already resolved. That assumption can be dangerous. If a legacy application still uses vulnerable Spring Framework versions and matches the exploit conditions, it may remain exposed. Attackers often continue scanning for old CVEs because unpatched systems remain valuable targets.&lt;/p&gt;

&lt;p&gt;Legacy Java environments deserve special attention. Look for applications deployed as WAR files to external Tomcat, older JDK upgrades that moved systems to JDK 9+, unmanaged application servers, and custom enterprise apps outside modern CI/CD pipelines.&lt;/p&gt;

&lt;p&gt;Use dependency scanning to verify exposure rather than relying on memory. A single organization may have dozens or hundreds of Java repositories. Some may use parent POMs, internal BOMs, shaded dependencies, or vendor packages. Manual checks are easy to miss.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps Check Spring Dependencies
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that helps developers and security teams detect known vulnerabilities in open-source dependencies. For Java projects, Vulert can analyze Maven and Gradle dependency files to identify vulnerable packages, including direct and transitive dependencies.&lt;/p&gt;

&lt;p&gt;If you want to check for the &lt;strong&gt;spring4shell vulnerability&lt;/strong&gt; or other Spring Framework issues, upload your &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, or SBOM to Vulert. Vulert checks your dependency versions against its vulnerability database and shows which packages are affected, which versions fix the issue, and what remediation steps are available.&lt;/p&gt;

&lt;p&gt;Vulert is useful because Spring vulnerabilities may appear through dependency management rather than a direct declaration. A project may not explicitly list every Spring artifact, but those artifacts can still appear in the resolved dependency tree. Vulert helps teams identify risk across dependency files without requiring source code access.&lt;/p&gt;

&lt;p&gt;Vulert supports multiple manifest and lock files across ecosystems, 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;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 formats such as SPDX and CycloneDX.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spring4Shell is CVE-2022-22965:&lt;/strong&gt; It is a critical Spring Framework Remote Code Execution vulnerability involving data binding.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not every Spring app was vulnerable:&lt;/strong&gt; The original exploit required specific conditions, including JDK 9+, Tomcat, WAR deployment, and Spring MVC/WebFlux.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Spring Boot executable JARs were not affected by the original exploit path:&lt;/strong&gt; This was one of the most misunderstood parts of the issue.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE-2022-22963 is different:&lt;/strong&gt; It affects Spring Cloud Function and should not be confused with Spring4Shell.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The fix is clear:&lt;/strong&gt; Upgrade to Spring Framework 5.3.18+ or 5.2.20+, or Spring Boot 2.6.6+ or 2.5.12+.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Legacy apps may still be exposed:&lt;/strong&gt; Older enterprise Java deployments should still be checked in 2026.&lt;/li&gt;
&lt;/ul&gt;

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

&lt;h3&gt;
  
  
  1. Does Spring4Shell affect Spring Boot?
&lt;/h3&gt;

&lt;p&gt;Spring Boot applications deployed as executable JAR files were not affected by the original &lt;code&gt;CVE-2022-22965&lt;/code&gt; exploit path. However, Spring Boot applications deployed as WAR files to external servlet containers could be affected if they met the vulnerable conditions. Upgrading Spring Boot to 2.6.6+ or 2.5.12+ is recommended.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. What’s the difference between Log4Shell and Spring4Shell?
&lt;/h3&gt;

&lt;p&gt;Log4Shell is &lt;code&gt;CVE-2021-44228&lt;/code&gt; in Apache Log4j. Spring4Shell is &lt;code&gt;CVE-2022-22965&lt;/code&gt; in Spring Framework. Both are Java ecosystem Remote Code Execution vulnerabilities, but they affect different components and require different exploitation conditions.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert check my Spring dependencies?
&lt;/h3&gt;

&lt;p&gt;Yes. Upload your &lt;code&gt;pom.xml&lt;/code&gt;, &lt;code&gt;build.gradle&lt;/code&gt;, or SBOM to Vulert to check whether your Spring dependencies or transitive dependencies are affected by known CVEs.&lt;/p&gt;

</description>
      <category>spring4shell</category>
      <category>springframework</category>
      <category>vulert</category>
      <category>javasecurity</category>
    </item>
    <item>
      <title>How to Evaluate If a Package Is Safe Before Adding It to Your Project</title>
      <dc:creator>Vulert</dc:creator>
      <pubDate>Tue, 09 Jun 2026 13:24:43 +0000</pubDate>
      <link>https://dev.to/vulert_official/how-to-evaluate-if-a-package-is-safe-before-adding-it-to-your-project-5b3d</link>
      <guid>https://dev.to/vulert_official/how-to-evaluate-if-a-package-is-safe-before-adding-it-to-your-project-5b3d</guid>
      <description>&lt;p&gt;Every time you run &lt;code&gt;npm&lt;/code&gt;install&lt;code&gt;, `pip `install&lt;/code&gt;, &lt;code&gt;composer require&lt;/code&gt;, or add a Maven dependency, you are making a security decision. A package may save development time, but it can also introduce vulnerable code, abandoned dependencies, malicious &lt;code&gt;install&lt;/code&gt; scripts, licensing problems, or hundreds of transitive packages you never reviewed.&lt;/p&gt;

&lt;p&gt;A package security check helps developers make safer decisions before a dependency enters the codebase. Instead of blindly trusting download counts or copying an &lt;code&gt;install&lt;/code&gt; command from a README, you can quickly review maintenance, popularity, CVE history, maintainers, dependency count, repository health, license, and source code behavior.&lt;/p&gt;

&lt;p&gt;This guide gives you a practical checklist you can run in under five minutes. It is designed mainly for npm packages, but the same approach works for Python, Maven, Composer, RubyGems, Go, Rust, and .NET packages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Every Dependency Is a Security Decision
&lt;/h2&gt;

&lt;p&gt;Modern software depends heavily on open-source components. That is a strength because developers can build faster, avoid rewriting common features, and use battle-tested libraries. But every dependency expands your trust boundary. When you &lt;code&gt;install&lt;/code&gt; a package, you trust its maintainer, registry account, release process, dependencies, build scripts, and security response.&lt;/p&gt;

&lt;p&gt;A package security check is important because supply chain risk often enters quietly. A small JavaScript package can pull in dozens of transitive dependencies. A Python package can include native extensions. A Maven dependency can bring multiple libraries through dependency resolution. A package may be safe today but become abandoned next year.&lt;/p&gt;

&lt;p&gt;Security should not start after a vulnerability alert appears. It should start before the dependency is added. If two packages solve the same problem, choose the one with active maintenance, clear ownership, fewer dependencies, transparent source code, and a strong security history.&lt;/p&gt;

&lt;h2&gt;
  
  
  The 8-Factor Package Safety Checklist
&lt;/h2&gt;

&lt;p&gt;Use this checklist before adding any production dependency. For low-risk utilities, the review may take only a few minutes. For high-risk packages such as authentication libraries, file parsers, payment tools, build tools, cryptography packages, or packages with &lt;code&gt;install&lt;/code&gt; scripts, spend more time reviewing the details.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Maintenance Status — When Was the Last Commit?
&lt;/h2&gt;

&lt;p&gt;The first part of any package security check is maintenance status. Check when the package was last published and when the repository last received meaningful commits. A package with no updates for two or more years may be unmaintained, especially if it has open issues, stale pull requests, or no response from maintainers.&lt;/p&gt;

&lt;p&gt;For npm, check the “last published” date. For GitHub, check recent commits, releases, issues, and pull requests. For PyPI, review release history. For Maven, check artifact release dates. An unmaintained package may still work, but it may not receive security fixes when a CVE is discovered.&lt;/p&gt;

&lt;p&gt;Not every stable package needs constant changes. A tiny package with 20 lines of code may be fine without frequent updates. But a complex package that parses files, handles user input, manages authentication, or makes network requests should show active maintenance.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Download Velocity — Is Anyone Actually Using This?
&lt;/h2&gt;

&lt;p&gt;Popularity is not proof of safety, but it is a useful signal. A package with strong weekly downloads, many dependent projects, and active community use is more likely to receive bug reports and security attention. For npm, check weekly downloads. For GitHub, review stars, forks, and dependent repositories. For other ecosystems, check registry activity where available.&lt;/p&gt;

&lt;p&gt;A package security check should treat downloads as one signal, not the final answer. Popular packages can still have serious vulnerabilities. For example, widely used JavaScript packages have had prototype pollution, command injection, and dependency confusion issues. High downloads mean more visibility, not automatic safety.&lt;/p&gt;

&lt;p&gt;Low downloads are not always bad either. A niche package may be excellent for a specific use case. But if a package has very low downloads, one maintainer, no recent updates, and sensitive functionality, review it carefully before adding it.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Known CVE History — What’s Already Been Found?
&lt;/h2&gt;

&lt;p&gt;Known vulnerability history is one of the most important parts of a package security check. Search the package in vulnerability databases such as OSV, GitHub Advisory Database, NVD, Snyk Advisor, Socket, or Vulert. Look for CVEs, affected versions, fixed versions, and disclosure timelines.&lt;/p&gt;

&lt;p&gt;Do not judge a package only by the number of historical CVEs. A package with many CVEs that were fixed quickly may be healthier than a package with fewer CVEs that took years to patch. Look at how maintainers respond. Did they release fixes quickly? Did they publish clear advisories? Were affected version ranges documented?&lt;/p&gt;

&lt;p&gt;Also look for repeated vulnerability patterns. If the same package repeatedly suffers from command injection, path traversal, prototype pollution, deserialization, or authentication bypass issues, that may indicate deeper security problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Maintainer Count — Single Points of Failure
&lt;/h2&gt;

&lt;p&gt;Maintainer count matters because package ownership is part of security. A single-maintainer package can be useful and honest, but it creates a single point of failure. One person can become unavailable, lose access, burn out, get compromised, or be socially engineered.&lt;/p&gt;

&lt;p&gt;A strong package security check looks at who maintains the package. Is it maintained by one person, a small team, a company, a foundation, or a recognized open-source organization? Are there multiple trusted maintainers? Is there a security policy? Are releases signed or documented?&lt;/p&gt;

&lt;p&gt;The XZ Utils incident reminded the security community that maintainership and trust are critical parts of supply chain security. Attackers may target trusted projects because compromising a maintainer or release process can affect many downstream users.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Transitive Dependency Count — What Else Does It Pull In?
&lt;/h2&gt;

&lt;p&gt;A package is not only its own code. It also brings its dependencies. Those dependencies bring more dependencies. This is how a simple &lt;code&gt;install&lt;/code&gt; command can add a large dependency tree to your project.&lt;/p&gt;

&lt;p&gt;During a package security check, review the transitive dependency count. A small utility that pulls in 100 packages may not be worth it. More dependencies mean more maintainers to trust, more code to monitor, more CVEs to track, and more update pressure.&lt;/p&gt;

&lt;h1&gt;
  
  
  Preview npm installation
&lt;/h1&gt;

&lt;p&gt;&lt;code&gt;npm&lt;/code&gt;install`` package-name --dry-run&lt;/p&gt;

&lt;h1&gt;
  
  
  Inspect dependency tree after install
&lt;/h1&gt;

&lt;p&gt;npm ls package-name&lt;/p&gt;

&lt;h1&gt;
  
  
  Maven dependency tree
&lt;/h1&gt;

&lt;p&gt;mvn dependency:tree&lt;/p&gt;

&lt;p&gt;Choose smaller dependency trees when possible, especially for frontend applications, serverless functions, CLI tools, and security-sensitive services. If a package adds too much risk for a small feature, consider writing a small internal utility instead.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Repository Health
&lt;/h2&gt;

&lt;p&gt;Repository health shows how maintainers handle real-world problems. Check open issues, pull request response time, release cadence, documentation quality, changelog activity, and security policy files.&lt;/p&gt;

&lt;p&gt;A good package security check does not panic just because a repo has many issues. Popular projects often have many issues. The important question is whether maintainers are active. Are they responding? Are they merging fixes? Are releases happening? Are security reports handled professionally?&lt;/p&gt;

&lt;p&gt;Be careful if the repository is archived, missing, unrelated to the registry package, or full of unanswered security concerns. A healthy package should have a clear source repository, clear release history, and enough maintainer activity to support users.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. License Compatibility
&lt;/h2&gt;

&lt;p&gt;Licensing is not only a legal concern. It is also part of responsible dependency management. Before adding a package, confirm that the license is compatible with your project and business model.&lt;/p&gt;

&lt;p&gt;A package security check should include a quick license review. MIT, Apache-2.0, BSD, and ISC are permissive licenses commonly used in commercial projects. GPL and AGPL are copyleft licenses and may create obligations depending on how the software is distributed or used. Packages with missing or unclear licenses should be treated carefully.&lt;/p&gt;

&lt;p&gt;If you are unsure whether a license is acceptable, ask your legal or compliance team. It is better to check before adding the package than to remove it later after it becomes deeply integrated.&lt;/p&gt;

&lt;h2&gt;
  
  
  8. Source Code Spot Check for High-Risk Packages
&lt;/h2&gt;

&lt;p&gt;For critical packages, low-download packages, or packages with &lt;code&gt;install&lt;/code&gt; scripts, inspect the source code. You do not need to audit every line, but you should look for obvious red flags.&lt;/p&gt;

&lt;p&gt;A practical package security check should review what the package imports and what it does during &lt;code&gt;install&lt;/code&gt;ation or runtime. Does it make unexpected network requests? Does it read environment variables? Does it access the filesystem? Does it spawn child processes? Does it use &lt;code&gt;eval()&lt;/code&gt;? Does it include minified or obfuscated code?&lt;/p&gt;

&lt;p&gt;For npm packages, check &lt;code&gt;package.json&lt;/code&gt; scripts such as &lt;code&gt;pre&lt;/code&gt;install`&lt;code&gt;, &lt;/code&gt;install&lt;code&gt;, and post&lt;/code&gt;install`. These scripts can execute automatically on developer machines and CI/CD systems.&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;"scripts"&lt;/span&gt;&lt;span class="p"&gt;:&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;span class="nl"&gt;"postinstall"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"node install.js"&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;}&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Postinstall scripts are not always malicious. Some legitimate packages compile native modules or download platform-specific binaries. But install-time execution deserves review, especially if it runs shell commands or contacts unknown domains.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Quick Reference — 5-Minute Package Evaluation
&lt;/h2&gt;

&lt;p&gt;Use this quick checklist before &lt;code&gt;install&lt;/code&gt;ing a new dependency:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Maintenance:&lt;/strong&gt; Was the package updated recently?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Popularity:&lt;/strong&gt; Are downloads and dependent projects reasonable?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CVE history:&lt;/strong&gt; Are known vulnerabilities fixed quickly?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Maintainers:&lt;/strong&gt; Is there more than one trusted maintainer?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dependency count:&lt;/strong&gt; Does it pull in too many transitive dependencies?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Repository health:&lt;/strong&gt; Are issues and pull requests handled?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;License:&lt;/strong&gt; Is the license compatible with your project?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Source check:&lt;/strong&gt; Are there risky scripts, network calls, or obfuscated code?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This 5-minute package security check helps you catch obvious risks before they become part of your production software. It is not a replacement for full security review, but it is a strong first filter.&lt;/p&gt;

&lt;h2&gt;
  
  
  Package-Specific Tools Developers Can Use
&lt;/h2&gt;

&lt;p&gt;Different ecosystems have different tools, but the goal is the same: identify risky packages, vulnerable versions, and unsafe dependency trees before they become production problems.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;npm:&lt;/strong&gt; Use npm audit, npm package pages, Socket, Snyk Advisor, OSV, GitHub Advisory Database, and Vulert.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Python:&lt;/strong&gt; Use pip-audit, PyPI metadata, OSV, and safety data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ruby:&lt;/strong&gt; Use bundler-audit and review Gemfile.lock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Java/Maven:&lt;/strong&gt; Use mvn dependency:tree, Maven metadata, OSV, and SCA tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PHP:&lt;/strong&gt; Use Composer audit tools and review composer.lock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Go:&lt;/strong&gt; Use govulncheck, go.sum, and OSV.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rust:&lt;/strong&gt; Use cargo audit and review Cargo.lock.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;All ecosystems:&lt;/strong&gt; Use SBOMs, OSV, GitHub Advisory Database, and Vulert.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For teams, automate checks in CI/CD. Manual review is useful before adding a package, but continuous scanning is needed after &lt;code&gt;install&lt;/code&gt;ation because new CVEs appear all the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Red Flags That Should Make You Look for an Alternative
&lt;/h2&gt;

&lt;p&gt;Some warning signs do not automatically prove a package is unsafe, but they should make you pause. If several red flags appear together, look for another package or consider writing the feature internally.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Last release was more than 2 years ago.&lt;/li&gt;
&lt;li&gt;Repository is archived, missing, or unrelated to the registry package.&lt;/li&gt;
&lt;li&gt;Only one maintainer controls the package.&lt;/li&gt;
&lt;li&gt;Postinstall scripts make network requests or run shell commands.&lt;/li&gt;
&lt;li&gt;Source code is minified, obfuscated, or difficult to inspect.&lt;/li&gt;
&lt;li&gt;A simple package pulls in hundreds of dependencies.&lt;/li&gt;
&lt;li&gt;Security issues remain unanswered.&lt;/li&gt;
&lt;li&gt;Historical CVEs were fixed slowly or unclearly.&lt;/li&gt;
&lt;li&gt;License is missing or incompatible.&lt;/li&gt;
&lt;li&gt;Package name looks like typosquatting.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A careful package security check should make these red flags visible before the package enters your codebase. Avoiding a risky package is easier than removing it after it becomes part of your application architecture.&lt;/p&gt;

&lt;h2&gt;
  
  
  How Vulert Helps with Package Security Checks
&lt;/h2&gt;

&lt;p&gt;Vulert is a Software Composition Analysis tool that helps developers detect known vulnerabilities in open-source dependencies. It analyzes manifest files and SBOMs to identify vulnerable direct and transitive dependencies without requiring access to your source code.&lt;/p&gt;

&lt;p&gt;With Vulert, you can upload 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;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;, or SBOM formats such as SPDX and CycloneDX. Vulert checks dependencies against 458,000+ CVEs and shows which packages are affected.&lt;/p&gt;

&lt;p&gt;Vulert strengthens your package security check by showing known vulnerabilities, affected versions, direct and transitive dependency risk, and fix guidance. Developers can get exact upgrade versions and CLI commands where available, while teams can monitor packages continuously as new CVEs are disclosed.&lt;/p&gt;

&lt;p&gt;This helps teams move from guessing to evidence-based decisions. Before adding a dependency, you can review its health. After adding it, Vulert can help monitor whether future vulnerabilities affect your dependency tree.&lt;/p&gt;

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

&lt;h3&gt;
  
  
  1. How do I check npm package security?
&lt;/h3&gt;

&lt;p&gt;Check the npm package page, last published date, GitHub repository, maintainer count, dependency count, known CVEs, license, and source code. Use tools such as npm audit, OSV, GitHub Advisory Database, Socket, Snyk Advisor, and Vulert.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Is a package with many CVEs safe to use if they’re all fixed?
&lt;/h3&gt;

&lt;p&gt;It can be. A package with many CVEs but fast fixes, clear advisories, and active maintainers may be safer than a package with fewer CVEs but slow response. Look at severity, fix speed, affected versions, and maintainer communication.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Can Vulert help before adding a dependency?
&lt;/h3&gt;

&lt;p&gt;Yes. Vulert can help by scanning manifest files and SBOMs for known vulnerabilities in direct and transitive dependencies. It is useful before and after dependencies enter your project.&lt;/p&gt;

</description>
      <category>npm</category>
      <category>javascript</category>
      <category>security</category>
      <category>vulert</category>
    </item>
  </channel>
</rss>
