<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>CrowdSec Blog</title>
        <link>https://crowdsec.net/blog</link>
        <description>Latest updates and insights from CrowdSec</description>
        <lastBuildDate>Tue, 09 Jun 2026 20:56:08 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <image>
            <title>CrowdSec Blog</title>
            <url>https://cms.crowdsec.net/wp-content/uploads/2024/10/crowdsec-logo.png</url>
            <link>https://crowdsec.net/blog</link>
        </image>
        <item>
            <title><![CDATA[CrowdSec 1.7.8 Security Release: Fixes High-Severity WAF Bypass and LAPI DoS Vulnerabilities]]></title>
            <link>https://crowdsec.net/blog/crowdsec-1-7-8-security-release-fixes-high-severity-waf-bypass-and-lapi-dos-vulnerabilities</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/crowdsec-1-7-8-security-release-fixes-high-severity-waf-bypass-and-lapi-dos-vulnerabilities</guid>
            <pubDate>Wed, 27 May 2026 13:04:16 GMT</pubDate>
            <description><![CDATA[<p>CrowdSec 1.7.8 fixes two security vulnerabilities: CVE-2026-44982, a high-severity WAF bypass, and CVE-2026-44981, a Local API denial-of-service issue. Upgrade now.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">The 1.7.8 release of CrowdSec fixes two vulnerabilities: one of medium impact and one of high impact. We recommend that all users upgrade to the patched version as soon as possible.</p>



<p class="wp-block-paragraph">If you are using the nginx (or OpenResty) remediation component, you will also need to upgrade it to its latest version to fully address CVE-2026-44982.</p>



<h2 class="wp-block-heading">CVE-2026-44982: Partial CrowdSec WAF Bypass (high severity)</h2>



<p class="wp-block-paragraph">The AppSec datasource failed to read the request body for any request whose Content-Length was not positive.</p>



<p class="wp-block-paragraph">In practice, this means HTTP/1.1 requests using <code>Transfer-Encoding: chunked</code> and HTTP/2 requests sent without a <code>content-length</code> header were evaluated against an empty body, silently bypassing any WAF rule targeting body content.</p>



<p class="wp-block-paragraph">Headers-only and URI-only rules are not affected.</p>



<h2 class="wp-block-heading">CVE-2026-44981: Local API Denial of Service</h2>



<p class="wp-block-paragraph">LAPI did not enforce a maximum decompressed body size on incoming gzip-compressed requests.</p>



<p class="wp-block-paragraph">A small compressed payload could decompress into hundreds of megabytes of valid JSON, and the unauthenticated <code>/v1/watchers</code> and <code>/v1/watchers/login</code> endpoints made this reachable without credentials.</p>



<p class="wp-block-paragraph">Sending enough concurrent requests causes LAPI to exhaust memory and be killed by the OS.</p>



<p class="wp-block-paragraph">By default, LAPI only listens on localhost, so this is not remotely exploitable.</p>



<p class="wp-block-paragraph">In a distributed setup, any attacker who can reach LAPI can exploit it. Until you upgrade, restrict LAPI access to trusted IPs at the network or reverse proxy layer.</p>



<p class="wp-block-paragraph">The impact is limited to the availability of new decisions: bouncers continue to enforce existing decisions, but new alerts cannot be processed, and new decisions cannot be distributed while LAPI is down.</p>
]]></content:encoded>
            <category>Uncategorized</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/05/Blog-images-1575-×-871px-22.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Edge is the new endpoint: How to respond when edge CVEs go hot]]></title>
            <link>https://crowdsec.net/blog/edge-is-the-new-endpoint-how-to-respond-when-edge-cves-go-hot</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/edge-is-the-new-endpoint-how-to-respond-when-edge-cves-go-hot</guid>
            <pubDate>Thu, 14 May 2026 11:14:12 GMT</pubDate>
            <description><![CDATA[<p>Edge CVEs move fast from disclosure to exploitation. Learn a practical 60-minute response framework to assess exposure, reduce risk, deploy mitigations, and communicate clearly during edge vulnerability incidents.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong><em>Disclaimer</em></strong><em>: This series of articles was created in collaboration with CISOs and SOC Managers from our user community. They aim to describe situations and processes in place within their respective companies and inspire readers to examine their own.</em></p>



<p class="wp-block-paragraph">–</p>



<p class="wp-block-paragraph">Edge systems (VPN gateways, firewalls, WAFs, reverse proxies, load balancers, IAM appliances, and remote access portals) are inherently exposed. They sit in front of identity, internal apps, and admin surfaces. They are also difficult to manage, and most organizations have more of them than they realize. Subsidiaries have their own stacks. Teams spin up temporary machines in cloud accounts. Old stuff lingers because “we’ll clean that up later.”</p>



<p class="wp-block-paragraph">Attackers love “later”.</p>



<p class="wp-block-paragraph">Every time an edge <a href="https://tracker.crowdsec.net/" target="_blank" rel="noreferrer noopener">CVE goes public</a>, teams fall into the same loop. Read the advisory, argue about CVSS, wait for a catalog update, and then decide whether the change window is worth it. That is understandable. Emergency changes can break production. But it is also risky. By the time you have a consensus, exploitation may already be underway.</p>



<p class="wp-block-paragraph">The better approach is simple. Start with reality, then move to exposure, then mitigate, then patch. You can do this without drama if your workflow is clear.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Why do edge vulnerabilities become incidents?</strong></h2>



<p class="wp-block-paragraph">Edge issues quickly become major incidents because they create a direct path to valuable outcomes:</p>



<ul class="wp-block-list">
<li>Remote code execution on an internet-facing system often leads to internal access.</li>



<li>Auth bypass can turn into an admin takeover.</li>



<li>SSRF on a gateway can expose cloud metadata, internal APIs, or secrets.</li>



<li>Weaknesses in edge products are often chainable. One bug is enough to get a foothold, then another gets privilege.</li>
</ul>



<p class="wp-block-paragraph">There is also a timing problem. Attackers move faster than most change processes. Within hours of a PoC being public, you can expect scanning at scale. Within days, you can expect mass exploitation attempts that are more reliable and more automated. Sometimes it is even faster than that.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Scanning is constant, exploitation is specific</strong></h2>



<p class="wp-block-paragraph">Your logs will fill with noise after a CVE drops. That does not mean you are compromised. It means you are on a target list.</p>



<p class="wp-block-paragraph">The distinction matters because it drives decisions. If you treat every scan spike like an incident, you will burn out your team and break production more often than you should. If you dismiss scans as noise, you may miss the point at which scanning becomes a compromise.</p>



<p class="wp-block-paragraph">Scanning tends to look like:</p>



<ul class="wp-block-list">
<li>Quick version checks</li>



<li>Broad requests across many paths</li>



<li>High volume from distributed sources</li>



<li>Low “intent” in payloads</li>
</ul>



<p class="wp-block-paragraph">Exploitation tends to look like:</p>



<ul class="wp-block-list">
<li>Repeated requests to a small set of paths tied to vulnerability</li>



<li>Payloads that attempt code execution, file writes, or auth bypass</li>



<li>Follow-on behavior, like attempts to log in, create sessions, or pull configs</li>



<li>Patterns that align with known indicators for a given exploit family</li>
</ul>



<p class="wp-block-paragraph">For a SOC, your goal is not perfection. It is to be fast and correct enough to prioritize action.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Start with the question that cuts through the noise</strong></h2>



<p class="wp-block-paragraph">When an edge CVE hits, ask two questions in this order:</p>



<ol class="wp-block-list">
<li>Is exploitation observed in the wild?</li>



<li>Are we exposed?</li>
</ol>



<p class="wp-block-paragraph">If exploitation is observed and you are exposed, you act immediately. You reduce exposure and add friction, even before you patch, because you need to buy time.</p>



<p class="wp-block-paragraph">If exploitation is not observed, you still do the exposure work and patch planning, but you avoid panic changes.</p>



<p class="wp-block-paragraph"><strong><a href="https://tracker.crowdsec.net/" target="_blank" rel="noreferrer noopener">CrowdSec Live Exploit Tracker</a></strong> is mandatory here because it provides a reality check. It is not a replacement for advisories or catalog entries. It is a way to answer “Is this happening now?” without guessing.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>The 60-minute response pattern</strong></h2>



<p class="wp-block-paragraph">Here is a practical way to run the first hour. This works for both CISO-level decision making and SOC-level execution.</p>



<h3 class="wp-block-heading"><strong>Minutes 0 to 10: confirm reality</strong></h3>



<ul class="wp-block-list">
<li>Confirm whether exploitation is observed in the wild.</li>



<li>If exploitation is observed, decide to mitigate now and patch as soon as feasible.</li>



<li>If exploitation is not observed, proceed with exposure assessment and prepare mitigations, but avoid disruptive changes until you have a reason.</li>
</ul>



<p class="wp-block-paragraph">This is where many teams lose time. They debate the severity instead of determining whether the attacker&#8217;s activity is real.</p>



<h3 class="wp-block-heading"><strong>Minutes 10 to 25: determine exposure</strong></h3>



<p class="wp-block-paragraph">Do not rely on one inventory source. Use multiple angles:</p>



<ul class="wp-block-list">
<li>public IP and DNS review</li>



<li>cloud security posture data</li>



<li>network scans of ingress points</li>



<li>configuration management records for edge products</li>
</ul>



<p class="wp-block-paragraph">Make sure you include:</p>



<ul class="wp-block-list">
<li>HA pairs and standby nodes</li>



<li>systems in regional sites</li>



<li>test systems that accidentally became public</li>



<li>legacy devices that were “temporary.”</li>
</ul>



<p class="wp-block-paragraph">Then answer:</p>



<ul class="wp-block-list">
<li>Is the vulnerable interface reachable from the internet?</li>



<li>Is it reachable from partner networks?</li>



<li>Is it reachable from user segments?</li>
</ul>



<p class="wp-block-paragraph">Exposure drives urgency. You can have a severe bug with low exposure. You can also have a moderate bug with high exposure that becomes your biggest risk.</p>



<h3 class="wp-block-heading"><strong>Minutes 25 to 45: reduce exposure and add friction</strong></h3>



<p class="wp-block-paragraph">If exploitation is observed and you have exposure, focus on making quick, safe changes that reduce risk.</p>



<p class="wp-block-paragraph">Start with exposure reduction:</p>



<ul class="wp-block-list">
<li>Restrict management interfaces to allowlists. Do it now.</li>



<li>Move admin access behind a VPN or a jump host.</li>



<li>Remove direct internet access where possible.</li>
</ul>



<p class="wp-block-paragraph">Then add friction:</p>



<ul class="wp-block-list">
<li>Apply WAF rules or reverse-proxy filtering if traffic passes through them.</li>



<li>Add IPS signatures or firewall blocklists where available.</li>



<li>Rate limit endpoints that attackers hammer during exploitation.</li>



<li>Tighten ACLs around the edge service and its management plane.</li>
</ul>



<p class="wp-block-paragraph">CrowdSec provides both <strong>WAF virtual patching rules</strong> and <strong>real-time-updated blocklists</strong> to address the latest vulnerabilities. These mitigation assets could be pulled automatically by your edge devices to respond instantly.</p>



<h3 class="wp-block-heading"><strong>Minutes 45 to 60: verify and watch</strong></h3>



<p class="wp-block-paragraph">Mitigation without verification is just hope.</p>



<ul class="wp-block-list">
<li>Confirm that logging is enabled and that it is shipped to your SIEM.</li>



<li>Create targeted detections for the known exploit paths and payload patterns.</li>



<li>Watch for post-exploitation indicators:
<ul class="wp-block-list">
<li>New admin sessions</li>



<li>New users or API tokens</li>



<li>Config changes</li>



<li>Unusual outbound connections from the appliance</li>



<li>Unexpected access to internal services</li>
</ul>
</li>
</ul>



<p class="wp-block-paragraph">This last step matters because some exploit chains succeed quickly and quietly. Your mitigations might be late for one asset but still protect the rest.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>How to communicate without drama</strong></h2>



<p class="wp-block-paragraph">CISOs get pulled into edge events because the risk is easy to explain and the consequences are high.</p>



<p class="wp-block-paragraph">A good update to leadership avoids raw CVE lists and vague reassurance. It includes:</p>



<ul class="wp-block-list">
<li>Exploitation status: observed or not observed</li>



<li>Exposure status: which assets are internet-facing and vulnerable</li>



<li>Mitigations deployed: what changed in the last hour</li>



<li>Patch plan: when and how, including constraints</li>



<li>Evidence: what the SOC sees after mitigation</li>
</ul>



<p class="wp-block-paragraph">This keeps the conversation grounded. It also helps you defend emergency actions later if you need to explain why a change freeze was overridden.</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading"><strong>Key takeaways</strong></h2>



<ul class="wp-block-list">
<li>Edge systems are high value because they are exposed and privileged.</li>



<li>Scanning is expected. Exploitation is what changes your response.</li>



<li>Start with “is exploitation observed” and “are we exposed.”</li>



<li>Reduce exposure first, then add filtering, then patch.</li>



<li>Report progress on exposure and controls, not on CV</li>
</ul>
]]></content:encoded>
            <category>Uncategorized</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/04/Blog-images-1575-×-871px-19.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[ButanGas Enhances Cybersecurity with CrowdSec to Protect LPG Distribution]]></title>
            <link>https://crowdsec.net/blog/securing-lpg-distribution-butangas-and-crowdsec</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/securing-lpg-distribution-butangas-and-crowdsec</guid>
            <pubDate>Tue, 07 Apr 2026 09:35:42 GMT</pubDate>
            <description><![CDATA[<p>ButanGas strengthens its IT security using CrowdSec’s real-time threat intelligence &#038; blocklists, ensuring secure, uninterrupted LPG distribution across Italy.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>ButanGas, a key player in the Italian energy sector, strengthens its cybersecurity posture with CrowdSec’s real-time threat intelligence and Platinum Blocklists, ensuring safe and uninterrupted liquified petroleum gas (LPG) distribution across the country.</strong></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph"><a href="https://butangas.it/en/" target="_blank" rel="noreferrer noopener">ButanGas</a> operates in the energy sector, specializing in liquified petroleum gas (LPG) storage and distribution. Its main mission is to guarantee a safe, reliable, and continuous supply throughout Italy. As part of the Dragan Group, a multinational energy organization active in seven countries, ButanGas maintains a strong national presence with more than <strong>20 offices and 9 LPG storage and bottling depots</strong>.</p>



<p class="wp-block-paragraph">Behind these operations lies a complex and extended digital infrastructure. Supporting over <strong>700 users across multiple countries</strong>, ButanGas <span style="box-sizing: border-box; margin: 0px; padding: 0px;">manages<strong> IT</strong></span><strong> and cybersecurity centrally for Italy and additional legal entities abroad</strong>. They require consistent protection, centralized visibility, and scalable security controls across geographies.</p>



<p class="wp-block-paragraph">At the helm of this strategy is the organization’s CIO and CISO, Riccardo Morandotti. He is responsible for IT strategy, cybersecurity governance, risk management, and digital transformation initiatives across the company.&nbsp;</p>



<h2 class="wp-block-heading"><strong>The challenge: Too much noise, not enough insight</strong></h2>



<p class="wp-block-paragraph">Like many <a href="https://www.crowdsec.net/solutions/oil-and-energy" target="_blank" rel="noreferrer noopener">companies in the energy sector</a>, ButanGas faced a constant stream of malicious activity targeting its network perimeter.</p>



<p class="wp-block-paragraph"><strong>Hundreds of suspicious connections were hitting their firewalls every day</strong>, generating significant noise but little actionable intelligence. While Sophos firewalls were already in place, the team lacked clear visibility into what was actually happening within their logs.</p>



<p class="wp-block-paragraph">They needed more than just protection; they needed clarity. The volume of alerts made it difficult to distinguish meaningful threats from <a href="https://www.crowdsec.net/glossary/internet-background-noise" target="_blank" rel="noreferrer noopener">background noise</a>, and the lack of enriched data limited their ability to take informed action. At the same time, ButanGas had a clear strategic priority: <strong>adopting European cybersecurity solutions without compromising on the quality of threat intelligence</strong>. </p>



<h2 class="wp-block-heading"><strong>Why CrowdSec: European roots, global intelligence</strong></h2>



<p class="wp-block-paragraph">After evaluating several threat intelligence providers, Riccardo identified CrowdSec as the right fit. He explains, “What stood out was that CrowdSec is a European-based company, which aligned perfectly with our strategic goal of using European security tools whenever possible. At the same time, CrowdSec collects data globally and provides insights that few other vendors can match.”&nbsp;&nbsp;</p>



<p class="wp-block-paragraph">Equally important was the ease of deployment. Within just one hour, CrowdSec was integrated into their existing environment, and results followed almost immediately. From day one, <strong>hundreds of malicious connections were blocked daily, with a threefold increase in detected suspicious traffic.</strong> At the same time, <strong>false positives remained extremely low, below 1%, ensuring legitimate traffic was never disrupted.</strong></p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><em>CrowdSec is simple to deploy, operate, and integrate, letting our team focus on response rather than tool management. Its reliable threat intelligence and accurate detections give us high‑confidence security decisions with minimal noise, making it a truly dependable part of our security architecture.</em></p>



<p class="wp-block-paragraph">&#8211; Riccardo Morandotti, CIO and CISO of ButanGas</p>
</blockquote>



<h2 class="wp-block-heading"><strong>A smarter, more proactive firewall</strong></h2>



<p class="wp-block-paragraph">ButanGas initially deployed CrowdSec on its most critical firewall, with plans to extend coverage to ten more. Even this first step delivered a significant impact.</p>



<p class="wp-block-paragraph">All malicious traffic is now blocked before reaching the network, drastically reducing exposure. <strong>Firewall logs have also become far more readable and actionable, with a clear distinction between legitimate and malicious traffic</strong>, eliminating the confusion that previously slowed down analysis.</p>



<p class="wp-block-paragraph">The real transformation, however, goes beyond inbound protection.</p>



<p class="wp-block-paragraph"><a href="https://doc.crowdsec.net/u/console/blocklists/integrations/firewall/" target="_blank" rel="noreferrer noopener">Through the integration between CrowdSec, Sophos Firewall, and their MDR service</a>, ButanGas now benefits from <strong>proactive outbound control</strong> as well. Internal endpoints are prevented from establishing connections with known malicious IPs, and any suspicious outbound attempt is immediately blocked. In more critical cases, <strong>compromised machines can be automatically isolated, helping contain threats before they spread or escalate</strong>.</p>



<p class="wp-block-paragraph">This capability has proven essential in limiting <a href="https://www.crowdsec.net/glossary/lateral-movement">lateral movement</a> and preventing potential data exfiltration, <strong>turning the firewall into an active enforcement point rather than a passive filter</strong>.</p>



<h2 class="wp-block-heading"><strong>From blocking threats to understanding them</strong></h2>



<p class="wp-block-paragraph">While automated blocking significantly improved their security posture, the most meaningful shift came from <strong>enhanced visibility</strong>.</p>



<p class="wp-block-paragraph">With <a href="https://www.crowdsec.net/cyber-threat-intelligence" target="_blank" rel="noreferrer noopener">CrowdSec’s IP enrichment capabilities</a>, ButanGas now gains contextual intelligence on every threat, <strong>ranging from geographic origin to behavior patterns and risk scoring</strong>. This allows their team to understand not just that an IP is malicious, but why.</p>



<p class="wp-block-paragraph">For a European organization, this is particularly valuable. They benefit from strong visibility into threats impacting European countries, while still leveraging <a href="https://www.crowdsec.net/our-data" target="_blank" rel="noreferrer noopener">globally collected intelligence</a> to stay ahead of emerging risks.</p>



<h2 class="wp-block-heading"><strong>Building a scalable security model</strong></h2>



<p class="wp-block-paragraph">With CrowdSec in place, ButanGas has transformed its firewall into a <strong>proactive, intelligence-driven security layer</strong>.</p>



<p class="wp-block-paragraph">Malicious traffic is stopped before it becomes a risk, visibility has improved dramatically, and the operational burden on the IT team has been reduced. All of this has been achieved without disrupting legitimate business activity.</p>



<p class="wp-block-paragraph">As deployments grow across more <a href="https://www.crowdsec.net/glossary/what-does-a-firewall-do" target="_blank" rel="noreferrer noopener">firewalls</a>, ButanGas is creating a scalable, unified security model. It protects a <strong>complex, multinational infrastructure while supporting the company’s mission to deliver safe, reliable energy</strong>.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
            <category>Success Story</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/03/245.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Protecting Your Web Applications with OWASP CRS and CrowdSec]]></title>
            <link>https://crowdsec.net/blog/protecting-your-web-applications-with-owasp-crs-and-crowdsec</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/protecting-your-web-applications-with-owasp-crs-and-crowdsec</guid>
            <pubDate>Mon, 23 Mar 2026 12:59:05 GMT</pubDate>
            <description><![CDATA[<p>Deploy the OWASP Core Rule Set (CRS) with CrowdSec to detect SQL injection, XSS, and other attack patterns. Learn how to install, tune, and enable blocking.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">If you&#8217;re already running <a href="https://www.crowdsec.net/solutions/application-security" target="_blank" rel="noreferrer noopener">CrowdSec&#8217;s AppSec</a> component with virtual patching rules, you&#8217;re well protected against known CVEs. But what about the attacks that don&#8217;t target a specific vulnerability: <strong>the SQL injections, cross-site scripting attempts, and command injections that probe your applications every day?</strong></p>



<p class="wp-block-paragraph">That&#8217;s where the OWASP Core Rule Set (CRS) comes in. <a href="https://www.crowdsec.net/blog/crowdsec-waf-the-collaborative-future-of-web-application-security" target="_blank" rel="noreferrer noopener">CrowdSec supports CRS natively</a> through the <a href="https://github.com/corazawaf/coraza" target="_blank" rel="noreferrer noopener">Coraza</a> WAF engine, giving you broad attack pattern detection alongside your existing virtual patching setup.</p>



<p class="wp-block-paragraph">In this post, we&#8217;ll walk through what CRS offers, how to deploy it, and how to tune it for your applications.</p>



<h2 class="wp-block-heading">What is OWASP Core Rule Set (CRS)?</h2>



<p class="wp-block-paragraph">The <a href="https://coreruleset.org/" target="_blank" rel="noreferrer noopener">OWASP Core Rule Set</a> is among the most widely deployed sets of WAF rules worldwide. Actively maintained by the OWASP community, it provides generic attack detection against:</p>



<ul class="wp-block-list">
<li>SQL injection</li>



<li>Cross-site scripting</li>



<li>Command injection</li>



<li>Path traversal</li>



<li>And more</li>
</ul>



<p class="wp-block-paragraph">Unlike virtual patching, which targets specific known CVEs, the CRS uses a more generic approach to detect exploitation of still-unknown vulnerabilities.</p>



<p class="wp-block-paragraph">This comes at a cost: <strong>a higher chance of false positives depending on the application.</strong></p>



<p class="wp-block-paragraph">Using both CRS and virtual patching rules is complementary: virtual patching rules for precise targeting of known vulnerabilities without the need for any configuration, and CRS to catch everything else.</p>



<h2 class="wp-block-heading">Using the CRS with CrowdSec</h2>



<p class="wp-block-paragraph">CrowdSec offers two deployment modes for CRS: <strong>out-of-band or in-band.</strong></p>



<h3 class="wp-block-heading">Out-of-band (non-blocking)</h3>



<p class="wp-block-paragraph">In this mode, CRS rules analyze your traffic asynchronously. No request is ever blocked by a single rule match. Instead, events are generated and fed into <a href="https://app.crowdsec.net/hub/scenarios" target="_blank" rel="noreferrer noopener">CrowdSec&#8217;s scenario engine</a>. If an IP triggers too many different rule violations in a short timespan, <strong>it gets banned</strong>.</p>



<p class="wp-block-paragraph">This is the recommended starting point because it lets you:</p>



<ul class="wp-block-list">
<li>See what CRS detects in your traffic without disrupting legitimate users</li>



<li>Identify false positives and tune the CRS accordingly</li>
</ul>



<h3 class="wp-block-heading">In-band (blocking)</h3>



<p class="wp-block-paragraph">In blocking mode, requests that reach the CRS threshold for blocking are <strong>dropped immediately</strong>. Alerts are generated by default, <strong>giving you visibility into what is blocked</strong>.</p>



<h2 class="wp-block-heading">Getting Started: Installation</h2>



<h3 class="wp-block-heading">Prerequisites</h3>



<p class="wp-block-paragraph">You need a working CrowdSec setup with a WAF-capable remediation component. This includes the Nginx/OpenResty bouncer, Traefik bouncer, HAProxy bouncer, or any other bouncer (also known as <a href="https://doc.crowdsec.net/u/bouncers/intro" target="_blank" rel="noreferrer noopener">Remediation Component</a>) that supports the AppSec protocol.</p>



<h3 class="wp-block-heading">Step 1: Install the CRS collection</h3>



<p class="wp-block-paragraph">For non-blocking mode:</p>



<pre><code class="language-bash">cscli collections install crowdsecurity/appsec-crs</code></pre>



<p class="wp-block-paragraph">This installs:</p>



<ul class="wp-block-list">
<li><code>crowdsecurity/crs</code>: the configuration that loads CRS rules in out-of-band mode</li>



<li><code>crowdsecurity/crowdsec-appsec-outofband</code>: a scenario that bans IPs after 5+ out-of-band rule violations to offer a base level of protection, even if the rules themselves do not block anything directly.</li>
</ul>



<h3 class="wp-block-heading">Step 2: Configure the acquisition</h3>



<p class="wp-block-paragraph">Add the CRS config to your acquisition file (e.g., <code>/etc/crowdsec/acquis.d/waf.yaml</code>):</p>



<pre><code class="language-yaml">source: appsec
appsec-configs:
  - crowdsecurity/crs
labels:
  type: appsec</code></pre>



<p class="wp-block-paragraph">If you already have an acquisition file for AppSec with other configs (like virtual patching), simply add <code>crowdsecurity/crs</code> to the existing <code>appsec-configs</code> list.</p>



<h3 class="wp-block-heading">Step 3: Enable per-match alerting</h3>



<p class="wp-block-paragraph">By default, non-blocking mode doesn&#8217;t generate an alert for every individual rule match. If you want visibility into each match (useful during the tuning phase), create <code>/etc/crowdsec/appsec-configs/crs-alerting.yaml</code>:</p>



<pre><code class="language-yaml">name: custom/crs-alerting
on_match:
  - filter: IsOutBand == true
    apply:
      - SendAlert()
      - CancelEvent()
</code></pre>



<p class="wp-block-paragraph">The <code>CancelEvent()</code> directive is optional: if set, no event is generated for the scenario engine, meaning CrowdSec won&#8217;t take automated decisions based on these matches. This is useful if you want alerts for monitoring but don&#8217;t want any automated bans yet.</p>



<p class="wp-block-paragraph">Then add it to your acquisition:</p>



<pre><code class="language-yaml">source: appsec
appsec-configs:
  - crowdsecurity/crs
  - custom/crs-alerting
labels:
  type: appsec
</code></pre>



<p class="wp-block-paragraph">Even though an alert is generated, because the rules are loaded out-of-band, nothing will be blocked, but you will still know exactly what is matching.</p>



<h3 class="wp-block-heading">Step 4: Restart CrowdSec</h3>



<pre><code class="language-bash">sudo systemctl restart crowdsec</code></pre>



<h3 class="wp-block-heading">Step 5: Confirm it&#8217;s working</h3>



<p class="wp-block-paragraph">Now, we can see if everything is working as it should. Let&#8217;s exploit a (fake) SQL injection:</p>



<pre><code class="language-bash">$ curl "localhost/?a='+OR+'1'='1" -i
HTTP/1.1 200 OK
...
</code></pre>



<p class="wp-block-paragraph">Our request was not blocked: it&#8217;s expected as the CRS is configured in non-blocking mode.</p>



<p class="wp-block-paragraph">If we look at the list of alerts in crowdsec with <code>cscli alerts list</code> and <code>cscli alerts inspectd -d</code>, We can indeed see the request was detected by the CRS:</p>



<pre><code class="language-bash">root@instance-20240401-2335:~# cscli alerts inspect -d 105901

################################################################################################

 - ID           : 105901
 - Date         : 2026-03-12T09:44:32Z
 - Machine      : 717704f5186c4314928c2060bf5169f32E1tgFLtep049JcD
 - Simulation   : false
 - Remediation  : false
 - Reason       : anomaly score out-of-band: sql_injection: 10, anomaly: 10,
 - Events Count : 4
 - Scope:Value  : Ip:127.0.0.1
 - Country      :
 - AS           :
 - Begin        : 2026-03-12T09:44:32Z
 - End          : 2026-03-12T09:44:32Z
 - UUID         : 8cf71673-81d7-4ba0-b211-0d415a0f51fd


 - Context  :
╭───────────────┬─────────────────────────────────────────────────────╮
│      Key      │                        Value                        │
├───────────────┼─────────────────────────────────────────────────────┤
│ ja4h          │ ge11nn020000_cf69e1861692_000000000000_000000000000 │
│ matched_zones │ ARGS.a                                              │
│ method        │ GET                                                 │
│ msg           │ SQL Injection Attack Detected via libinjection      │
│ name          │ native_rule:942100                                  │
│ target_uri    │ /?a='+OR+'1'='1                                     │
│ user_agent    │ curl/7.81.0                                         │
╰───────────────┴─────────────────────────────────────────────────────╯

 - Events  :

- Date: 2026-03-12 09:44:32 +0000 UTC
╭───────────────┬──────────────────────────╮
│      Key      │           Value          │
├───────────────┼──────────────────────────┤
│ data          │                          │
│ matched_zones │ REQBODY_PROCESSOR        │
│ message       │ Enabling body inspection │
│ rule_name     │ native_rule:901340       │
│ target_fqdn   │ localhost                │
│ uri           │ /?a='+OR+'1'='1          │
╰───────────────┴──────────────────────────╯

- Date: 2026-03-12 09:44:32 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────────╮
│      Key      │                         Value                        │
├───────────────┼──────────────────────────────────────────────────────┤
│ data          │ Matched Data: s&sos found within ARGS:a: ' OR '1'='1 │
│ matched_zones │ ARGS.a,ARGS.a                                        │
│ message       │ SQL Injection Attack Detected via libinjection       │
│ rule_name     │ native_rule:942100                                   │
│ target_fqdn   │ localhost                                            │
│ uri           │ /?a='+OR+'1'='1                                      │
╰───────────────┴──────────────────────────────────────────────────────╯

- Date: 2026-03-12 09:44:32 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────╮
│      Key      │                       Value                      │
├───────────────┼──────────────────────────────────────────────────┤
│ data          │                                                  │
│ matched_zones │ TX.blocking_inbound_anomaly_score                │
│ message       │ Inbound Anomaly Score Exceeded (Total Score: 10) │
│ rule_name     │ native_rule:949110                               │
│ target_fqdn   │ localhost                                        │
│ uri           │ /?a='+OR+'1'='1                                  │
╰───────────────┴──────────────────────────────────────────────────╯

- Date: 2026-03-12 09:44:32 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────────────────╮
│      Key      │                             Value                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ data          │                                                              │
│ matched_zones │ UNKNOWN                                                      │
│ message       │ Anomaly Scores: (Inbound Scores: blocking=10, detection=10,  │
│               │ per_pl=10-0-0-0, threshold=5) - (Outbound Scores:            │
│               │ blocking=0, detection=0, per_pl=0-0-0-0, threshold=4) -      │
│               │ (SQLI=10, XSS=0, RFI=0, LFI=0, RCE=0, PHPI=0, HTTP=0,        │
│               │ SESS=0, COMBINED_SCORE=10)                                   │
│ rule_name     │ native_rule:980170                                           │
│ target_fqdn   │ localhost                                                    │
│ uri           │ /?a='+OR+'1'='1                                              │
╰───────────────┴──────────────────────────────────────────────────────────────╯
</code></pre>



<p class="wp-block-paragraph">A note about the reason given for the block: CRS works with a threshold system. Each rule that matches on the request will increase by some value a global score, and if the global score exceeds a preconfigured threshold (5 by default), the request will be blocked.</p>



<p class="wp-block-paragraph">This is why the reason appears as <code>anomaly score out-of-band: sql_injection: 10, anomaly: 10,.</code></p>



<p class="wp-block-paragraph">Crowdsec automatically extracts the scoring information from the CRS to give you, at first glance, details about what was wrong with the request.</p>



<h3 class="wp-block-heading">Switching to blocking mode</h3>



<p class="wp-block-paragraph">Once you&#8217;re confident in your CRS tuning, switch to blocking mode:</p>



<pre><code class="language-bash">cscli collections install crowdsecurity/appsec-crs-inband</code></pre>



<p class="wp-block-paragraph">Update your acquisition:</p>



<pre><code class="language-yaml">source: appsec
appsec-configs:
  - crowdsecurity/crs-inband
labels:
  type: appsec
</code></pre>



<p class="wp-block-paragraph">In this mode, any request that reaches the default CRS threshold is dropped, and alerts are generated automatically.</p>



<p class="wp-block-paragraph">Let&#8217;s retry the same request as previously:</p>



<pre><code class="language-bash">$ curl "localhost/?a='+OR+'1'='1" -i
HTTP/1.1 403 Forbidden
...
</code></pre>



<p class="wp-block-paragraph">This time, the request actually got blocked!</p>



<p class="wp-block-paragraph">Again, we can inspect the alert:</p>



<pre><code class="language-bash">root@instance-20240401-2335:~# cscli alerts inspect -d 105902

################################################################################################

 - ID           : 105902
 - Date         : 2026-03-12T09:49:04Z
 - Machine      : 717704f5186c4314928c2060bf5169f32E1tgFLtep049JcD
 - Simulation   : false
 - Remediation  : false
 - Reason       : anomaly score block: sql_injection: 10, anomaly: 10,
 - Events Count : 4
 - Scope:Value  : Ip:127.0.0.1
 - Country      :
 - AS           :
 - Begin        : 2026-03-12T09:49:03Z
 - End          : 2026-03-12T09:49:03Z
 - UUID         : 7ef38529-5e7e-4d2e-9e21-24ec7a89a1ee


 - Context  :
╭───────────────┬─────────────────────────────────────────────────────╮
│      Key      │                        Value                        │
├───────────────┼─────────────────────────────────────────────────────┤
│ ja4h          │ ge11nn020000_cf69e1861692_000000000000_000000000000 │
│ matched_zones │ ARGS.a                                              │
│ method        │ GET                                                 │
│ msg           │ SQL Injection Attack Detected via libinjection      │
│ name          │ native_rule:942100                                  │
│ target_uri    │ /?a='+OR+'1'='1                                     │
│ user_agent    │ curl/7.81.0                                         │
╰───────────────┴─────────────────────────────────────────────────────╯

 - Events  :

- Date: 2026-03-12 09:49:03 +0000 UTC
╭───────────────┬──────────────────────────╮
│      Key      │           Value          │
├───────────────┼──────────────────────────┤
│ data          │                          │
│ matched_zones │ REQBODY_PROCESSOR        │
│ message       │ Enabling body inspection │
│ rule_name     │ native_rule:901340       │
│ target_fqdn   │ localhost                │
│ uri           │ /?a='+OR+'1'='1          │
╰───────────────┴──────────────────────────╯

- Date: 2026-03-12 09:49:03 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────────╮
│      Key      │                         Value                        │
├───────────────┼──────────────────────────────────────────────────────┤
│ data          │ Matched Data: s&sos found within ARGS:a: ' OR '1'='1 │
│ matched_zones │ ARGS.a,ARGS.a                                        │
│ message       │ SQL Injection Attack Detected via libinjection       │
│ rule_name     │ native_rule:942100                                   │
│ target_fqdn   │ localhost                                            │
│ uri           │ /?a='+OR+'1'='1                                      │
╰───────────────┴──────────────────────────────────────────────────────╯

- Date: 2026-03-12 09:49:03 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────╮
│      Key      │                       Value                      │
├───────────────┼──────────────────────────────────────────────────┤
│ data          │                                                  │
│ matched_zones │ TX.blocking_inbound_anomaly_score                │
│ message       │ Inbound Anomaly Score Exceeded (Total Score: 10) │
│ rule_name     │ native_rule:949110                               │
│ target_fqdn   │ localhost                                        │
│ uri           │ /?a='+OR+'1'='1                                  │
╰───────────────┴──────────────────────────────────────────────────╯

- Date: 2026-03-12 09:49:03 +0000 UTC
╭───────────────┬──────────────────────────────────────────────────────────────╮
│      Key      │                             Value                            │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ data          │                                                              │
│ matched_zones │ UNKNOWN                                                      │
│ message       │ Anomaly Scores: (Inbound Scores: blocking=10, detection=10,  │
│               │ per_pl=10-0-0-0, threshold=5) - (Outbound Scores:            │
│               │ blocking=0, detection=0, per_pl=0-0-0-0, threshold=4) -      │
│               │ (SQLI=10, XSS=0, RFI=0, LFI=0, RCE=0, PHPI=0, HTTP=0,        │
│               │ SESS=0, COMBINED_SCORE=10)                                   │
│ rule_name     │ native_rule:980170                                           │
│ target_fqdn   │ localhost                                                    │
│ uri           │ /?a='+OR+'1'='1                                              │
╰───────────────┴──────────────────────────────────────────────────────────────╯
</code></pre>



<p class="wp-block-paragraph">It&#8217;s almost the same, except for the reason: <code>anomaly score block: sql_injection: 10, anomaly: 10,.</code></p>



<p class="wp-block-paragraph">The presence of <code>block</code> means the request was actually blocked and never reached the target application.</p>



<h2 class="wp-block-heading">Customizing CRS for Your Applications</h2>



<p class="wp-block-paragraph">Out of the box, CRS is tuned for broad coverage. For any moderately complex application, you&#8217;ll likely need some customization to eliminate false positives. <a href="https://www.crowdsec.net/blog/crowdsec-waf-in-action-real-world-use-cases" target="_blank" rel="noreferrer noopener">CrowdSec uses the CRS plugin system for all customizations</a>, keeping your changes separate from the CRS rules themselves.</p>



<h3 class="wp-block-heading">CRS Plugins for Popular Applications</h3>



<p class="wp-block-paragraph">The CRS community maintains exclusion plugins for popular web applications. These plugins contain pre-built rule exclusions that prevent common false positives for each application.</p>



<p class="wp-block-paragraph">The following plugins are available directly from the <a href="https://app.crowdsec.net/hub" target="_blank" rel="noreferrer noopener">CrowdSec Hub</a>:</p>



<ul class="wp-block-list">
<li>WordPress</li>



<li>NextCloud</li>



<li>PHPMyAdmin</li>



<li>CPanel</li>



<li>Drupal</li>



<li>PHPBB</li>



<li>DokuWiki</li>



<li>Xenforo</li>
</ul>



<h3 class="wp-block-heading">Installing a plugin</h3>



<pre><code class="language-bash">cscli collections install crowdsecurity/appsec-crs-exclusion-plugin-<application-name>
</code></pre>



<p class="wp-block-paragraph">For example, to install the WordPress plugin:</p>



<pre><code class="language-yaml">cscli collections install crowdsecurity/appsec-crs-exclusion-plugin-wordpress</code></pre>



<p class="wp-block-paragraph">Once installed, the plugin loads automatically after a CrowdSec restart.</p>



<p class="wp-block-paragraph">The plugins are updated automatically, like any other Hub items, so you will receive upstream changes automatically.</p>



<p class="wp-block-paragraph">You can also manually deploy custom plugins; refer to our <a href="https://docs.crowdsec.net/docs/next/appsec/crs/plugin_support#manually-installing-a-plugin" target="_blank" rel="noreferrer noopener">documentation</a>.</p>



<h2 class="wp-block-heading">Putting It All Together: Defense in Depth</h2>



<p class="wp-block-paragraph">Here&#8217;s how a complete AppSec configuration might look, combining virtual patching and CRS:</p>



<pre><code class="language-yaml"># /etc/crowdsec/acquis.d/waf.yaml
source: appsec
appsec-configs:
  - crowdsecurity/appsec-default # Virtual patching (in-band)
  - crowdsecurity/crs # OWASP CRS (out-of-band)
labels:
  type: appsec
</code></pre>



<p class="wp-block-paragraph">With this setup:</p>



<ol class="wp-block-list">
<li><strong>Virtual patching rules</strong> run in-band, immediately blocking requests that match known CVE patterns</li>



<li><strong>CRS rules</strong> run out-of-band, detecting broad attack patterns and feeding events into CrowdSec&#8217;s scenario engine</li>



<li><strong>IPs that trigger multiple CRS violations</strong> get banned automatically through the scenario system</li>



<li><strong>CrowdSec&#8217;s threat intelligence</strong> adds another layer, sharing decisions across the community</li>
</ol>



<p class="wp-block-paragraph">Once you&#8217;ve tuned CRS and are confident in your configuration, you can switch to the in-band CRS collection for immediate blocking with the following configuration:</p>



<pre><code class="language-yaml"># /etc/crowdsec/acquis.d/waf.yaml
source: appsec
appsec-configs:
  - crowdsecurity/appsec-default # Virtual patching (in-band)
  - crowdsecurity/crs-inband # OWASP CRS (in-band)
labels:
  type: appsec
</code></pre>



<h2 class="wp-block-heading">Next Steps</h2>



<p class="wp-block-paragraph">Now that you have deployed CRS with CrowdSec, here are some more resources and tools you can use to better protect your web applications:&nbsp;&nbsp;</p>



<ul class="wp-block-list">
<li>Browse the <a href="https://docs.crowdsec.net/docs/appsec/crs/intro" target="_blank" rel="noreferrer noopener">CRS documentation</a> for detailed reference</li>



<li>Search the <a href="https://app.crowdsec.net/hub" target="_blank" rel="noreferrer noopener">CrowdSec Hub</a> for available CRS plugins</li>



<li>Check out the <a href="https://docs.crowdsec.net/docs/appsec/intro" target="_blank" rel="noreferrer noopener">CrowdSec WAF quickstart guides</a> if you haven&#8217;t set up the AppSec component yet</li>



<li>Join the <a href="https://discourse.crowdsec.net/" target="_blank" rel="noreferrer noopener">CrowdSec community</a> to share your CRS tuning experiences</li>
</ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
            <category>Tutorial</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/03/242-1.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[The future of CrowdSec support in Kubernetes]]></title>
            <link>https://crowdsec.net/blog/crowdsec-support-kubernetes-ingress-nginx</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/crowdsec-support-kubernetes-ingress-nginx</guid>
            <pubDate>Tue, 17 Mar 2026 11:04:34 GMT</pubDate>
            <description><![CDATA[<p>Explore CrowdSec support for Kubernetes, Ingress-NGINX deprecation, and how to migrate to Gateway API using Traefik, HAProxy, and Envoy.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://kubernetes.io/" target="_blank" rel="noreferrer noopener">Kubernetes</a> networking is evolving quickly, and with it, the way security integrations are deployed. One <span style="box-sizing: border-box; margin: 0px; padding: 0px;">change currently affecting many users is the announced <strong>deprecation of Ingress-NGINX</strong></span>. Because a large portion of Kubernetes deployments rely on it today, <strong>we want to clarify how CrowdSec support will evolve and what users can expect</strong>.</p>



<h2 class="wp-block-heading">Supporting Ingress-NGINX during its final lifecycle</h2>



<p class="wp-block-paragraph"><a href="https://www.crowdsec.net/blog/kubernetes-crowdsec-integration" target="_blank" rel="noreferrer noopener">CrowdSec currently integrates with Ingress-NGINX through a dedicated image that embeds CrowdSec remediation capabilities</a>. This integration will remain available for the last supported versions of Ingress-NGINX.</p>



<p class="wp-block-paragraph">First, we need to underline that CrowdSec requires a dedicated image. CrowdSec remediation in Ingress-NGINX relies on Lua to execute the blocking logic. Lua support was removed from the official Ingress-NGINX image, which means CrowdSec cannot run on the upstream image anymore. As a result, the CrowdSec integration requires an alternate image that restores the Lua capability needed by the remediation engine. This extended support should be viewed as a transitional measure, providing ample time for a smooth migration to more future-proof and robust architectures.</p>



<p class="wp-block-paragraph">For users evaluating alternatives today, it is also worth noting that <a href="https://www.crowdsec.net/search?prod_crowdsec%5Bquery%5D=kuberne" target="_blank" rel="noreferrer noopener">CrowdSec already supports Traefik and HAProxy as ingress controllers</a>.</p>



<p class="wp-block-paragraph">While third parties sometimes provide support for this in an open-source capacity, we remain fully committed to the CrowdSec components and features, ensuring their continued support and the introduction of new functionality over time. We also maintain and develop <a href="https://doc.crowdsec.net/" target="_blank" rel="noreferrer noopener">documentation</a> for the tools used by the community.</p>



<h2 class="wp-block-heading">The shift from Ingress-NGINX to Gateway API in Kubernetes</h2>



<p class="wp-block-paragraph">The <a href="https://gateway-api.sigs.k8s.io/guides/getting-started/migrating-from-ingress/" target="_blank" rel="noreferrer noopener">Kubernetes shift toward Gateway API</a> beyond the lifecycle of Ingress-NGINX, Kubernetes itself is signalling a broader shift in how north-south traffic should be handled.</p>



<p class="wp-block-paragraph">The Kubernetes ecosystem is increasingly converging around the Gateway API specification. This specification introduces the Gateway API as a more flexible and extensible way to manage traffic entering a cluster.</p>



<p class="wp-block-paragraph">Several implementations of the Gateway API specification already exist, and a number of them are built on <a href="https://app.crowdsec.net/hub/remediation-components" target="_blank" rel="noreferrer noopener">technologies that already support CrowdSec remediation mechanisms</a>. Because of this, we see the Gateway API ecosystem as a natural evolution path for CrowdSec users running Kubernetes clusters. Today, solutions such as <strong>Traefik, HAProxy, and Envoy can already operate with CrowdSec remediation, meaning that when they are used as Gateway API implementations</strong>. They can immediately benefit from CrowdSec to help secure infrastructure.</p>



<p class="wp-block-paragraph">We are committed to supporting both established and emerging API gateway solutions with meaningful adoption. Traefik and <a href="https://www.crowdsec.net/blog/the-haproxy-bouncer-is-out" target="_blank" rel="noreferrer noopener">HAProxy</a> are strong examples of this today, and multiple Envoy-based community implementations are also evolving in this space. We closely monitor these projects as they mature toward production readiness, so that CrowdSec users can rely on them with confidence.</p>



<h2 class="wp-block-heading">Next Steps for Kubernetes: Transitioning to Gateway API with CrowdSec</h2>



<p class="wp-block-paragraph">Our goal is to help users navigate this transition as smoothly as possible.</p>



<p class="wp-block-paragraph"><a href="https://www.crowdsec.net/integrations" target="_blank" rel="noreferrer noopener">Several Gateway API integrations</a> already exist, many of them developed by the community. When the underlying technology supports CrowdSec remediation, as is the case with Traefik, integration is straightforward. Our focus is now on validating these solutions and providing the necessary testing and documentation so they can be easily adopted and reliably used by the community.</p>



<p class="wp-block-paragraph">In parallel, we are committed to producing documentation that will guide users through the transition from traditional ingress controllers to API Gateway-based architectures.</p>



<p class="wp-block-paragraph">This will include practical migration guidance, configuration examples, and recommendations on which Gateway implementations work well with CrowdSec.&nbsp;</p>



<h2 class="wp-block-heading">Looking forward</h2>



<p class="wp-block-paragraph">Ingress controllers played a key role in the Kubernetes ecosystem for many years, but the landscape is evolving. As Kubernetes provides a new Gateway API, users can run CrowdSec alongside it.</p>



<p class="wp-block-paragraph">In the meantime, <strong>users relying on Ingress-NGINX can continue using CrowdSec remediation with the latest supported versions</strong>. However, teams planning new deployments or long-term architectures are encouraged to start considering alternatives, such as adopting the Gateway API or using another supported ingress controller, since Ingress-NGINX is the only controller being gradually phased out.</p>



<p class="wp-block-paragraph">We are closely monitoring the Gateway API ecosystem and its evolution. Our goal is to support solutions with a strong, growing user base, ensuring that <strong>CrowdSec integrates where it can deliver the most value</strong>.&nbsp;</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
            <category>Inside CrowdSec</category>
            <category>Integrations</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/03/243.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Vulnerability 101: Understanding Security Weaknesses]]></title>
            <link>https://crowdsec.net/blog/vulnerability-101-understanding-security-weaknesses</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/vulnerability-101-understanding-security-weaknesses</guid>
            <pubDate>Thu, 05 Mar 2026 08:44:54 GMT</pubDate>
            <description><![CDATA[<p>Learn the difference between vulnerabilities, threats, and risks, and how understanding their lifecycle helps prevent security incidents.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">Around security discussions, you&#8217;ve probably noticed the words &#8220;vulnerability,&#8221; &#8220;threat,&#8221; and &#8220;risk&#8221; being used more or less interchangeably. They&#8217;re not. Mixing them up isn&#8217;t just imprecise; it leads to bad prioritization, wasted effort, and the occasional 3 AM incident that could have been avoided.&nbsp;</p>



<p class="wp-block-paragraph">This article breaks down what each term actually means, how vulnerabilities move through their lifecycle, and what that means for you as a developer or maintainer.</p>



<h2 class="wp-block-heading">What even is a vulnerability?</h2>



<p class="wp-block-paragraph">At its core, a <strong>vulnerability is a weakness in a system that someone could exploit</strong>. <a href="https://www.crowdsec.net/blog/5-common-vulnerability-myths" target="_blank" rel="noreferrer noopener">It doesn&#8217;t have to be a dramatic zero-day in a cryptography library.</a> It can be something simply mundane, like a forgotten admin endpoint with default credentials, or a dependency that hasn&#8217;t been updated in two years.</p>



<p class="wp-block-paragraph">Vulnerabilities tend to fall into a few buckets:</p>



<ul class="wp-block-list">
<li><strong>Software bugs:</strong> Logic errors, memory issues, improper input handling, the kinds of things that slip through code review and only reveal themselves under the right (wrong) conditions.</li>



<li><strong>Misconfiguration: </strong><a href="https://www.crowdsec.net/glossary/port-security" target="_blank" rel="noreferrer noopener">Open ports that shouldn&#8217;t be open</a>, overly permissive IAM roles, debug endpoints left on in production. Config issues are responsible for a huge proportion of real-world breaches.</li>



<li><strong>Human factors: </strong>Weak passwords, phishing susceptibility, and the developer who commits an API key because they were in a hurry. This category is frustratingly durable.</li>
</ul>



<p class="wp-block-paragraph">The key thing to understand: a vulnerability sitting quietly in your codebase isn&#8217;t actively hurting anyone. It only becomes a problem when someone finds it and does something with it.</p>



<h2 class="wp-block-heading">Vulnerability vs. threat vs. risk</h2>



<p class="wp-block-paragraph">These three concepts form a chain, and understanding the chain is what lets you make sensible decisions about where to spend your time.</p>



<ul class="wp-block-list">
<li>Vulnerability is the weakness (an unpatched library, a misconfigured firewall rule).</li>



<li>A threat is the actor or mechanism that could exploit it (an attacker, an automated scanner sweeping the internet).</li>



<li>Risk is what you&#8217;re actually trying to manage: the likelihood that the threat exploits the vulnerability, multiplied by the impact if it does.</li>
</ul>



<p class="wp-block-paragraph">A concrete example: say your app has an admin panel exposed to the internet with default credentials still set. That&#8217;s your vulnerability. The threat is anyone running credential-stuffing tools against it, and there are plenty of those running 24/7. The risk is high because both the likelihood and the potential impact (full admin access) are significant.</p>



<p class="wp-block-paragraph">Contrast that with a theoretical XSS in an internal tool used by two people on your team. Still a vulnerability, much lower risk. This framing is how you avoid treating every <a href="https://tracker.crowdsec.net/cves" target="_blank" rel="noreferrer noopener">CVE</a> as an alarm fire.</p>



<h2 class="wp-block-heading">The vulnerability lifecycle</h2>



<p class="wp-block-paragraph">Vulnerabilities don&#8217;t just appear and disappear. They go through a lifecycle, and where you are in that lifecycle dramatically affects how much danger you&#8217;re in.</p>



<h3 class="wp-block-heading">Discovery</h3>



<p class="wp-block-paragraph">Someone finds the vulnerability: a security researcher, a developer doing a code review, a bug bounty hunter, or an attacker. The discoverer&#8217;s intentions shape everything that happens next.</p>



<h3 class="wp-block-heading">Disclosure</h3>



<p class="wp-block-paragraph">How the vulnerability gets reported matters a lot. There are three main patterns in the wild:</p>



<ul class="wp-block-list">
<li><strong>Responsible disclosure: </strong>The researcher contacts the vendor privately and gives them time to fix it before going public.</li>



<li><strong>Coordinated disclosure:</strong> A deadline is set, typically 90 days, after which the details go public regardless of whether a patch exists. This is now the dominant approach, popularized by Google Project Zero and CERT/CC. It puts real pressure on vendors to actually ship fixes rather than quietly hoping nobody notices.</li>



<li><strong>Full disclosure:</strong> Everything goes public immediately. Controversial, but the argument is that it forces faster action and gives defenders the information they need without waiting on vendor timelines.</li>
</ul>



<h3 class="wp-block-heading">The exploitation window</h3>



<p class="wp-block-paragraph">This is where things get uncomfortable. Between when a <a href="https://www.crowdsec.net/vulntracking-report" target="_blank" rel="noreferrer noopener">vulnerability is discovered</a> (or disclosed) and when it&#8217;s actually patched across affected systems, there&#8217;s a window of exposure. For zero-days, vulnerabilities being actively exploited before any patch exists, that window starts the moment the attacker finds it.</p>



<p class="wp-block-paragraph">The exploitation window is why patch speed matters so much. It&#8217;s not theoretical. <strong>Once a CVE drops with a working proof-of-concept attached, mass exploitation often starts within hours.</strong></p>



<h3 class="wp-block-heading">Patch and remediation</h3>



<p class="wp-block-paragraph">The vendor ships a fix. In the open source world, this usually means a PR gets merged, a new version gets tagged, and a CVE gets assigned with a CVSS score that tells you how severe the issue is considered to be. CVSS isn&#8217;t perfect; it doesn&#8217;t account for your specific environment, but it&#8217;s a useful first filter for prioritization.</p>



<h3 class="wp-block-heading">Resolution and monitoring</h3>



<p class="wp-block-paragraph">Applying the patch is not the end of the story. <strong>You need to verify it&#8217;s actually deployed everywhere it needs to be,</strong> and keep watching for signs that exploitation happened before you patched. Logs, alerts, anomaly detection, and the operational work that actually catches incidents.</p>



<h2 class="wp-block-heading">How vulnerabilities get found</h2>



<p class="wp-block-paragraph">In practice, most vulnerabilities surface through one of these channels:</p>



<ul class="wp-block-list">
<li><strong>Security audits and code review: </strong>Organizations <a href="https://www.crowdsec.net/glossary/what-is-proactive-cybersecurity" target="_blank" rel="noreferrer noopener">proactively scan</a> their own systems and codebases for weaknesses.</li>



<li><strong>Bug bounty programs:</strong> External researchers are incentivized to find and responsibly report vulnerabilities.</li>



<li><strong>Accidental discovery:</strong> Users or developers notice unexpected behavior that points to a weakness.</li>



<li><strong>Malicious discovery:</strong> Attackers actively probe systems to find exploitable vulnerabilities.</li>
</ul>



<h2 class="wp-block-heading">When a vulnerability becomes an incident</h2>



<p class="wp-block-paragraph">Most vulnerabilities never turn into incidents. The ones that do tend to share a common thread: <strong>they were known, there was a fix available, and nobody got around to applying it.</strong></p>



<p class="wp-block-paragraph">An incident happens when a vulnerability gets actively exploited and causes real harm, data exfiltration, services taken down, and credentials compromised. At that point, you&#8217;re no longer in vulnerability management territory; you&#8217;re in incident response, which is a different and much more stressful.</p>



<p class="wp-block-paragraph">Staying on the right side of that line comes down to a few practical habits: patch quickly (especially anything with a high CVSS score or active exploitation reports), <a href="https://www.crowdsec.net/blog/am-i-under-attack" target="_blank" rel="noreferrer noopener">monitor for anomalous behavior</a>, and treat your <a href="https://www.crowdsec.net/live-exploit-tracker" target="_blank" rel="noreferrer noopener">CVE feed as something worth actually reading</a>.</p>



<h2 class="wp-block-heading">Why does this matter if you&#8217;re building or maintaining software</h2>



<p class="wp-block-paragraph">If you&#8217;re a developer, the decisions you make, which dependencies you pull in, how you configure your deployment, and whether you have a process for responding to vulnerability disclosures in your own project, have downstream consequences for everyone using your software.</p>



<p class="wp-block-paragraph">Open source maintainers carry a particular version of this responsibility. When a vulnerability is found in a widely-used package, the blast radius can be enormous. <strong>Having a clear disclosure policy, staying reachable, and shipping fixes promptly are part of what makes open source software trustworthy</strong>.</p>



<p class="wp-block-paragraph">Security doesn&#8217;t have a finish line. Understanding <a href="https://www.crowdsec.net/blog/5-common-vulnerability-myths" target="_blank" rel="noreferrer noopener">how vulnerabilities work</a>, how they get discovered, and how they move from disclosure to exploitation is the foundation for making better decisions across the whole chain, from the code you write to the alerts you triage at midnight.</p>
]]></content:encoded>
            <category>Proactive Cybersecurity</category>
            <category>Vulnerabilities</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/03/239.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[CrowdSec MCP: Life Is Too Short for YAML]]></title>
            <link>https://crowdsec.net/blog/crowdsec-mcp-use-ai-to-write-waf-rules-automatically</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/crowdsec-mcp-use-ai-to-write-waf-rules-automatically</guid>
            <pubDate>Wed, 25 Feb 2026 08:57:03 GMT</pubDate>
            <description><![CDATA[<p>Learn how the CrowdSec Model Context Protocol (MCP) helps you leverage LLMs to automatically write reliable WAF rules &#038; scenarios without writing complex YAML.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">Writing <a href="https://www.crowdsec.net/glossary/web-application-firewall" target="_blank" rel="noreferrer noopener">Web Application Firewall (WAF)</a> rules can be tedious and complex, especially when dealing with convoluted YAML syntax. To solve this, we recently published a <a href="https://github.com/crowdsecurity/crowdsec-local-mcp" target="_blank" rel="noreferrer noopener">Model Context Protocol (MCP) for CrowdSec</a>, specifically focused on helping users leverage AI to automatically write scenarios and WAF rules for the <a href="https://www.crowdsec.net/security-engine" target="_blank" rel="noreferrer noopener">CrowdSec Security Engine</a>.</p>



<p class="wp-block-paragraph">First of all, an <strong>MCP (Model Context Protocol)</strong> is an open-standard specification that enables Large Language Models to securely and consistently connect to external data sources and local tools, essentially acting as a &#8220;USB port&#8221; for AI to interact with your files, databases, and APIs.</p>



<p class="wp-block-paragraph">This extract from our internal tooling has drastically improved our ability to create virtual patching rules for the WAF and internal detection rules for our data lake. In our context, the CrowdSec MCP allows a user to simply instruct their favourite LLM, like ChatGPT, Claude, Gemini, and others, and say, “<em>Hey, look up this blog post and create a WAF rule for it</em>”, and end up with a highly accurate result.</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="508" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12-1024x508.png" alt="" class="wp-image-6478" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12-1024x508.png 1024w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12-300x149.png 300w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12-768x381.png 768w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12-1536x762.png 1536w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-12.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="465" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10-1024x465.png" alt="" class="wp-image-6476" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10-1024x465.png 1024w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10-300x136.png 300w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10-768x348.png 768w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10-1536x697.png 1536w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-10.png 1598w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">In the era of rapidly progressing LLMs, this might sound like a normal Monday morning. But achieving consistent, production-ready <a href="https://www.crowdsec.net/blog/crowdsec-waf-from-first-steps-to-advanced-deployments" target="_blank" rel="noreferrer noopener">WAF</a> rules takes a few tricks; let’s not forget, there is no magic. Here is a walk-through of the process that brought us here and the lessons we learned along the way.</p>



<h2 class="wp-block-heading">Why Automate WAF Rules with AI?</h2>



<p class="wp-block-paragraph">Let’s cut to the chase: writing WAF rules is tedious, and life is too short to write YAML. At CrowdSec, we track about <strong>100 new vulnerabilities every month</strong>, which means writing just as many <a href="https://github.com/crowdsecurity/hub/pull/1691" target="_blank" rel="noreferrer noopener">YAML WAF rules with accompanying tests</a>, often with convoluted syntax. The initial need was clear: we wanted to increase our ability to produce reliable WAF rules while reducing as much as possible the human bandwidth spent writing WAF rules or scenarios.</p>



<p class="wp-block-paragraph">We already leveraged LLMs to industrialise those processes and increase their velocity, but the way MCP interacts with LLM allowed us to take it one step further.</p>



<h2 class="wp-block-heading">Why We Built a Model Context Protocol (MCP) for CrowdSec?</h2>



<p class="wp-block-paragraph">In our first iterations, we exploited <a href="http://openai.com/" target="_blank" rel="noreferrer noopener">OpenAI</a> APIs directly with some custom prompts, including examples, instructions, etc. However, even if you can set the temperature of the LLM when using the API, the results aren’t consistent, as you might know. As a result, the generated rules are sometimes correct and sometimes incorrect.</p>



<p class="wp-block-paragraph">When things went right, everybody was happy, but when things went wrong (hallucinations, misunderstandings from the LLM), the human had to take over and start over. This was both a source of frustration and a waste of time, with every iteration providing results of varying quality. We quickly identified that a feedback loop was needed.</p>



<p class="wp-block-paragraph">Last but not least, previously developed tooling had strong adherence to some input formats &#8211; such as nuclei templates &#8211; and we wanted natural language understanding to achieve the same result from less structured sources, such as blog posts or write-ups.</p>



<p class="wp-block-paragraph">Both these reasons make a good case for experimenting with MCPs.</p>



<h2 class="wp-block-heading">Overcoming LLM Limitations in WAF Rule Generation</h2>



<p class="wp-block-paragraph">On tasks that sound rather simple, an LLM might fail spectacularly, especially if it involves a lot of small steps to follow meticulously. Providing the LLM with tools (such as linting, syntax validation, etc.) is a great way to introduce feedback loops, giving it a chance to identify its mistakes and correct itself, and that’s what makes MCP attractive in this use case.</p>



<h2 class="wp-block-heading">Feedback Loop is Key</h2>



<p class="wp-block-paragraph">In the context of an MCP, given that you provide enough tools, it will correct itself over time when it starts hallucinating. As a concrete example, the first steps of the MCP usage by the LLM to generate a WAF rule look like:</p>



<ol class="wp-block-list">
<li>Get “WAF rules syntax” prompt from MCP: it covers the syntax of the WAF rules, with some do’s and don’ts.</li>



<li>Submit the generated WAF rule to the “syntax validation” tool: it will validate the generated YAML based on our public YAML schemas.</li>
</ol>



<p class="wp-block-paragraph">Simply introducing this 2nd step allows the LLM to understand that it generated an incorrect YAML document, go back to the 1st step, make another attempt, and go back to the 2nd step until it gets proper validation. Providing the LLM with specific steps to follow enables iterative refinement, significantly improving the overall quality of generated results.</p>



<p class="wp-block-paragraph">In the example above, we see self-correction via a feedback loop: upon getting the prompt “WAF rule challenge” that aims at identifying common mistakes or suboptimal patterns, the LLM corrects itself:&nbsp;</p>



<p class="wp-block-paragraph">&gt; Actually, since the guidelines say only use OR or AND (not both), and the paths differ, but the injection pattern is the same, I&#8217;ll create a single rule using a URI regex to match both paths with the AND condition on the injection:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="474" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11-1024x474.png" alt="" class="wp-image-6477" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11-1024x474.png 1024w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11-300x139.png 300w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11-768x356.png 768w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11-1536x711.png 1536w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-11.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Let’s not forget about consistency</h2>



<p class="wp-block-paragraph">Another key advantage of MCP integration is consistency. As one might know, while LLMs excel at a lot of things, consistency isn’t their forte. By exposing the right tools and prompts to the LLM, we can strongly mitigate the issue:</p>



<ul class="wp-block-list">
<li>Sometimes, a few lines of code will succeed where a smarter LLM might erratically fail. Identifying those choke points and exposing the tools at the right time allows us to get around the LLM&#8217;s inconsistencies.</li>



<li>Exposing clear steps to the LLM with various subprompts helps ensure that validation steps aren’t skipped (which might otherwise happen). Typically, forcing the LLM to analyse previously generated data with a different prompt enables it to perform <strong>self-correction</strong> and pushes consistency one step further.</li>
</ul>



<p class="wp-block-paragraph">Thus, MCPs sometimes allow for filling gaps in the LLM’s ability. In the example below, the LLM generated a syntaxically correct rule, but upon testing the WAF rule against an actual exploit, it realizes its own mistake:</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="171" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9-1024x171.png" alt="" class="wp-image-6475" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9-1024x171.png 1024w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9-300x50.png 300w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9-768x128.png 768w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9-1536x256.png 1536w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-9.png 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">More tools for better results</h2>



<p class="wp-block-paragraph">However, to obtain a correct <a href="https://www.crowdsec.net/blog/strengthen-security-with-crowdsec-open-source-waf" target="_blank" rel="noreferrer noopener">WAF</a> rule, it isn’t enough to produce a syntaxically correct document, as there are many pitfalls:</p>



<ul class="wp-block-list">
<li>The rule might be too broad or too narrow.</li>



<li>The rule might simply not match the exploit.</li>



<li>The rule isn’t following best practices.</li>



<li>The rule needs to include a proper test case for regression and false-positive detection.</li>
</ul>



<p class="wp-block-paragraph">To achieve all this, we provide the MCP with <strong>more than 20 tools that will help it at the various steps of the process</strong>, so that the overall workflow looks like:</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="589" height="477" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-8.png" alt="" class="wp-image-6474" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-8.png 589w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-8-300x243.png 300w" sizes="auto, (max-width: 589px) 100vw, 589px" /></figure>



<h2 class="wp-block-heading">Identified limitations</h2>



<p class="wp-block-paragraph">While we’re overall very satisfied with the current results produced by the LLM and how it drastically allowed us to reduce production time of rules while increasing the consistency of the results, there are a few key points that need to be kept in mind when designing such systems:</p>



<ul class="wp-block-list">
<li>LLMs get overwhelmed when there is too much data: On other features that implied interacting with verbose APIs, we repeatedly observed the LLMs getting confused or lost when dealing with MCP outputs. You often need to find bypasses or shortcuts to avoid exposing the LLM to significant volumes of data, or risk inconsistent results &#8211; most likely due to context size.</li>



<li>LLMs lack consistency: sometimes, we had to expose or provide tools that might seem overly basic, simply because the LLM repeatedly failed on steps that seemed trivial. It was specifically true when you step away from creative tasks, and instead ask LLM to verify a document against a yaml/JSON schema.</li>



<li>Prompt engineering: while it might sound really stupid, we observed very different output quality depending on <strong>how</strong> the prompt was formatted, rather than what was inside.</li>
</ul>



<div class="inline-cta-small">
    <a href="https://github.com/crowdsecurity/crowdsec-local-mcp" target="_blank" rel="noopener noreferrer">Get your hands on our open-source MCP, and give it a shot!</a>
</div>
]]></content:encoded>
            <category>Inside CrowdSec</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/02/237.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[CrowdSec Welcomes db.gcve.eu, Strengthening Europe’s Vulnerability Intelligence, Without Losing Global Interoperability]]></title>
            <link>https://crowdsec.net/blog/crowdsec-welcomes-db-gcve-eu-boosting-europes-vulnerability-intelligence</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/crowdsec-welcomes-db-gcve-eu-boosting-europes-vulnerability-intelligence</guid>
            <pubDate>Wed, 11 Feb 2026 08:38:44 GMT</pubDate>
            <description><![CDATA[<p>Strengthen your vulnerability workflows with db.gcve.eu: aggregated advisories, cross-source correlation, &#038; real-time exploitation insights from CrowdSec.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">A healthier vulnerability ecosystem is open, federated, and resilient.</p>



<p class="wp-block-paragraph">At CrowdSec, we’re excited about the public launch of db.gcve.eu, a new open vulnerability advisory database built to aggregate, normalize, and correlate vulnerability information across multiple publishers while remaining compatible with existing CVE workflows.</p>



<h2 class="wp-block-heading"><strong>What is db.gcve.eu?</strong></h2>



<p class="wp-block-paragraph"><a href="http://db.gcve.eu" target="_blank" rel="noreferrer noopener">db.gcve.eu</a> provides a unified view of vulnerabilities by continuously collecting and correlating advisories from a wide range of public sources, including 25+ sources for now.</p>



<p class="wp-block-paragraph">Under the hood, it is powered by <a href="https://www.vulnerability-lookup.org/" target="_blank" rel="noreferrer noopener">Vulnerability-Lookup</a>, an open source project aligned with GCVE&#8217;s best current practices for collection and publication. It also ships with open access, a public API, and data dumps for bulk/offline use. It is precisely what defenders need to build automated workflows and repeatable processes.</p>



<h2 class="wp-block-heading"><strong>Why this matters for European defenders</strong></h2>



<p class="wp-block-paragraph">Security teams don’t just need <em>more</em> data. They need <a href="https://www.crowdsec.net/our-data" target="_blank" rel="noreferrer noopener">trusted, sovereign, and resilient access to it</a>.</p>



<p class="wp-block-paragraph">db.gcve.eu is hosted and operated by <a href="https://www.circl.lu/services/misp-malware-information-sharing-platform/" target="_blank" rel="noreferrer noopener">CIRCL</a> in Luxembourg, and the project is co-funded by CIRCL and the European Union (ECCC) under the FETTA project. That combination of open-source and European-operated infrastructure is a meaningful step for digital sovereignty and operational continuity.</p>



<p class="wp-block-paragraph">Just as importantly, this is not about “replacing” the global ecosystem. It’s about strengthening it.</p>



<h2 class="wp-block-heading"><strong>Why “multiple sources” wins in vulnerability intelligence</strong></h2>



<p class="wp-block-paragraph">Anyone running vuln management at scale knows the pain:</p>



<ul class="wp-block-list">
<li>One source updates first, another lags</li>



<li>One vendor advisory has the best technical detail</li>



<li>Another database has the best cross-references</li>



<li>Exploit and “known exploited” assertions show up in different places</li>
</ul>



<p class="wp-block-paragraph">db.gcve.eu’s value is in doing the unglamorous but essential work: aggregation, correlation, and normalization across identifiers and databases, so defenders can spend less time reconciling records and more time acting.</p>



<p class="wp-block-paragraph">This “multi-source first” stance is not a luxury. It’s how you reduce blind spots.</p>



<h2 class="wp-block-heading"><strong>Real-time attacker reality, grounded in production</strong></h2>



<p class="wp-block-paragraph">Vulnerability databases increasingly do more than list “what could be exploited.” Initiatives like GCVE / db.gcve.eu also incorporate community feedback and exploitation signals (including from major public telemetry providers such as Shadowserver) to help validate what’s happening in the wild.</p>



<p class="wp-block-paragraph">That’s exactly the direction the ecosystem should go, and it’s where CrowdSec adds a <em>different kind</em> of signal: <a href="https://www.crowdsec.net/blog/honeypots-vs-production-telemetry-what-cisos-should-trust" target="_blank" rel="noreferrer noopener">high-fidelity production telemetry</a>.</p>



<p class="wp-block-paragraph">Where many “exploitation proofs” come from honeypots, <a href="https://www.crowdsec.net/blog/introducing-live-exploit-tracker" target="_blank" rel="noreferrer noopener">CrowdSec’s Live Exploit Tracker</a> is built on real attacks seen across real production systems. </p>



<p class="wp-block-paragraph">That’s where CrowdSec naturally connects db.gcve.eu’s enriched advisory view with <strong>CrowdSec’s Live Exploit Tracker</strong>, which focuses on:</p>



<ul class="wp-block-list">
<li>CVEs actually observed being exploited in operational environments</li>



<li>Time-to-exploitation and ongoing exploitation trends as they unfold</li>



<li>Concrete attacker information (IPs, IoCs, exploitation behavior), usable for rapid mitigation and threat hunting<br></li>
</ul>



<p class="wp-block-paragraph">Put simply:</p>



<ul class="wp-block-list">
<li>db.gcve.eu helps you <strong>correlate and contextualize</strong> vulnerabilities across sources.</li>



<li>CrowdSec enables you to <strong>prioritize</strong> with real-world exploitation evidence from production telemetry.</li>
</ul>



<h2 class="wp-block-heading"><strong>Practical workflows defenders can build today</strong></h2>



<p class="wp-block-paragraph">Here are a few high-impact ways teams can combine these approaches:</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="566" src="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4-1024x566.png" alt="" class="wp-image-6455" srcset="https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4-1024x566.png 1024w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4-300x166.png 300w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4-768x425.png 768w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4-1536x849.png 1536w, https://cms.crowdsec.net/wp-content/uploads/2026/02/image-4.png 1575w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><strong>Closing thoughts</strong></h2>



<p class="wp-block-paragraph">We welcome db.gcve.eu as a concrete, open, European-operated contribution to a more resilient vulnerability intelligence ecosystem, one that values interoperability, multi-source correlation, and open access.</p>



<p class="wp-block-paragraph">And we’ll keep pushing the complementary idea that defenders deserve more than static scores: they deserve real-time, accurate information about attackers so they can prioritize, mitigate, and stay ahead.</p>



<p class="wp-block-paragraph">Finally, visit <a href="https://gcve.eu/about/" target="_blank" rel="noreferrer noopener">db.gcve.eu</a> to learn more.</p>



<div class="inline-cta-small">
    <a href="https://www.crowdsec.net/live-exploit-tracker" target="_blank" rel="noopener noreferrer">Track CVEs actively exploited in the wild with CrowdSec’s Live Exploit Tracker, powered by real-world, community-driven telemetry.</a>
</div>
]]></content:encoded>
            <category>Proactive Cybersecurity</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/02/230.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[Introducing Live Exploit Tracker: Know What’s Exploited, Act Faster]]></title>
            <link>https://crowdsec.net/blog/introducing-live-exploit-tracker</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/introducing-live-exploit-tracker</guid>
            <pubDate>Thu, 05 Feb 2026 08:55:05 GMT</pubDate>
            <description><![CDATA[<p>See which CVEs are actively exploited in the wild. Live Exploit Tracker helps you prioritize faster using real attack activity, IPs, and IoCs.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>Vulnerability management has a timing problem.</strong></p>



<p class="wp-block-paragraph">A CVE can be published in the morning and weaponized by lunch. Meanwhile, your backlog grows, your teams argue over prioritization, and <em>critical</em> starts to mean <em>everything</em>.</p>



<p class="wp-block-paragraph"><a href="https://www.crowdsec.net/live-exploit-tracker" target="_blank" rel="noreferrer noopener"><strong>Live Exploit Tracker</strong></a>is built for that moment.</p>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> shows which vulnerabilities are being actively exploited in the wild, the IPs behind the exploitation, and the <a href="https://www.crowdsec.net/glossary/ioas-vs-iocs-vs-indicators-of-fraud" target="_blank" rel="noreferrer noopener">indicators of compromise (IoCs)</a> associated with real-world attack attempts, based on live activity observed across hundreds of thousands of production systems worldwide.</p>



<p class="wp-block-paragraph">This is not another list to monitor. It is a way to make faster, calmer decisions.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph"><strong><em>Live Exploit Tracker helps you prioritize the right CVEs, respond faster when exploitation spikes, and immediately operationalize defenses using IP feeds and IoCs.</em></strong></p>
</blockquote>



<h2 class="wp-block-heading"><strong>What teams get out of Live Exploit Tracker</strong></h2>



<h3 class="wp-block-heading"><strong>1.</strong> <strong>Clear prioritization when everything looks urgent</strong></h3>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> provides <a href="https://www.crowdsec.net/our-data" target="_blank" rel="noreferrer noopener">intelligence</a> built from observed exploitation signals, including profile (opportunistic vs targeted), scale, timeline, and intensity, as well as top targeted countries.</p>



<p class="wp-block-paragraph">In practice, this helps you answer:</p>



<ul class="wp-block-list">
<li><em>Is this CVE being exploited right now?</em></li>



<li><em>Is it growing or fading?</em></li>



<li><em>Is it a short spike or a sustained campaign?</em></li>
</ul>



<p class="wp-block-paragraph">So your patching plan becomes evidence-based rather than headline-based.</p>



<h3 class="wp-block-heading"><strong>2. Faster mitigation when patching is not immediate</strong></h3>



<ol start="2" class="wp-block-list"></ol>



<p class="wp-block-paragraph">For each CVE, <strong>Live Exploit Tracker</strong> provides visibility with <strong>IoCs such as IPs and more,</strong> sourced from live exploitation attempts.</p>



<p class="wp-block-paragraph">You can use it as:</p>



<ul class="wp-block-list">
<li>A helper for higher-confidence detection rules with IoCs</li>



<li>A raw threat intel feed to enrich your SOAR or SIEM</li>



<li>An edge-consumable blocklist format for common enforcement points like your firewall, CDN, and more</li>
</ul>



<p class="wp-block-paragraph">This is the practical win: you can cut exposure quickly while patching and speed up triage during incident response.</p>



<h3 class="wp-block-heading"><strong>3.</strong> <strong>Earlier warning on what attackers are lining up next</strong></h3>



<ol start="3" class="wp-block-list"></ol>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> also includes <strong>Pre-CVE Scouting</strong>. It shows IPs probing a vendor or technology over roughly the last 36 hours, including campaigns hunting for unknown vulnerabilities.</p>



<p class="wp-block-paragraph">If you run internet-exposed infrastructure, this gives you a head start to harden and monitor before the disclosure catches up.</p>



<h2 class="wp-block-heading"><strong>Why Live Exploit Tracker signals are operational, not noisy</strong></h2>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> is fueled by <strong>production telemetry</strong>. That matters because production systems are real targets: VPN gateways, APIs, login pages, business apps. This is where attackers try to win.</p>



<p class="wp-block-paragraph"><a href="https://www.crowdsec.net/blog/honeypots-vs-production-telemetry-what-cisos-should-trust" target="_blank" rel="noreferrer noopener">Production telemetry</a> also surfaces higher-quality indicators. Attackers reveal more when they think they are on a real system and not a decoy.</p>



<p class="wp-block-paragraph">You can enforce Live Exploit Tracker signals because they reflect the real state of exploitation, not algorithm-based extrapolations.</p>



<h2 class="wp-block-heading"><strong>How Live Exploit Tracker fits your workflow</strong></h2>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> is <strong>designed to be actionable</strong>. Query exploitation intelligence via an API and feed your existing tools to enrich alerts and trigger playbooks. Drive mitigations based on what’s currently being exploited.</p>



<ul class="wp-block-list">
<li><strong>Enrich your vulnerability backlog</strong> with an active exploitation context so the top of your priority list reflects reality, not just severity</li>



<li><strong>Flag changes in trend</strong>. When exploitation spikes, <strong>Live Exploit Tracker</strong> helps you spot it early and re-rank work without waiting for downstream advisories</li>



<li><strong>Create a “Patch Now” view</strong> for internet-facing assets and critical services, with clear justification for stakeholders</li>
</ul>



<h2 class="wp-block-heading"><strong>To wrap it up</strong></h2>



<p class="wp-block-paragraph">CVE, CVSS, EPSS, and KEV still matter. They give structure.</p>



<p class="wp-block-paragraph"><strong>Live Exploit Tracker</strong> adds the missing piece: <strong>what attackers are actually doing</strong>, plus the <strong>IPs and IoCs</strong> that let defenders respond quickly and confidently.</p>



<div class="inline-cta-small">
    <a href="https://www.crowdsec.net/live-exploit-tracker" target="_blank" rel="noopener noreferrer">See what&#8217;s actually being exploited right now. Get started with Live Exploit Tracker.</a>
</div>
]]></content:encoded>
            <category>Announcement</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/02/229.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[5 Common Vulnerability Myths That Put Your Security At Risk]]></title>
            <link>https://crowdsec.net/blog/5-common-vulnerability-myths</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/5-common-vulnerability-myths</guid>
            <pubDate>Wed, 28 Jan 2026 10:22:38 GMT</pubDate>
            <description><![CDATA[<p>Discover 5 common cybersecurity myths that increase risk, from “we’re too small” to CVSS blind spots. Learn what really reduces exposure.</p>
]]></description>
            <content:encoded><![CDATA[
<p class="wp-block-paragraph">Cybersecurity failures rarely come from a lack of effort. More often, they come from assumptions that seem reasonable but are wrong. Many organizations think they’re too small to be targeted, that low-severity vulnerabilities can wait, or that buying more tools makes them safer. Others rely on scores, checklists, or the idea that “good intentions” are enough.</p>



<p class="wp-block-paragraph">Attackers thrive on these misconceptions. <strong>They exploit gaps from false confidence, fragmented tools, delayed patching, and decisions made without context.</strong> Knowing where these beliefs fail is key to reducing real-world risk.</p>



<p class="wp-block-paragraph">This article covers <strong>five common security myths</strong>, why they persist, and what really matters for defending modern environments.</p>



<h2 class="wp-block-heading">Myth 1: “We’re too small to be a target.”</h2>



<p class="wp-block-paragraph"><a href="https://www.dataversity.net/articles/what-makes-small-businesses-data-valuable-to-cybercriminals/" target="_blank" rel="noreferrer noopener">Dataversity</a> reports that <strong>Ransomware-as-a-Service surged by 60% in 2025, dramatically lowering the barrier to entry for cybercriminals</strong>. As a result, launching an attack no longer requires advanced skills or significant resources. But who is most at risk? Contrary to common assumptions, it’s not large enterprises. Businesses with fewer than 1,000 employees accounted for <strong>46% of all cyber breaches</strong>.</p>



<p class="wp-block-paragraph">Smaller organizations are frequent targets because they often lack dedicated IT teams, enterprise-grade tools, and up-to-date systems. Limited budgets and a false sense of security lead to weak controls, outdated software, and unpatched vulnerabilities.</p>



<p class="wp-block-paragraph">Attackers go after the same valuable data as in larger firms: customer info like names, emails, and financial details, as well as internal records that can be monetized or used in follow-on attacks.</p>



<p class="wp-block-paragraph">The financial impact of these incidents can be devastating. As noted in a <a href="https://techxplore.com/news/2026-01-small-businesses-cyberscams-ai-powered.html" target="_blank" rel="noreferrer noopener">TechXplore article by Roxana Popescu</a>, <strong>37% of companies lost more than $500,000 per incident last year</strong>. Another quarter lost up to $250,000, while an additional 25% suffered losses between $250,000 and $500,000. To recover, businesses were forced to dip into cash reserves, seek funding from investors, cut jobs, or rely on credit or cyber insurance. And, in 38% of cases, pass the costs on to customers.</p>



<p class="wp-block-paragraph">These attacks may not always make headlines, but their consequences are very real. Thousands of small businesses quietly struggle, or fail outright, after a cyber incident. One such example is <a href="https://syscon-inc.com/stories-from-small-businesses-that-were-attacked/">Efficient Escrow of California</a>, which was forced to shut down and lay off its entire staff after cybercriminals siphoned $1.5 million from its bank account using Trojan malware.</p>



<p class="wp-block-paragraph"><strong>✨Takeaway:</strong> Small businesses are prime targets not due to low value, but because limited security makes them vulnerable. Accessible attack tools and valuable data mean <a href="https://www.crowdsec.net/glossary/what-is-proactive-cybersecurity" target="_blank" rel="noreferrer noopener">stronger defenses</a>, and timely patching is essential, regardless of size.</p>



<h2 class="wp-block-heading">Myth 2: Low-severity vulnerabilities don’t matter</h2>



<p class="wp-block-paragraph">The term low-severity vulnerability often creates a false sense of safety. In security scoring systems, “low severity” typically means that a flaw has limited impact on its own, is difficult to exploit in isolation, or does not immediately expose sensitive data. <strong>It does not mean the vulnerability is harmless, irrelevant, or safe to ignore</strong>.</p>



<p class="wp-block-paragraph">Severity ratings are designed to evaluate individual issues in isolation. In the real world, however, attackers don’t operate that way. They look for paths, not single weaknesses. A low-severity issue can provide just enough information or access to help an attacker move closer to their objective (often called a chain).</p>



<p class="wp-block-paragraph">An example of a low‑severity vulnerability that was highly exploited was <a href="https://app.crowdsec.net/cti/cve-explorer/CVE-2021-26086" target="_blank" rel="noreferrer noopener">Atlassian Jira CVE‑2021‑26086</a>. When CVE‑2021‑26086 was first disclosed, it was classified as a path traversal vulnerability with limited impact. On its own, the issue allowed unauthenticated attackers to read internal files from vulnerable Jira Server and Data Center instances, without enabling direct code execution. Because it was primarily an information disclosure flaw, it was generally considered low to medium severity, not an immediate critical threat.</p>



<p class="wp-block-paragraph">However, attackers quickly showed how this “minor” issue could still be valuable:</p>



<ul class="wp-block-list">
<li>The path traversal enabled access to internal configuration files and metadata, providing insight into the Jira environment.<br></li>



<li>Exposed information helped attackers map deployments, identify software versions, and spot additional weaknesses.<br></li>



<li>The vulnerability required no authentication and affected internet‑facing Jira instances, making it <a href="https://www.crowdsec.net/glossary/mass-exploitation-attacks" target="_blank" rel="noreferrer noopener">easy to automate and scan at scale</a>.<br></li>
</ul>



<p class="wp-block-paragraph">Within a short time, CVE‑2021‑26086 was:</p>



<ul class="wp-block-list">
<li>Widely scanned and exploited across the internet<br></li>



<li>Used as a reconnaissance and foothold vulnerability<br></li>



<li>Leveraged to support follow‑on attacks when chained with other flaws</li>
</ul>



<p class="wp-block-paragraph"><br>✨<strong>Takeaway:</strong> Low-severity vulnerabilities matter because attackers can chain them into high-impact exploits. Fixing them alongside more serious issues reduces the attack surface and prevents small weaknesses from being leveraged together.</p>



<h2 class="wp-block-heading">Myth 3: More tools mean fewer vulnerabilities</h2>



<p class="wp-block-paragraph">There’s a common belief that layering more security tools automatically reduces risk. In practice, adding tools without a clear strategy often increases complexity instead of improving security.</p>



<p class="wp-block-paragraph">Security tools don’t protect systems on their own. Without proper configuration, tools may miss threats or generate excessive noise. Poor integration between tools can create blind spots, and without skilled analysis, important alerts may be ignored or misunderstood, leaving gaps in your defenses.</p>



<p class="wp-block-paragraph">In many organizations, <strong>breaches don’t happen because tools are missing, but because complexity and poor integration leave gaps that attackers can exploit</strong>. <a href="https://the-sequence.com/2025-it-and-security-tool-sprawl-report" target="_blank" rel="noreferrer noopener">A recent industry analysis</a> describes how <strong>“security tool sprawl” creates blind spots, inconsistent alerting, and fragmented visibility that directly increase security risk</strong>. According to the survey, <strong>41% of IT and security teams link poor integrations directly to increased risk,</strong> with disconnected tools making it harder to see threats thoroughly or automate responses. Attackers increasingly target these integration seams because fragmented stacks slow detection and response. </p>



<p class="wp-block-paragraph">When tools don’t share context or correlate alerts across environments, critical signals can be scattered across dashboards, delaying investigation and allowing attackers to operate longer without being noticed. Integrated systems and shared context are what allow security teams to connect the dots; without them, t<strong>he presence of more tools can increase the attack surface instead of reducing it</strong>.</p>



<p class="wp-block-paragraph">Frameworks like the <a href="https://www.nist.gov/cyberframework" target="_blank" rel="noreferrer noopener">NIST Cybersecurity Framework (CSF)</a> and the <a href="https://attack.mitre.org/" target="_blank" rel="noreferrer noopener">MITRE ATT&amp;CK knowledge base</a> both emphasize process, integration, and human expertise rather than adding more tools. Similarly, <a href="https://www.enisa.europa.eu/topics/risk-management" target="_blank" rel="noreferrer noopener">ENISA highlights</a> that effective cybersecurity requires a risk-aware, structured approach where tools are used thoughtfully, in context, and integrated into well-defined processes. </p>



<p class="wp-block-paragraph">What you can do instead:</p>



<ul class="wp-block-list">
<li>Configure security tools carefully and review settings regularly. </li>



<li>Integrate tools so <a href="https://www.crowdsec.net/blog/simplify-threat-detection-with-alert-context" target="_blank" rel="noreferrer noopener">alerts share context</a> and reduce blind spots and noise.</li>



<li>Define clear ownership and processes for investigating and responding to alerts.</li>



<li><a href="https://www.crowdsec.net/blog/openclassrooms-and-crowdsec" target="_blank" rel="noreferrer noopener">Invest in people and training</a>.</li>
</ul>



<p class="wp-block-paragraph"><strong>✨Takeaway:</strong> Security isn’t about the number of tools you deploy. Effective security comes from using the right tools, integrated into clear processes, and backed by human expertise.</p>



<h2 class="wp-block-heading">Myth 4: Patching is easy if you care about security</h2>



<p class="wp-block-paragraph">Many people believe patching is simple: apply the fix, and you’re protected. In reality, patching can be complicated. Fixes can bring compatibility issues, disrupt applications, or require extensive planning and testing before deployment. Some environments, like <a href="https://www.crowdsec.net/blog/4-ways-to-strengthen-healthcare-cybersecurity-posture" target="_blank" rel="noreferrer noopener">healthcare</a> or financial institutions, can’t be patched immediately without careful validation to avoid affecting operational impact. </p>



<p class="wp-block-paragraph">Even security-conscious organizations sometimes delay patches. Not because they don’t care, but because teams may need time to test patches in staging environments, schedule downtime, and coordinate across dependencies to ensure continuity of service. Rushing a patch without proper preparation can create as many problems as it prevents.</p>



<p class="wp-block-paragraph">A dramatic example occurred on 19 July 2024, when a routine configuration update for <a href="https://en.wikipedia.org/wiki/2024_CrowdStrike-related_IT_outages" target="_blank" rel="noreferrer noopener">CrowdStrike’s</a> Falcon endpoint security software caused systems worldwide running Microsoft Windows to crash, enter boot loops, or fail to restart properly. Roughly <strong>8.5 million Windows devices were affected as the flawed update triggered blue screens of death and disrupted operations across airlines, hospitals, emergency services, banking systems, and government services</strong>. This was not a malicious attack, but a faulty patch that had passed automated validation before deployment, illustrating how even well-intended software updates can cause global outages when not properly tested for real-world environments. </p>



<p class="wp-block-paragraph">Best practices for effective patching:</p>



<ul class="wp-block-list">
<li>Keep a clear inventory of all assets.</li>



<li>Prioritize patches based on risk and criticality, not just severity.</li>



<li>Test patches in staging environments before deploying to production.</li>



<li>Use vulnerability management tools to identify known vulnerabilities and missing patches across your systems continuously.</li>



<li>Automate routine patches but keep human oversight for critical systems.</li>



<li>Maintain regular patch schedule and track compliance.</li>
</ul>



<p class="wp-block-paragraph"><strong>✨Takeaway:</strong> Patching isn’t just about applying fixes. It requires continuous vulnerability management, planning, testing, and balancing security with operational needs.<br></p>



<h2 class="wp-block-heading">Myth 5: CVSS scores tell the whole story</h2>



<p class="wp-block-paragraph">The<strong> Common Vulnerability Scoring System (CVSS)</strong> provides a standardized way to rate vulnerability severity. Many organizations rely on CVSS scores alone to prioritize fixes, which can be misleading. CVSS indicates potential impact in general terms, not the actual risk to your specific environment.&nbsp;</p>



<p class="wp-block-paragraph">A high CVSS score doesn’t automatically mean a vulnerability is fully understood or that your organization knows exactly where it exists. Context matters; the criticality of affected assets, network exposure, and whether active exploits exist all influence real risk. Ignoring these factors can leave serious gaps, even for vulnerabilities rated as “critical”.</p>



<p class="wp-block-paragraph">An example is <a href="https://en.wikipedia.org/wiki/Log4Shell" target="_blank" rel="noreferrer noopener">Log4Shell (CVE-2021-44228)</a>. It received a CVSS score of 10, the highest possible rating. Despite this, many organizations struggled to identify which systems and applications were affected because <a href="https://app.crowdsec.net/cti/cve-explorer/CVE-2021-44228" target="_blank" rel="noreferrer noopener">Log4j</a> is a library that often exists deep in software dependency chains or embedded in third-party products. Teams without complete visibility or software inventory faced delays in assessing risk, even though the vulnerability itself was theoretically critical. Attackers quickly began exploiting exposed instances, demonstrating that a high CVSS score alone is not enough. Organizations must understand where and how the vulnerability exists in their environment. </p>



<p class="wp-block-paragraph">What you can do:</p>



<ul class="wp-block-list">
<li>Use CVSS as a starting point, not a decision on its own.</li>



<li>Evaluate vulnerabilities based on your environment, asset criticality, and threat landscape.</li>



<li>Use risk-based prioritization to focus remediation efforts.</li>



<li>Combine CVSS with <a href="https://www.crowdsec.net/glossary/what-is-cyber-threat-intelligence" target="_blank" rel="noreferrer noopener">threat intelligence</a> and visibility into your systems to guide decisions.</li>
</ul>



<p class="wp-block-paragraph"><strong>✨Takeaway: </strong>CVSS scores are helpful, but <a href="https://www.crowdsec.net/blog/crowdsec-cti-scoring-system" target="_blank" rel="noreferrer noopener">context is key</a>. Understanding how vulnerabilities exist in your environment and prioritizing based on actual risk is far more important than relying solely on the number.<br></p>



<h2 class="wp-block-heading">To sum it up</h2>



<p class="wp-block-paragraph">Cybersecurity fails less from ignorance than from oversimplification. Myths like “small means safe,” “scores tell the whole story,” or “more tools = better protection” create false comfort. Attackers exploit complexity, context gaps, and blind spots.</p>



<p class="wp-block-paragraph">Reducing risk requires seeing what’s really happening: <strong>which vulnerabilities are exploited, how attacks unfold, and where exposure lies</strong>. Real-time exploit <a href="https://www.crowdsec.net/cyber-threat-intelligence" target="_blank" rel="noreferrer noopener">intelligence</a> helps teams prioritize, respond faster, and stay ahead of emerging threats.</p>
]]></content:encoded>
            <category>Proactive Cybersecurity</category>
            <category>Vulnerabilities</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/01/226.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>