<?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>Wed, 29 Apr 2026 18:38:14 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[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><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><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>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>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>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><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>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>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>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><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>&#8211; Riccardo Morandotti, CIO and CISO of ButanGas</p>
</blockquote>



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



<p>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>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>The real transformation, however, goes beyond inbound protection.</p>



<p><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>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>While automated blocking significantly improved their security posture, the most meaningful shift came from <strong>enhanced visibility</strong>.</p>



<p>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>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>With CrowdSec in place, ButanGas has transformed its firewall into a <strong>proactive, intelligence-driven security layer</strong>.</p>



<p>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>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></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>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>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>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>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>Unlike virtual patching, which targets specific known CVEs, the CRS uses a more generic approach to detect exploitation of still-unknown vulnerabilities.</p>



<p>This comes at a cost: <strong>a higher chance of false positives depending on the application.</strong></p>



<p>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>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>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>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>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>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>For non-blocking mode:</p>



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



<p>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>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>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>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>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>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>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>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>Our request was not blocked: it&#8217;s expected as the CRS is configured in non-blocking mode.</p>



<p>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>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>This is why the reason appears as <code>anomaly score out-of-band: sql_injection: 10, anomaly: 10,.</code></p>



<p>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>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>Update your acquisition:</p>



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



<p>In this mode, any request that reaches the default CRS threshold is dropped, and alerts are generated automatically.</p>



<p>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>This time, the request actually got blocked!</p>



<p>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>It&#8217;s almost the same, except for the reason: <code>anomaly score block: sql_injection: 10, anomaly: 10,.</code></p>



<p>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>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>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>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>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>Once installed, the plugin loads automatically after a CrowdSec restart.</p>



<p>The plugins are updated automatically, like any other Hub items, so you will receive upstream changes automatically.</p>



<p>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>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>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>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>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></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><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><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>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>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>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>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>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>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>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>Our goal is to help users navigate this transition as smoothly as possible.</p>



<p><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>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>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>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>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>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></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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>&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>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>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>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>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>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>A healthier vulnerability ecosystem is open, federated, and resilient.</p>



<p>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><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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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>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><strong>Vulnerability management has a timing problem.</strong></p>



<p>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><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><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>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><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><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>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>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>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>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>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><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>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><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><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>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><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>CVE, CVSS, EPSS, and KEV still matter. They give structure.</p>



<p><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>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>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>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><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>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>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>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>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><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>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>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>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>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>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><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>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>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>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>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>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>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><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>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>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>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>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><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>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>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>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>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><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>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>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>
        <item>
            <title><![CDATA[Honeypots vs Production Telemetry: What CISOs Should Trust for Threat Intelligence]]></title>
            <link>https://crowdsec.net/blog/honeypots-vs-production-telemetry-what-cisos-should-trust</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/honeypots-vs-production-telemetry-what-cisos-should-trust</guid>
            <pubDate>Fri, 23 Jan 2026 11:18:54 GMT</pubDate>
            <description><![CDATA[<p>Threat intelligence isn’t equal. Learn why real-world production telemetry reveals attacker intent, and why CISOs trust it over honeypot-based intel.</p>
]]></description>
            <content:encoded><![CDATA[
<p><a href="https://www.crowdsec.net/glossary/what-is-cyber-threat-intelligence" target="_blank" rel="noreferrer noopener">Threat intelligence</a> sounds simple on paper. Collect signals. Spot bad actors. Block them fast. In practice, it gets messy. Most feeds raise more questions than they answer, and when they cannot be used to take action, they’re simply noise.</p>



<p>A big part of the problem is this: not all threat intelligence is collected the same way. Two familiar sources are <a href="https://www.crowdsec.net/glossary/honeypots-vs-crowdsourced-threat-intelligence" target="_blank" rel="noreferrer noopener">honeypots and production telemetry</a>. They can both be useful. But they do not tell you the same story.</p>



<h2 class="wp-block-heading"><strong>Honeypots are great at one thing: internet weather</strong></h2>



<p>A honeypot is a decoy. It is meant to be found and tested. That makes it good at capturing the constant noise of the internet.</p>



<p>Using honeypots, you will see scans, lots of them. You will see commodity bots. You will see known CVE opportunistic exploitation attempts. <strong>This helps you understand what is trending.</strong></p>



<p>If your goal is visibility into broad activity, honeypots deliver.</p>



<p>But there is a catch.</p>



<h2 class="wp-block-heading"><strong>Honeypots can be identified and dodged</strong></h2>



<p>Many honeypots live on ranges that look like “lab infrastructure.” Datacenter IPs, consistent patterns, similar stacks, similar behaviors. Over time, <strong>attackers learn what these systems look like.</strong></p>



<p>Even low to mid-level tooling can do basic fingerprinting. Some attackers keep lists. Others simply deprioritize anything that smells like a trap. In any case, when attackers possess valuable exploits, they use them on their targets and not indiscriminately on unknown IPs.</p>



<p>That creates bias. Using honeypots, you mainly observe what attackers are willing to touch blindly. <strong>You do not reliably observe what they do when money is on the line.</strong></p>



<p>Another key aspect of Honeypots is that automation is essential for scaling them. Your go-to infrastructure will likely be with major cloud providers, allowing you to automate the deployment of your containers (or VMs). In this case, the distribution and variety of your honeypot network are limited to some well-known ranges of IP addresses. For the very same reason, this limits CDNs&#8217; ability to catch threats ahead of the curve (who would use a new technique or 0-day on an exceedingly careful target?), sitting on a bunch of known ranges gives you an incomplete picture of the real world.</p>



<h2 class="wp-block-heading"><strong>Production telemetry captures intent because it sits on real targets</strong></h2>



<p>Production workloads are the opposite of decoys. They are the objective: login pages, VPN gateways, APIs, mail servers, business apps. This is where attackers try to win.</p>



<p>That is why <a href="https://www.crowdsec.net/blog/importance-of-threat-intelligence-data-collection" target="_blank" rel="noreferrer noopener">telemetry from production environments is so valuable</a>. It captures behavior aimed at real outcomes: account takeover, fraud, API abuse, <a href="https://www.crowdsec.net/blog/mitigate-ddos-with-crowdsec" target="_blank" rel="noreferrer noopener">layer 7 denial-of-service</a>, and targeted exploitation of stacks that actually run revenue.</p>



<p>Production telemetry is where you reliably capture valuable <a href="https://www.crowdsec.net/glossary/ioas-vs-iocs-vs-indicators-of-fraud" target="_blank" rel="noreferrer noopener">Indicators of Compromise (IoCs)</a>, because attackers must engage with a real service. You see real patterns, like targeted URLs, exploitation payloads, and credentials. That precious information is disclosed only when attackers know they have reached a valuable target and not wasted in a honeypot environment.</p>



<p>This is the core difference for a CISO: <strong>honeypots show you what exists on the internet. Production telemetry shows you what is being used against real businesses.</strong></p>



<h3 class="wp-block-heading"><strong>What “production telemetry” means with CrowdSec, in plain terms</strong></h3>



<p>CrowdSec’s approach is to <a href="https://www.crowdsec.net/our-data" target="_blank" rel="noreferrer noopener">detect malicious behavior in logs and web traffic in real time on internet-exposed workloads</a>. The <a href="https://www.crowdsec.net/security-engine" target="_blank" rel="noreferrer noopener">Security Engine</a> reads, normalizes, and enriches logs from many sources, including cloud services and standard log pipelines.</p>



<p>Detection is contextual. It does not treat every system the same. With a VPN, it detects brute-force and credential-stuffing attempts. An e-commerce site can detect catalog theft, scalping, credit card stuffing, and Layer 7 DDoS attacks.</p>



<p>This is why the CrowdSec signal tends to be more “honest.” Attackers have to interact with something tangible.</p>



<h2 class="wp-block-heading"><strong>Context matters more than volume</strong></h2>



<p>Most feeds compete on quantity. More IPs. More alerts. More “Top Attackers.”</p>



<p>CISOs would rather have clearer decisions and actionable insights.</p>



<p>The strongest signals come from context. What was attacked? How? How often? On which type of service? Whom by? Was it a new IP, a known one? Did it attempt to knock my servers using other techniques before? Was it a brute force attempt? Was it credential stuffing or injections? Was it scanning that led to exploitation? Are authentications coming from those IP addresses known to be impossible travelers?</p>



<p>This is where production-based detection wins. It is tied to real logs and real services. That context is what turns observations into enforceable policies, while reducing false positives to zero.</p>



<h3 class="wp-block-heading"><strong>The SOC angle: richer alerts, less guesswork</strong></h3>



<p>SOC teams care about the “why,” not just the “what.” CrowdSec can enrich alerts with details such as username attempts, targeted URLs, scanned ports, verticals, or countries.</p>



<p>It also positions itself as a companion to the SIEM, and an actionable “pre-filter.” The idea is simple: triage in-stream, suppress noise, and avoid paying to store and investigate junk at scale.</p>



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



<h2 class="wp-block-heading"><strong>Honeypots still have a role</strong></h2>



<p>Honeypots are not useless. <strong>They are just not sufficient on their own.</strong></p>



<p>They are suitable for <strong>early warning and trend spotting.</strong> They are good for research. They help you understand the background threat landscape.</p>



<p>But if your goal is prevention at scale, <strong>you want intelligence that reflects real attacks against real targets</strong>. That is what production telemetry gives you. And that is the <a href="https://www.crowdsec.net/our-data" target="_blank" rel="noreferrer noopener">foundation CrowdSec uses</a>. CrowdSec explicitly positions itself as different from a honeypot network for this reason: <strong>it protects real workloads from real customers that attackers actually want to monetize.</strong></p>



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



<p>Honeypots tell you who is knocking on doors.</p>



<p>Production telemetry tells you <strong>who is trying to get in, where they are pushing hardest, and what they are trying to achieve</strong>, <strong>their “Why”</strong>.</p>



<p>For CISOs, that is the difference between interesting threat intel and tactical threat intel you can turn into enforcement.</p>



<p></p>
]]></content:encoded>
            <category>Proactive Cybersecurity</category>
            <category>Vulnerabilities</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/01/225.png" length="0" type="image/png"/>
        </item>
        <item>
            <title><![CDATA[React2Shell: The Overly Spicy Side of React 19. CrowdSec to the Rescue!]]></title>
            <link>https://crowdsec.net/blog/react2shell-overly-spicy-side-of-react-19</link>
            <guid isPermaLink="false">https://crowdsec.net/blog/react2shell-overly-spicy-side-of-react-19</guid>
            <pubDate>Wed, 21 Jan 2026 09:18:54 GMT</pubDate>
            <description><![CDATA[<p>React2Shell (CVE-2025-55182) is a critical RCE vulnerability impacting React Server Components and Next.js. Learn how CrowdSec mitigates it fast.</p>
]]></description>
            <content:encoded><![CDATA[
<p>This is a translation of the original article published in French on <a href="https://www.aukfood.fr/react2shell-plat-epice-react19-crowdsec-protection/" target="_blank" rel="noreferrer noopener">Aukfood&#8217;s Blog</a>.  </p>



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



<p>On December 3rd, 2025, the React team disclosed <a href="https://app.crowdsec.net/cti/cve-explorer/CVE-2025-55182" target="_blank" rel="noreferrer noopener">CVE-2025-55182</a>, dubbed React2Shell, a critical Remote Code Execution (RCE) vulnerability affecting React Server Components (RSC). With a CVSS score of 10.0 and an exploitation rate approaching 100% on default configurations, this flaw poses a severe threat to modern infrastructures that rely on React 19 and Next.js.</p>



<p>CrowdSec, the open source security ecosystem, reacted swiftly. Within hours of the disclosure, it released a <a href="https://app.crowdsec.net/hub/author/crowdsecurity/appsec-rules/vpatch-CVE-2025-55182" target="_blank" rel="noreferrer noopener">dedicated virtual patching detection rule</a>, once again demonstrating how collaborative defense can drastically reduce exposure time.  </p>



<h2 class="wp-block-heading">Technical Analysis of React2Shell</h2>



<h3 class="wp-block-heading">Vulnerability Overview</h3>



<p><strong>CVE-2025-55182</strong> is caused by <strong>unsafe deserialization</strong> in the <em>Flight protocol</em> used by React Server Components. The server-side code processes HTTP payloads <strong>without sufficient validation</strong>, allowing attackers to inject crafted objects that result in <strong>arbitrary code execution</strong>.</p>



<p><strong>Affected packages</strong> (versions 19.0.0 → 19.2.0):</p>



<ul class="wp-block-list">
<li><code>react-server-dom-webpack</code></li>



<li><code>react-server-dom-turbopack</code></li>



<li><code>react-server-dom-parcel</code></li>
</ul>



<p><strong>Impacted frameworks</strong>:</p>



<ul class="wp-block-list">
<li>Next.js 15.0.4 → 16.0.6 (including canaries 14.3.0-canary.77+)</li>



<li>React Router (RSC mode)</li>



<li>Waku, Vite RSC, Parcel RSC</li>



<li>RedwoodSDK</li>
</ul>



<p><strong>⚠️ Critical point</strong>: <strong>A freshly created Next.js application using </strong><code>create-next-appis</code><strong> vulnerable by default</strong>. No special configuration is required; simply enabling Server Components is enough.</p>



<h3 class="wp-block-heading">Attack Scenarios</h3>



<p>An attacker can:</p>



<ul class="wp-block-list">
<li>Send a malicious HTTP POST request to any endpoint</li>



<li>Abuse the vulnerable deserialization logic</li>



<li>Execute arbitrary server-side code</li>



<li>Gain full server access</li>



<li>Exfiltrate data, deploy backdoors, and pivot laterally within the infrastructure  </li>
</ul>



<h2 class="wp-block-heading">CrowdSec’s Response to React2Shell</h2>



<h3 class="wp-block-heading">A Fast, Community-Driven Reaction</h3>



<p>One of the major strengths of open source security is its reaction speed. Just <strong>hours after public disclosure</strong>, CrowdSec released a dedicated detection rule: <code>vpatch-CVE-2025-55182</code></p>



<h4 class="wp-block-heading">How the Detection Rule Works</h4>



<p>The vpatch-CVE-2025-55182 rule focuses on <strong>identifying real-world exploitation attempts</strong> of React2Shell by correlating multiple strong signals, significantly reducing false positives:</p>



<ul class="wp-block-list">
<li><strong>HTTP POST method</strong> -> Exploitation relies on server-side form submissions.</li>



<li><strong>Presence of React Server Action headers (</strong><code>next-action, rsc-action-id</code><strong>)</strong> -> strong indicators of RSC/Next.js flows.</li>



<li><strong>Tampering with internal Flight parameters (</strong><code>status, resolved_model</code><strong>)</strong> -> sensitive fields involved in the vulnerable deserialization logic.</li>



<li><strong>Suspicious </strong><code>$@</code><strong> payload pattern</strong> -> Known signature associated with React2Shell injection techniques.</li>
</ul>



<p>By correlating these indicators, CrowdSec detects exploitation attempts <strong>even in the absence of a publicly available working exploit</strong>, making this rule an effective <strong>preventive virtual patch</strong>.</p>



<h4 class="wp-block-heading">Installing the CrowdSec Virtual Patch</h4>



<p>If you already run CrowdSec with the <a href="https://doc.crowdsec.net/docs/next/appsec/intro/" target="_blank" rel="noreferrer noopener">AppSec (WAF) component</a>, enabling protection against React2Shell is straightforward:</p>



<pre><code class="language-bash">
cscli appsec-rules install crowdsecurity/vpatch-CVE-2025-55182 </code></pre>



<p>Within seconds, the AppSec engine begins detecting and mitigating exploitation attempts targeting <strong>CVE-2025-55182</strong>.</p>



<h4 class="wp-block-heading">Adding the React2Shell CrowdSec Blocklist</h4>



<p>In addition to application-layer detection, <a href="https://app.crowdsec.net/blocklists/6936fb6f5f136d434bcbd4af" target="_blank" rel="noreferrer noopener">CrowdSec also provides a dedicated React2Shell IP blocklist</a>, built from real-world exploitation attempts observed across the community. This blocklist aggregates <strong>source IPs actively exploiting CVE-2025-55182</strong> and allows defenders to <strong>block attackers at the network or firewall level</strong>, before requests even reach the application.</p>



<p><strong>Benefits of using the blocklist</strong>:</p>



<ul class="wp-block-list">
<li>Blocks known React2Shell attackers globally</li>



<li>Reduces load on the application and WAF</li>



<li>Complements AppSec virtual patching with network-level enforcement</li>



<li>Automatically updated through CrowdSec’s threat intelligence</li>
</ul>



<p>The React2Shell blocklist is available here: 👉 <a href="https://app.crowdsec.net/blocklists/6936fb6f5f136d434bcbd4af" target="_blank" rel="noreferrer noopener">https://app.crowdsec.net/blocklists/6936fb6f5f136d434bcbd4af</a></p>



<h4 class="wp-block-heading">Important: Patch Your Dependencies</h4>



<p>While CrowdSec provides <strong>immediate protection</strong>, virtual patching does not replace vendor fixes.</p>



<p>To fully remediate React2Shell, ensure you update:</p>



<ul class="wp-block-list">
<li><strong>React 19.x</strong> -> patched release</li>



<li><strong>Next.js</strong> -> official security release published by Vercel</li>
</ul>



<p>Applying these updates removes the vulnerability at its source and should be done <strong>even if CrowdSec is already deployed</strong>. &nbsp;</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p><a href="https://www.crowdsec.net/vulntracking-report/cve-2025-55182" target="_blank" rel="noreferrer noopener">CVE-2025-55182 (React2Shell)</a> is a maximum-severity vulnerability with widespread impact across the modern React ecosystem. However, it also highlights the effectiveness of *<em>collaborative open-source security</em>.</p>



<p>👉 <strong>CrowdSec delivered a detection rule within hours</strong>, enabling organizations to defend themselves immediately through virtual patching.</p>



<p><strong>Recommended actions for all organizations using React Server Components:</strong></p>



<ol class="wp-block-list">
<li>Apply official patches as soon as possible</li>



<li>Deploy CrowdSec AppSec with the virtual patching collections</li>



<li>Monitor exploitation attempts targeting RSC endpoints</li>



<li>Continuously test detection and response (Purple Team approach)</li>
</ol>



<p>React2Shell is a clear reminder that fast detection, shared intelligence, and community-driven defense are essential to securing modern web stacks.</p>



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



<h3 class="wp-block-heading">Additional Resources</h3>



<ul class="wp-block-list">
<li><a href="https://www.sysdig.com/blog/detecting-react2shell" target="_blank" rel="noreferrer noopener">Detecting React2Shell: The maximum-severity RCE Vulnerability affecting React Server Components and Next.js</a></li>



<li><a href="https://nextjs.org/blog/CVE-2025-66478" target="_blank" rel="noreferrer noopener">Security Advisory: CVE-2025-66478</a></li>



<li><a href="https://react2shell.com/" target="_blank" rel="noreferrer noopener">React2Shell (CVE-2025-55182)</a></li>
</ul>
]]></content:encoded>
            <category>Ambassador Post</category>
            <enclosure url="https://cms.crowdsec.net/wp-content/uploads/2026/01/223.png" length="0" type="image/png"/>
        </item>
    </channel>
</rss>