
<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>Sat, 04 Apr 2026 11:49:15 GMT</lastBuildDate>
        <item>
            <title><![CDATA[The impact of the Salesloft Drift breach on Cloudflare and our customers]]></title>
            <link>https://blog.cloudflare.com/response-to-salesloft-drift-incident/</link>
            <pubDate>Tue, 02 Sep 2025 17:10:00 GMT</pubDate>
            <description><![CDATA[ An advanced threat actor, GRUB1, exploited the integration between Salesloft’s Drift chat agent and Salesforce to gain unauthorized access to Salesforce tenants of Cloudflare and many other companies. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On August 23rd, Cloudflare was notified that we (and our customers) are affected by the Salesloft Drift breach. Because of this breach, someone outside Cloudflare got access to our Salesforce instance, which we use for customer support and internal customer case management, and some of the data it contains. Most of this information is customer contact information and basic support case data, but some customer support interactions may reveal information about a customer's configuration and could contain sensitive information like access tokens. Given that Salesforce support case data contains the contents of support tickets with Cloudflare, any information that a customer may have shared with Cloudflare in our support system—including logs, tokens or passwords—should be considered compromised, and we strongly urge you to rotate any credentials that you may have shared with us through this channel. </p><p>As part of our response to this incident, we did our own search through the compromised data to look for tokens or passwords and found 104 Cloudflare API tokens. We have identified no suspicious activity associated with those tokens, but all of these have been rotated in an abundance of caution. All customers whose data was compromised in this breach have been informed directly by Cloudflare.</p><p>No Cloudflare services or infrastructure were compromised as a result of this breach.</p><p>We are responsible for the choice of tools we use in support of our business. This breach has let our customers down. For that, we sincerely apologize. The rest of this blog gives a detailed timeline and detailed information on how we investigated this breach.</p>
    <div>
      <h2>The Salesloft Drift breach</h2>
      <a href="#the-salesloft-drift-breach">
        
      </a>
    </div>
    <p>Last week, Cloudflare became aware of suspicious activity within our Salesforce tenant and learned that we, as well as hundreds of other companies, had become the target of a threat actor that was able to successfully exfiltrate the text fields of support cases from our Salesforce instance. Our security team immediately began an investigation, cut off the threat actor’s access, and took a number of steps, detailed below, to secure our environment. We are writing this blog to detail what happened, how we responded, and to help our customers and others understand how to protect themselves from this incident.</p><p>Cloudflare uses Salesforce to keep track of who our customers are and how they use our services, and we use it as a support tool to interact with our customers. An important detail to understand as part of this incident is that the threat actor only accessed data in Salesforce “cases,” which may be created when Cloudflare sales and support team members need to comment to each other internally in order to support our customers; they are also created when customers interact with Cloudflare support. Salesforce had an integration with the Salesloft Drift chatbot, which Cloudflare used to give anyone who visited our website a way to contact us.</p><p>As Salesloft has <a href="https://trust.salesloft.com/?uid=Drift%2FSalesforce+Security+Update"><u>announced</u></a>, a threat actor breached their systems. As part of the breach, the threat actor was able to obtain OAuth credentials associated with the Salesloft Drift chat agent’s Salesforce integration to exfiltrate data from Salesloft customers’ Salesforce instances. Our investigation revealed that this was part of a sophisticated supply chain attack targeting business-to-business third-party integrations, affecting hundreds of organizations globally that were customers of Salesloft. <a href="https://www.cloudflare.com/en-au/application-services/products/cloudforceone/"><u>Cloudforce One</u></a>—Cloudflare’s threat intelligence &amp; research team—has classified the advanced threat actor as <b>GRUB1</b>. Additional disclosures from <a href="https://cloud.google.com/blog/topics/threat-intelligence/data-theft-salesforce-instances-via-salesloft-drift"><u>Google’s Threat Intelligence Group</u> </a>aligned with the activity we observed in our environment.</p><p>Our investigation showed the threat actor compromised and exfiltrated data from our Salesforce tenant between August 12-17, 2025, following initial reconnaissance observed on August 9, 2025. A detailed analysis confirmed the exposure was limited to Salesforce case objects, which primarily consist of customer support tickets and their associated data within our Salesforce tenant. These case objects contain customer contact information related to the support case, case subject lines, and the body of the case correspondence—but <i>not</i> any attachments to the cases. Cloudflare does not request or require customers to share secrets, credentials, or API keys in support cases. However, in some troubleshooting scenarios, customers may paste keys, logs, or other sensitive information into the case text fields. Anything shared through this channel should now be considered compromised.</p><p>We believe this incident was not an isolated event but that the threat actor intended to harvest credentials and customer information for future attacks. Given that hundreds of organizations were affected through this Drift compromise, we suspect the threat actor will use this information to launch targeted attacks against customers across the affected organizations. </p><p>This post provides a timeline of the attack, details our response, and offers security recommendations to help other organizations mitigate similar threats.</p><p><i>Throughout this blog post, all dates and times are in UTC.</i></p>
    <div>
      <h2>Cloudflare's response and remediation</h2>
      <a href="#cloudflares-response-and-remediation">
        
      </a>
    </div>
    <p>When Salesforce and Salesloft notified us on August 23, 2025, that the Drift integration had been abused across multiple organizations, including Cloudflare, we immediately launched a company-wide Security Incident Response. We activated cross-functional teams, pulling together experts from Security, IT, Product, Legal, Communications, and business leadership under a single, unified incident command structure.</p><p>We set up four clear priority workstreams with the goal to protect our customers and Cloudflare:</p><ol><li><p><b>Immediate Threat Containment:</b> We cut off all threat actor access by disabling the compromised Drift integration, conducted forensic analysis to understand the scope of the compromise, and eliminated the active threat from our environment.</p></li><li><p><b>Secure our third-party ecosystem</b>: We immediately disconnected all third-party integrations from Salesforce. We issued new secrets for all services and implemented a new process to rotate them weekly.</p></li><li><p><b>Safeguard the integrity of our wider systems</b>: We expanded credential rotation to all our third-party Internet services and accounts as a precautionary measure to prevent the attacker from using compromised data to access other Cloudflare systems.</p></li><li><p><b>Customer Impact Analysis:</b> We analyzed our Salesforce case objects data to identify whether customers could be compromised and to ensure they received timely and accurate communication about potential exposure.</p></li></ol>
    <div>
      <h2>Attack timeline &amp; Cloudflare response</h2>
      <a href="#attack-timeline-cloudflare-response">
        
      </a>
    </div>
    <p>Our forensic investigation reconstructed the threat actor’s activities against Cloudflare, which occurred between August 9 and August 17, 2025. The following is a chronological summary of the threat actor's actions, including initial reconnaissance prior to the initial compromise.</p>
    <div>
      <h3>August 9, 2025: First signs of reconnaissance</h3>
      <a href="#august-9-2025-first-signs-of-reconnaissance">
        
      </a>
    </div>
    <p>At <b>11:51</b>, GRUB1 attempted to validate a Customer Cloudflare-issued API token to the Salesforce API. The actor used Trufflehog (a popular open-source secrets scanner) as their User-Agent and sent a verification request to <code>client/v4/user/tokens/verify</code>. The request failed with a <code>404 Not Found</code>, confirming the token was invalid. The source of this API token is unclear—it could have been obtained from various sources including other Drift customers that GRUB1 may have compromised prior to Cloudflare. </p>
    <div>
      <h3>August 12, 2025: Initial compromise of Cloudflare</h3>
      <a href="#august-12-2025-initial-compromise-of-cloudflare">
        
      </a>
    </div>
    <p>At <b>22:14</b>, GRUB1 gained access to Cloudflare’s Salesforce tenant by using a stolen credential used by the Salesloft integration. Using this credential, the GRUB1 logged in from the IP address <code>44[.]215[.]108[.]109</code> and made a GET request to the <code>/services/data/v58.0/sobjects/</code> API endpoint. This action appeared to enumerate all objects in our Salesforce environment, giving the threat actor a high-level overview of the data stored there.</p>
    <div>
      <h3>August 13, 2025: Expanding reconnaissance</h3>
      <a href="#august-13-2025-expanding-reconnaissance">
        
      </a>
    </div>
    <p>One day after the initial breach, the threat actor GRUB1 launched a subsequent attack from the same IP address, <code>44[.]215[.]108[.]109</code>. Starting at <b>19:33</b>, the threat actor stole customer data from the Salesforce case objects. They first re-ran an object enumeration to confirm the data structure, then immediately retrieved the case objects’ schema using the <code>/sobjects/Case/describe/</code> endpoint. This was followed by a broad Salesforce query that enumerated fields from the Salesforce case object.</p>
    <div>
      <h3>August 14, 2025: Understanding our Salesforce environment</h3>
      <a href="#august-14-2025-understanding-our-salesforce-environment">
        
      </a>
    </div>
    <p>The threat actor GRUB1 dedicated hours to conduct comprehensive reconnaissance of Cloudflare's Salesforce tenant from the IP address <code>44[.]215[.]108[.]109</code>. It appears their objective was to build an understanding of our environment. For several hours, they executed a series of targeted <a href="#detailed-event-timeline">queries</a>:</p><ul><li><p><b>00:17 - </b>They measured the tenant's scale by counting accounts, contacts, and users; </p></li><li><p><b>04:34 - </b>Analyzed case workflows by querying CaseTeamMemberHistory; and </p></li><li><p><b>11:09 - </b>Confirmed they were in a production environment by fingerprinting the Organization object. </p></li></ul><p>The threat actor completed their reconnaissance with additional queries to understand how our customer support system operates—including how team members handle different types of cases, how cases are assigned and escalated, and how our support processes work—and then queried the /limits/ endpoint to learn the API's operational thresholds. The queries run by GRUB1 provided them with insight into their level of access, the size of the case objects, and the precise API limits they needed to respect to avoid detection within our Salesforce environment.</p>
    <div>
      <h3>August 16, 2025: Preparing for the operation</h3>
      <a href="#august-16-2025-preparing-for-the-operation">
        
      </a>
    </div>
    <p>Following the reconnaissance on August 14, 2025, we observed no traffic or successful logins from the threat actor GRUB1 for nearly 48 hours.  </p><p>They returned on August 16, 2025. At <b>19:26</b>, GRUB1 logged back into Cloudflare’s Salesforce tenant from the IP address <code>44[.]215[.]108[.]109</code> and, at <b>19:28</b>, executed a single, final query: <code>SELECT COUNT() FROM Case</code>. This action served as a final "dry run" to verify the exact size of the dataset they were about to steal, marking the definitive end of the reconnaissance phase and setting the stage for the main attack. </p>
    <div>
      <h3>August 17, 2025: Final exfiltration and coverup</h3>
      <a href="#august-17-2025-final-exfiltration-and-coverup">
        
      </a>
    </div>
    <p>GRUB1 initiated the data exfiltration phase by switching to new infrastructure, logging in at <b>11:11:23</b> from the IP address <code>208[.]68[.]36[.]90</code>. After performing one final check on the size of the case object, they launched a Salesforce Bulk API 2.0 job at <b>11:11:56</b>. In just over three minutes, they successfully exfiltrated a dataset containing the text of support cases—but not any attachments or files—in our instance of Salesforce. At <b>11:15:42</b>, GRUB1 attempted to cover their tracks by deleting the API job. While this action concealed the primary evidence, our team was able to reconstruct the attack from residual logs. </p><p>We observed no further activity from this threat actor after August 17, 2025.</p>
    <div>
      <h3>August 20, 2025: Vendor action ahead of notification</h3>
      <a href="#august-20-2025-vendor-action-ahead-of-notification">
        
      </a>
    </div>
    <p>Salesloft revoked Drift-to-Salesforce connections across its customer base and published a notice on their website. At that point, Cloudflare had not yet been notified, and we had no indication that this vendor action might relate to our environment.</p>
    <div>
      <h3>August 23, 2025: Salesforce and Salesloft notifications to Cloudflare</h3>
      <a href="#august-23-2025-salesforce-and-salesloft-notifications-to-cloudflare">
        
      </a>
    </div>
    <p>Our response to this incident began when Salesforce and Salesloft notified us of unusual Drift-related activity.  We promptly implemented the vendors' recommended containment steps and engaged them to gather intelligence. </p>
    <div>
      <h3>August 25, 2025: Cloudflare initiates response activity</h3>
      <a href="#august-25-2025-cloudflare-initiates-response-activity">
        
      </a>
    </div>
    <p>By August 25, we had received additional intelligence about the incident and escalated our response beyond the initial vendor-recommended containment steps. We launched our own comprehensive investigation and remediation effort.</p><p>Our first priority was cutting off GRUB1's access at the source. We disabled the Drift user account, revoked its client ID and secrets, and completely purged all Salesloft software and browser extensions from Cloudflare systems. This comprehensive removal mitigated the risk of the threat actor reusing compromised tokens, regaining access through stale sessions, or leveraging software extensions for persistence.

Separately, we expanded our security review to include all third-party services connected to our Salesforce environment, rotating credentials as a precautionary measure to prevent any potential lateral movement by the threat actor. </p><p>Since we use Salesforce as our primary tool for managing our customer support data, the risk was that customers had submitted secrets, passwords, or other sensitive data in their customer service requests. We needed to understand what sensitive material the attacker now had. </p><p>We immediately focused on whether any of that data could have been used to compromise our customers accounts, systems, or infrastructure. We examined the data obtained by the threat actor to see if it contained exposed credentials, since cases include freeform text fields where customers may submit Cloudflare API tokens, keys, or logs to our support team. Our teams developed custom scanning tools using regex, entropy, and pattern-matching techniques to detect likely Cloudflare secrets at scale. </p><p>Our investigation confirmed that the exposure was strictly limited to the freeform text in Salesforce case objects—not attachments or files. Cases are used by sales and support teams to communicate internally about customer support issues and to communicate directly with customers. As a result, these case objects contained text-only data consisting of:</p><ul><li><p>The subject line of the Salesforce case</p></li><li><p>The body of the case (freeform text which may include any correspondence including keys, secrets, etc., if provided by the customer to Cloudflare)</p></li><li><p>Customer contact information (for example, company name, requestor email address and phone number, company domain name, and company country)</p></li></ul><p>This conclusion was validated through extensive reviews of integrations, authentication activity, endpoint telemetry, and network logs.</p>
    <div>
      <h3>August 26–29, 2025: Scaling the response and proactive measures</h3>
      <a href="#august-26-29-2025-scaling-the-response-and-proactive-measures">
        
      </a>
    </div>
    <p>While the primary Salesforce and Salesloft credentials had already been rotated, our next step was to terminate and securely re-establish our third-party integrations. We began methodically re-onboarding the terminated services, ensuring each was provisioned with new secrets and subject to stricter security controls.</p><p>Meanwhile, our teams continued to analyze the data that was exfiltrated. Based on the analysis, we triaged &amp; validated potential exposures, operating under the principle that any data that could have been exposed, was examined. This enabled us to take direct action by rotating Cloudflare platform-issued tokens immediately upon discovery—a total of 104 API tokens were rotated. No suspicious activity has been identified related to those tokens. </p>
    <div>
      <h3>September 2, 2025: Customers notified<b> </b></h3>
      <a href="#september-2-2025-customers-notified">
        
      </a>
    </div>
    <p>Based on Cloudflare’s detailed analysis—all impacted customers were formally notified via email and banner notices in our Dashboard with information about the incident and recommended next steps. </p>
    <div>
      <h2>Recommendations for all organizations</h2>
      <a href="#recommendations-for-all-organizations">
        
      </a>
    </div>
    <p>This incident highlights the critical need for heightened vigilance in securing SaaS applications and other third-party integrations. The data compromised across hundreds of companies targeted in this attack could be used to launch additional attacks. We strongly urge all organizations to adopt the following security measures:</p><ul><li><p><b>Disconnect Salesloft and its applications:</b> Immediately disconnect all Salesloft connections from your Salesforce environment and uninstall any related software or browser extensions.</p></li><li><p><b>Rotate credentials:</b> Reset the credentials for all third-party applications and integrations connected to your Salesforce instance. Rotate any credentials that may have been previously shared in a support case to Cloudflare. Based on the scope and intent of this attack, we also recommend rotating all third party credentials in your environment as well as any credentials that may have been included in a support case with any other vendor. </p></li><li><p><b>Implement frequent credential rotation:</b> Establish a regular rotation schedule for all API keys and other secrets used in your integrations to reduce the window of exposure.</p></li><li><p><b>Review support case data: </b>Review all customer support case data with your third-party providers to identify what sensitive information may have been exposed. Look for cases containing credentials, API keys, configuration details, or other sensitive data that customers may have shared. For Cloudflare customers specifically: you can access your support case history through the Cloudflare dashboard under <code>Support &gt; Get Help &gt; Technical Support &gt; My Activities</code>, where you can filter cases or use the "Download Cases" feature to conduct a comprehensive review.</p></li><li><p><b>Conduct forensics:</b> <b> </b>Review access logs and permissions to all third-party integrations and review <a href="https://cloud.google.com/blog/topics/threat-intelligence/data-theft-salesforce-instances-via-salesloft-drift"><u>public materials</u></a> associated with the Drift incident and conduct a security review of your environment as appropriate.</p></li><li><p><b>Enforce least privilege:</b> Audit all third-party applications to ensure they operate with the minimum level of access (least privilege) required for their function and ensure that admin accounts are not used for vendors. Additionally, enforce strict controls like IP address restrictions and session binding on all third-party and business-to-business (B2B) connections.</p></li><li><p><b>Enhance monitoring and controls:</b> Deploy enhanced monitoring to detect anomalies such as large data exports or logins from unfamiliar locations. While capturing third party to third party logs can be difficult, it is imperative that these logs are part of your security operations teams.</p></li></ul>
    <div>
      <h2>Indicators of compromise</h2>
      <a href="#indicators-of-compromise">
        
      </a>
    </div>
    <p>Below are the Indications of Compromise (IOCs) that we saw from GRUB1. We are publishing them so that other organizations, and especially those that may have been impacted by the Salesloft breach, can search their logs to confirm the same threat actor did not access their systems or third parties.</p><table><tr><th><p><b>Indicator</b></p></th><th><p><b>Type</b></p></th><th><p><b>Description</b></p></th></tr><tr><td><p>208[.]68[.]36[.]90</p></td><td><p>IPV4</p></td><td><p>DigitalOcean based infrastructure </p></td></tr><tr><td><p>44[.]215[.]108[.]109</p></td><td><p>IPV4</p></td><td><p>AWS based infrastructure </p></td></tr><tr><td><p>TruffleHog</p></td><td><p>User Agent</p></td><td><p>Open source Secret Scanning tool</p></td></tr><tr><td><p>Salesforce-Multi-Org-Fetcher/1.0</p></td><td><p>User Agent</p></td><td><p>User-Agent string linked to malicious tooling</p></td></tr><tr><td><p>Salesforce-CLI/1.0</p></td><td><p>User Agent</p></td><td><p>Salesforce Command Line Interface (CLI),</p></td></tr><tr><td><p>python-requests/2.32.4</p></td><td><p>User Agent</p></td><td><p>User agent may indicate custom scripting </p></td></tr><tr><td><p>Python/3.11 aiohttp/3.12.15</p></td><td><p>User Agent</p></td><td><p>User agent which may allow many API calls in parallel</p></td></tr></table>
    <div>
      <h2>Conclusion</h2>
      <a href="#conclusion">
        
      </a>
    </div>
    <p>We are responsible for the tools that we select and when those tools are compromised by sophisticated threat actors, we own the consequences. Our team responded to the notice, and our investigation confirmed that the impact was strictly limited to data in Salesforce case objects, with no compromise of other Cloudflare systems or infrastructure.</p><p>That said, we consider the compromise of <i>any</i> data to be unacceptable. Our customers trust Cloudflare with their data, their infrastructure, and their security. In turn, we sometimes place our trust in third-party tools which need to be monitored and carefully scoped in what they can access. We are responsible for this. We let our customers down. For this, we sincerely apologize.</p><p>As third-party tools increasingly integrate with internal corporate data across the industry, we need to approach each new tool with careful scrutiny. This incident affected hundreds of organizations through a single integration point, highlighting the interconnected risks in today's technology landscape. We are committed to developing new capabilities to help us and our customers defend against such attacks in the future—stay tuned for announcements during Cloudflare's Birthday Week later this month.</p><p>We are also committed to sharing threat intelligence and research with the broader security community. In the weeks ahead, our Cloudforce One team will publish an in-depth blog analyzing GRUB1’s tradecraft to support the broader community in defending against similar campaigns.</p>
    <div>
      <h2>Detailed event timeline</h2>
      <a href="#detailed-event-timeline">
        
      </a>
    </div>
    <p>The following table provides a granular, chronological view of GRUB1's specific actions during the incident.</p><table><tr><th><p><b>Date/Time (UTC)</b></p></th><th><p><b>Event Description</b></p></th></tr><tr><td><p><b>2025-08-09 11:51:13</b></p></td><td><p>GRUB1 observed leveraging Trufflehog and attempting to verify a token against a Cloudflare Customer Tenant: <code>client/v4/user/tokens/verify</code>, and received a 404 error from <code>44[.]215[.]108[.]109</code></p></td></tr><tr><td><p><b>2025-08-12 22:14:08</b></p></td><td><p>GRUB1 logged into Cloudflare’s Salesforce tenant from <code>44[.]215[.]108[.]109</code></p></td></tr><tr><td><p><b>2025-08-12 22:14:09</b></p></td><td><p>GRUB1 sent a <code>GET</code> request for a list of objects in Cloudflare’s Salesforce tenant: <code>/services/data/v58.0/sobjects/</code></p></td></tr><tr><td><p><b>2025-08-13 19:33:02</b></p></td><td><p>GRUB1 logged into Cloudflare’s Salesforce tenant from <code>44[.]215[.]108[.]109</code></p></td></tr><tr><td><p><b>2025-08-13 19:33:03</b></p></td><td><p>GRUB1 sent a <code>GET</code> request for a list of objects in Cloudflare's Salesforce tenant: <code>/services/data/v58.0/sobjects/</code></p></td></tr><tr><td><p><b>2025-08-13 19:33:07 and 19:33:09</b></p></td><td><p>GRUB1 sent a <code>GET</code> request for metadata information for case in Cloudflare’s Salesforce tenant: <code>/services/data/v58.0/sobjects/Case/describe/</code></p></td></tr><tr><td><p><b>2025-08-13 19:33:11</b></p></td><td><p>GRUB1 first observed executing Salesforce query: A broad query against the case object by <code>44[.]215[.]108[.]109</code>. This produced one of the earliest and larger data responses, consistent with reconnaissance via bulk record retrieval</p></td></tr><tr><td><p><b>2025-08-14 0:17:40</b></p></td><td><p>GRUB1 lists available objects and counts <code>“Account”</code>, <code>“Contact”</code> and <code>“User”</code> objects.</p></td></tr><tr><td><p><b>2025-08-14 00:17:47</b></p></td><td><p>GRUB1 queried Account table in Cloudflare’s Salesforce tenant: <code>“SELECT COUNT() FROM Account”</code> query on Cloudflare’s Salesforce tenant</p></td></tr><tr><td><p><b>2025-08-14 00:17:51</b></p></td><td><p>GRUB1 queried Contact table in Cloudflare’s Salesforce tenant: <code>“SELECT COUNT() FROM Contact”</code> query on Cloudflare’s Salesforce tenant</p></td></tr><tr><td><p><b>2025-08-14 00:18:00</b></p></td><td><p>GRUB1 queried User table in Cloudflare’s Salesforce tenant: <code>“SELECT COUNT() FROM User”</code> query on Cloudflare’s Salesforce tenant</p></td></tr><tr><td><p><b>2025-08-14 04:34:39</b></p></td><td><p>GRUB1 queried "CaseTeamMemberHistory” in Cloudflare’s Salesforce tenant: <code>“SELECT Id, IsDeleted, Name, CreatedDate, CreatedById, LastModifiedDate, LastModifiedById, SystemModstamp, LastViewedDate, LastReferencedDate, Case__c FROM CaseTeamMemberHistory__c LIMIT 5000”</code></p></td></tr><tr><td><p><b>2025-08-14 11:09:14</b></p></td><td><p>GRUB1 queried Organization table in Cloudflare’s Salesforce tenant: <code>“SELECT Id, Name, OrganizationType, InstanceName, IsSandbox FROM Organization LIMIT 1”</code></p></td></tr><tr><td><p><b>2025-08-14 11:09:21</b></p></td><td><p>GRUB1 queried User table in Cloudflare’s Salesforce tenant: <code>“SELECT Id, Username, Email, FirstName, LastName, Name, Title, CompanyName, Department, Division, Phone, MobilePhone, IsActive, LastLoginDate, CreatedDate, LastModifiedDate, TimeZoneSidKey, LocaleSidKey, LanguageLocaleKey, EmailEncodingKey FROM User WHERE IsActive = :x ORDER BY LastLoginDate DESC NULLS LAST LIMIT 20”</code></p></td></tr><tr><td><p><b>2025-08-14 11:09:22</b></p></td><td><p>GRUB1 sent a <code>GET</code> request on LimitSnapshot in Cloudflare’s Salesforce tenant: <code>/services/data/v58.0/limits/</code></p></td></tr><tr><td><p><b>2025-08-16 19:26:37</b></p></td><td><p>GRUB1 logged into Cloudflare’s Salesforce tenant from  <code>44[.]215[.]108[.]109</code></p></td></tr><tr><td><p><b>2025-08-16 19:28:08</b></p></td><td><p>GRUB1 queried Cases table in Cloudflare’s Salesforce tenant: <code>SELECT COUNT() FROM</code> Case</p></td></tr><tr><td><p><b>2025-08-17 11:11:23</b></p></td><td><p>GRUB1 logged into Cloudflare’s Salesforce tenant from <code>208[.]68[.]36[.]90</code></p></td></tr><tr><td><p><b>2025-08-17 11:11:55</b></p></td><td><p>GRUB1 queried Case table in Cloudflare’s Salesforce tenant: <code>SELECT COUNT() FROM </code>Case</p></td></tr><tr><td><p><b>2025-08-17 11:11:56 to 11:15:18</b></p></td><td><p>GRUB1 leveraged Salesforce BulkAPI 2.0 from <code>208[.]68[.]36[.]90</code> to <b>execute</b> a job to exfiltrate the Cases object </p></td></tr><tr><td><p><b>2025-08-17 11:15:42</b></p></td><td><p>GRUB1 leveraged Salesforce Bulk API 2.0 from <code>208[.]68[.]36[.]90</code> to<b> delete </b>the recently executed job used to exfiltrate the <i>C</i>ases object</p></td></tr></table><p></p> ]]></content:encoded>
            <category><![CDATA[Post Mortem]]></category>
            <guid isPermaLink="false">4769G2MCNVfvZe8a8Rr8bv</guid>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Craig Strubhart</dc:creator>
            <dc:creator>Grant Bourzikas</dc:creator>
        </item>
        <item>
            <title><![CDATA[How Cloudflare mitigated yet another Okta compromise]]></title>
            <link>https://blog.cloudflare.com/how-cloudflare-mitigated-yet-another-okta-compromise/</link>
            <pubDate>Fri, 20 Oct 2023 21:39:13 GMT</pubDate>
            <description><![CDATA[ On Wednesday, October 18, 2023, we discovered attacks on our system that we were able to trace back to Okta. We have verified that no Cloudflare customer information or systems were impacted by this event because of our rapid response.  ]]></description>
            <content:encoded><![CDATA[ <p></p><p>On Wednesday, October 18, 2023, we discovered attacks on our system that we were able to trace back to Okta – threat actors were able to leverage an authentication token compromised at Okta to pivot into Cloudflare’s Okta instance. While this was a troubling security incident, our Security Incident Response Team’s (SIRT) real-time detection and prompt response enabled containment and minimized the impact to Cloudflare systems and data. We have verified that <b>no Cloudflare customer information or systems were impacted by this event</b> because of our rapid response. Okta has now released a <a href="https://sec.okta.com/harfiles">public statement</a> about this incident.</p><p>This is the second time Cloudflare has been impacted by a breach of Okta’s systems. In <a href="/cloudflare-investigation-of-the-january-2022-okta-compromise/">March 2022</a>, we blogged about our investigation on how a breach of Okta affected Cloudflare. In that incident, we concluded that there was no access from the threat actor to any of our systems or data – Cloudflare’s use of hard keys for multi-factor authentication stopped this attack.  </p><p>The key to mitigating this week’s incident was our team’s early detection and immediate response. In fact, we contacted Okta about the breach of their systems before they had notified us. The attacker used an open session from Okta, with Administrative privileges, and accessed our Okta instance. We were able to use our Cloudflare Zero Trust Access, Gateway, and Data Loss Prevention and our Cloudforce One threat research to validate the scope of the incident and contain it before the attacker could gain access to customer data, customer systems, or our production network. With this confidence, we were able to quickly mitigate the incident before the threat-actors were able to establish persistence.</p><p>According to Okta’s statement, the threat-actor accessed Okta’s customer support system and viewed files uploaded by certain Okta customers as part of recent support cases. It appears that in our case, the threat-actor was able to hijack a session token from a support ticket which was created by a Cloudflare employee. Using the token extracted from Okta, the threat-actor accessed Cloudflare systems on October 18. In this sophisticated attack, we observed that threat-actors compromised two separate Cloudflare employee accounts within the Okta platform. We detected this activity internally more than 24 hours before we were notified of the breach by Okta. Upon detection, our SIRT was able to engage quickly to identify the complete scope of compromise and contain the security incident. Cloudflare’s <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust architecture</a> protects our production environment, which helped prevent any impact to our customers.</p>
    <div>
      <h2>Recommendations for Okta</h2>
      <a href="#recommendations-for-okta">
        
      </a>
    </div>
    <p>We urge Okta to consider implementing the following best practices, including:</p><ul><li><p>Take any report of compromise seriously and act immediately to limit damage; in this case Okta was first notified on October 2, 2023 by <a href="https://www.beyondtrust.com/blog/entry/okta-support-unit-breach">BeyondTrust</a> but the attacker still had access to their support systems at least until October 18, 2023.</p></li><li><p>Provide timely, responsible disclosures to your customers when you identify that a breach of your systems has affected them.</p></li><li><p>Require hardware keys to protect all systems, including third-party support providers.</p></li></ul><p>For a critical security service provider like Okta, we believe following these best practices is table stakes.</p>
    <div>
      <h2>Recommendations for Okta’s Customers</h2>
      <a href="#recommendations-for-oktas-customers">
        
      </a>
    </div>
    <p>If you are an Okta customer, we recommend that you reach out to them for further information regarding potential impact to your organization. We also advise the following actions:</p><ul><li><p>Enable Hardware MFA for all user accounts. Passwords alone do not offer the necessary level of protection against attacks. We strongly recommend the usage of hardware keys, as other methods of MFA can be vulnerable to phishing attacks.</p></li><li><p>Investigate and respond to:</p><ul><li><p>All unexpected password and MFA changes for your Okta instances.</p></li><li><p>Suspicious support-initiated events.</p></li><li><p>Ensure all password resets are valid and force a password reset for any under suspicion.</p></li><li><p>Any suspicious MFA-related events, ensuring only valid MFA keys are present in the user's account configuration.</p></li></ul></li><li><p>Monitor for:</p><ul><li><p>New Okta users created.</p></li><li><p>Reactivation of Okta users.</p></li><li><p>All sessions have proper authentication associated with it.</p></li><li><p>All Okta account and permission changes.</p></li><li><p>MFA policy overrides, MFA changes, and MFA removal.</p></li><li><p>Delegation of sensitive applications.</p></li><li><p>Supply chain providers accessing your tenants.</p></li></ul></li><li><p>Review session expiration policies to limit session hijack attacks.</p></li><li><p>Utilize tools to validate devices connected to your critical systems, such as Cloudflare Access Device Posture Check.</p></li><li><p>Practice defense in depth for your detection and monitoring strategies.</p></li></ul><p>Cloudflare’s Security and IT teams continue to remain vigilant after this compromise. If further information is disclosed by Okta or discovered through additional log analysis, we will publish an update to this post.</p><p><i>Cloudflare's Security Incident Response Team </i><a href="http://cloudflare.com/careers"><i>is hiring</i></a><i>.</i></p> ]]></content:encoded>
            <category><![CDATA[Okta]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <category><![CDATA[1.1.1.1]]></category>
            <guid isPermaLink="false">3tmgWjRNgroPDMiiOZFXsq</guid>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Lucas Ferreira</dc:creator>
            <dc:creator>Kimberly Hall</dc:creator>
            <dc:creator>Grant Bourzikas</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[The mechanics of a sophisticated phishing scam and how we stopped it]]></title>
            <link>https://blog.cloudflare.com/2022-07-sms-phishing-attacks/</link>
            <pubDate>Tue, 09 Aug 2022 15:56:30 GMT</pubDate>
            <description><![CDATA[ Yesterday, August 8, 2022, Twilio shared that they’d been compromised by a targeted phishing attack. Around the same time as Twilio was attacked, we saw an attack with very similar characteristics also targeting Cloudflare’s employees ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Yesterday, August 8, 2022, Twilio shared that they’d been <a href="https://www.twilio.com/blog/august-2022-social-engineering-attack">compromised by a targeted phishing attack</a>. Around the same time as Twilio was attacked, we saw an attack with very similar characteristics also targeting Cloudflare’s employees. While individual employees did fall for the phishing messages, we were able to thwart the attack through our own use of <a href="https://www.cloudflare.com/cloudflare-one/">Cloudflare One products</a>, and physical security keys issued to every employee that are required to access all our applications.</p><p>We have confirmed that no Cloudflare systems were compromised. Our <a href="/introducing-cloudforce-one-threat-operations-and-threat-research/">Cloudforce One threat intelligence team</a> was able to perform additional analysis to further dissect the mechanism of the attack and gather critical evidence to assist in tracking down the attacker.</p><p>This was a sophisticated attack targeting employees and systems in such a way that we believe most organizations would be likely to be breached. Given that the attacker is targeting multiple organizations, we wanted to share here a rundown of exactly what we saw in order to help other companies recognize and mitigate this attack.</p>
    <div>
      <h2>Targeted Text Messages</h2>
      <a href="#targeted-text-messages">
        
      </a>
    </div>
    <p>On July 20, 2022, the Cloudflare Security team received reports of employees receiving legitimate-looking text messages pointing to what appeared to be a Cloudflare Okta login page. The messages began at 2022-07-20 22:50 UTC. Over the course of less than 1 minute, at least 76 employees received text messages on their personal and work phones. Some messages were also sent to the employees family members. We have not yet been able to determine how the attacker assembled the list of employees phone numbers but have reviewed access logs to our employee directory services and have found no sign of compromise.</p><p>Cloudflare runs a 24x7 Security Incident Response Team (SIRT). Every Cloudflare employee is trained to report anything that is suspicious to the SIRT. More than 90 percent of the reports to SIRT turn out to not be threats. Employees are encouraged to report anything and never discouraged from over-reporting. In this case, however, the reports to SIRT were a real threat.</p><p>The text messages received by employees looked like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/2NzSGBSGfCogIk4BXWmXND/cb4bc7d2f174f8b360b7c51664e71f66/image3-5.png" />
            
            </figure><p>They came from four phone numbers associated with T-Mobile-issued SIM cards: (754) 268-9387, (205) 946-7573, (754) 364-6683 and (561) 524-5989. They pointed to an official-looking domain: cloudflare-okta.com. That domain had been registered via Porkbun, a <a href="https://www.cloudflare.com/learning/dns/glossary/what-is-a-domain-name-registrar/">domain registrar</a>, at 2022-07-20 22:13:04 UTC — less than 40 minutes before the phishing campaign began.</p><p>Cloudflare built our <a href="https://www.cloudflare.com/products/registrar/custom-domain-protection/">secure registrar product</a> in part to be able to monitor when domains using the Cloudflare brand were registered and get them shut down. However, because this domain was registered so recently, it had not yet been published as a new .com registration, so our systems did not detect its registration and our team had not yet moved to terminate it.</p><p>If you clicked on the link it took you to a phishing page. The phishing page was hosted on DigitalOcean and looked like this:</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/32GWziRZv7ijycvETvNHny/58f811265c86872398b876d64f65a55d/image1-13.png" />
            
            </figure><p>Cloudflare uses Okta as our identity provider. The phishing page was designed to look identical to a legitimate Okta login page. The phishing page prompted anyone who visited it for their username and password.</p>
    <div>
      <h2>Real-Time Phishing</h2>
      <a href="#real-time-phishing">
        
      </a>
    </div>
    <p>We were able to analyze the payload of the <a href="https://www.cloudflare.com/learning/access-management/phishing-attack/">phishing attack</a> based on what our employees received as well as its content being posted to services like VirusTotal by other companies that had been attacked. When the phishing page was completed by a victim, the credentials were immediately relayed to the attacker via the messaging service Telegram. This real-time relay was important because the phishing page would also prompt for a Time-based One Time Password (TOTP) code.</p><p>Presumably, the attacker would receive the credentials in real-time, enter them in a victim company’s actual login page, and, for many organizations that would generate a code sent to the employee via SMS or displayed on a password generator. The employee would then enter the TOTP code on the phishing site, and it too would be relayed to the attacker. The attacker could then, before the TOTP code expired, use it to access the company’s actual login page — defeating most two-factor authentication implementations.</p>
            <figure>
            
            <img src="https://cf-assets.www.cloudflare.com/zkvhlag99gkb/6kHLCU7dpKptSuJXwOy39X/0da593615149665ba8f7360e4232a996/image2-6.png" />
            
            </figure>
    <div>
      <h2>Protected Even If Not Perfect</h2>
      <a href="#protected-even-if-not-perfect">
        
      </a>
    </div>
    <p>We confirmed that three Cloudflare employees fell for the phishing message and entered their credentials. However, Cloudflare does not use TOTP codes. Instead, every employee at the company is issued a FIDO2-compliant security key from a vendor like YubiKey. Since the hard keys are tied to users and implement <a href="https://www.yubico.com/blog/creating-unphishable-security-key/">origin binding</a>, even a sophisticated, real-time phishing operation like this cannot gather the information necessary to log in to any of our systems. While the attacker attempted to log in to our systems with the compromised username and password credentials, they could not get past the hard key requirement.</p><p>But this phishing page was not simply after credentials and TOTP codes. If someone made it past those steps, the phishing page then initiated the download of a phishing payload which included AnyDesk’s remote access software. That software, if installed, would allow an attacker to control the victim’s machine remotely. We confirmed that none of our team members got to this step. If they had, however, our endpoint security would have stopped the installation of the remote access software.</p>
    <div>
      <h2>How Did We Respond?</h2>
      <a href="#how-did-we-respond">
        
      </a>
    </div>
    <p>The main response actions we took for this incident were:</p>
    <div>
      <h3>1. Block the phishing domain using Cloudflare Gateway</h3>
      <a href="#1-block-the-phishing-domain-using-cloudflare-gateway">
        
      </a>
    </div>
    <p>Cloudflare Gateway is a <a href="https://www.cloudflare.com/learning/access-management/what-is-a-secure-web-gateway/">Secure Web Gateway</a> solution providing threat and data protection with DNS / HTTP filtering and natively-integrated <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">Zero Trust</a>. We use this  solution internally to proactively identify malicious domains and block them. Our team added the malicious domain to Cloudflare Gateway to block all employees from accessing it.</p><p>Gateway’s automatic detection of malicious domains also identified the domain and blocked it, but the fact that it was registered and messages were sent within such a short interval of time meant that the system hadn’t automatically taken action before some employees had clicked on the links. Given this incident we are working to speed up how quickly malicious domains are identified and blocked. We’re also implementing controls on access to newly registered domains which we offer to customers but had not implemented ourselves.</p>
    <div>
      <h3>2. Identify all impacted Cloudflare employees and reset compromised credentials</h3>
      <a href="#2-identify-all-impacted-cloudflare-employees-and-reset-compromised-credentials">
        
      </a>
    </div>
    <p>We were able to compare recipients of the phishing texts to login activity and identify threat-actor attempts to authenticate to our employee accounts. We identified login attempts blocked due to the hard key (U2F) requirements indicating that the correct password was used, but the second factor could not be verified. For the three of our employees' credentials were leaked, we reset their credentials and any active sessions and initiated scans of their devices.</p>
    <div>
      <h3>3. Identify and take down threat-actor infrastructure</h3>
      <a href="#3-identify-and-take-down-threat-actor-infrastructure">
        
      </a>
    </div>
    <p>The threat actor's phishing domain was newly registered via Porkbun, and hosted on DigitalOcean. The phishing domain used to target Cloudflare was set up less than an hour before the initial phishing wave. The site had a Nuxt.js frontend, and a Django backend. We worked with DigitalOcean to shut down the attacker’s server. We also worked with Porkbun to seize control of the malicious domain.</p><p>From the failed sign-in attempts we were able to determine that the threat actor was leveraging Mullvad VPN software and distinctively using the Google Chrome browser on a Windows 10 machine. The VPN IP addresses used by the attacker were 198.54.132.88, and 198.54.135.222. Those IPs are assigned to Tzulo, a US-based dedicated server provider whose website claims they have servers located in Los Angeles and Chicago. It appears, actually, that the first was actually running on a server in the Toronto area and the latter on a server in the Washington, DC area. We blocked these IPs from accessing any of our services.</p>
    <div>
      <h3>4. Update detections to identify any subsequent attack attempts</h3>
      <a href="#4-update-detections-to-identify-any-subsequent-attack-attempts">
        
      </a>
    </div>
    <p>With what we were able to uncover about this attack, we incorporated additional signals to our already existing detections to specifically identify this threat-actor. At the time of writing we have not observed any additional waves targeting our employees. However, intelligence from the server indicated the attacker was targeting other organizations, including Twilio. We reached out to these other organizations and shared intelligence on the attack.</p>
    <div>
      <h3>5. Audit service access logs for any additional indications of attack</h3>
      <a href="#5-audit-service-access-logs-for-any-additional-indications-of-attack">
        
      </a>
    </div>
    <p>Following the attack, we screened all our system logs for any additional fingerprints from this particular attacker. Given Cloudflare Access serves as the central control point for all Cloudflare applications, we can search the logs for any indication the attacker may have breached any systems. Given employees’ phones were targeted, we also carefully reviewed the logs of our employee directory providers. We did not find any evidence of compromise.</p>
    <div>
      <h2>Lessons Learned and Additional Steps We’re Taking</h2>
      <a href="#lessons-learned-and-additional-steps-were-taking">
        
      </a>
    </div>
    <p>We learn from every attack. Even though the attacker was not successful, we are making additional adjustments from what we’ve learned. We’re adjusting the settings for Cloudflare Gateway to restrict or sandbox access to sites running on domains that were registered within the last 24 hours. We will also run any non-allow listed sites containing terms such as “cloudflare” “okta” “sso” and “2fa” through our <a href="https://www.cloudflare.com/learning/access-management/what-is-browser-isolation/">browser isolation technology</a>. We are also increasingly using <a href="https://www.cloudflare.com/products/zero-trust/email-security/">Cloudflare Area 1’s phish-identification technology</a> to scan the web and look for any pages that are designed to target Cloudflare. Finally, we’re tightening up our Access implementation to prevent any logins from unknown VPNs, residential proxies, and infrastructure providers. All of these are standard features of the same products we offer to customers.</p><p>The attack also reinforced the importance of three things we’re doing well. First, requiring hard keys for access to all applications. <a href="https://krebsonsecurity.com/2018/07/google-security-keys-neutralized-employee-phishing/">Like Google</a>, we have not seen any successful phishing attacks since rolling hard keys out. Tools like Cloudflare Access made it easy to support hard keys even across legacy applications. If you’re an organization interested in how we rolled out hard keys, reach out to <a>cloudforceone-irhelp@cloudflare.com</a> and our security team would be happy to share the best practices we learned through this process.</p><p>Second, using Cloudflare’s own technology to protect our employees and systems. Cloudflare One’s solutions like Access and Gateway were critical to staying ahead of this attack. We configured our Access implementation to require hard keys for every application. It also creates a central logging location for all application authentications. And, if ever necessary, a place from which we can kill the sessions of a potentially compromised employee. Gateway allows us the ability to shut down malicious sites like this one quickly and understand what employees may have fallen for the attack. These are all functionalities that we make available to Cloudflare customers as part of our Cloudflare One suite and this attack demonstrates how effective they can be.</p><p>Third, having a paranoid but blame-free culture is critical for security. The three employees who fell for the phishing scam were not reprimanded. We’re all human and we make mistakes. It’s critically important that when we do, we report them and don’t cover them up. This incident provided another example of why security is part of every team member at Cloudflare’s job.</p>
    <div>
      <h2>Detailed Timeline of Events</h2>
      <a href="#detailed-timeline-of-events">
        
      </a>
    </div>
    <p>.tg {border-collapse:collapse;border-spacing:0;} .tg td{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; overflow:hidden;padding:10px 5px;word-break:normal;} .tg th{border-color:black;border-style:solid;border-width:1px;font-family:Arial, sans-serif;font-size:14px; font-weight:normal;overflow:hidden;padding:10px 5px;word-break:normal;} .tg .tg-0lax{text-align:left;vertical-align:top}</p><p>2022-07-20 22:49 UTC</p><p>Attacker sends out 100+ SMS messages to Cloudflare employees and their families.</p><p>2022-07-20 22:50 UTC</p><p>Employees begin reporting SMS messages to Cloudflare Security team.</p><p>2022-07-20 22:52 UTC</p><p>Verify that the attacker's domain is blocked in Cloudflare Gateway for corporate devices.</p><p>2022-07-20 22:58 UTC</p><p>Warning communication sent to all employees across chat and email.</p><p>2022-07-20 22:50 UTC to2022-07-20 23:26 UTC</p><p>Monitor telemetry in the Okta System log &amp; Cloudflare Gateway HTTP logs to locate credential compromise. Clear login sessions and suspend accounts on discovery.</p><p>2022-07-20 23:26 UTC</p><p>Phishing site is taken down by the hosting provider.</p><p>2022-07-20 23:37 UTC</p><p>Reset leaked employee credentials.</p><p>2022-07-21 00:15 UTC</p><p>Deep dive into attacker infrastructure and capabilities.</p>
    <div>
      <h2>Indicators of compromise</h2>
      <a href="#indicators-of-compromise">
        
      </a>
    </div>
    
<table>
<thead>
  <tr>
    <th>Value</th>
    <th>Type</th>
    <th>Context and MITRE Mapping</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>cloudflare-okta[.]com hosted on 147[.]182[.]132[.]52</td>
    <td>Phishing URL</td>
    <td><a href="https://attack.mitre.org/techniques/T1566/002/">T1566.002</a>: Phishing: Spear Phishing Link sent to users.</td>
  </tr>
  <tr>
    <td>64547b7a4a9de8af79ff0eefadde2aed10c17f9d8f9a2465c0110c848d85317a</td>
    <td>SHA-256</td>
    <td><a href="https://attack.mitre.org/techniques/T1219/">T1219</a>: Remote Access Software being distributed by the threat actor</td>
  </tr>
</tbody>
</table>
    <div>
      <h2>What You Can Do</h2>
      <a href="#what-you-can-do">
        
      </a>
    </div>
    <p>If you are seeing similar attacks in your environment, please don’t hesitate to reach out to <a>cloudforceone-irhelp@cloudflare.com</a>, and we’re happy to share best practices on how to keep your business secure. If on the other hand, you are interested in learning more about how we implemented security keys please review our <a href="/how-cloudflare-implemented-fido2-and-zero-trust/">blog post</a> or reach out to <a>securitykeys@cloudflare.com</a>.</p><p>Finally, do you want to work on detecting and mitigating the next attacks with us? We’re hiring on our Detection and Response team, <a href="https://boards.greenhouse.io/cloudflare/jobs/4364485?gh_jid=4364485">come join us</a>!</p> ]]></content:encoded>
            <category><![CDATA[Security]]></category>
            <category><![CDATA[Post Mortem]]></category>
            <category><![CDATA[Phishing]]></category>
            <category><![CDATA[Cloudflare Gateway]]></category>
            <category><![CDATA[Cloudflare Access]]></category>
            <guid isPermaLink="false">4NqFdSmdzCcdoVLRQ05xzx</guid>
            <dc:creator>Matthew Prince</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</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[Cloudflare customers are protected from the Atlassian Confluence CVE-2022-26134]]></title>
            <link>https://blog.cloudflare.com/cloudflare-customers-are-protected-from-the-atlassian-confluence-cve-2022-26134/</link>
            <pubDate>Fri, 03 Jun 2022 05:30:00 GMT</pubDate>
            <description><![CDATA[ On June 02, 2022 Atlassian released a security advisory for their Confluence Server and Data Center applications, highlighting a critical severity unauthenticated remote code execution vulnerability. ]]></description>
            <content:encoded><![CDATA[ <p></p><p>Updated on 3rd of June: amended information according to Atlassian’s official advisory update.</p><p>On June 2, 2022 Atlassian released a security advisory for their <a href="https://confluence.atlassian.com/doc/confluence-security-advisory-2022-06-02-1130377146.html">Confluence Server and Data Center</a> applications, highlighting a critical severity unauthenticated remote code execution vulnerability. The vulnerability is as <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-26134">CVE-2022-26134</a> and  impacts all versions of Confluence Server and Data Center versions greater than 1.3.0.</p><p>Atlassian has released a patch and all Confluence customers should update immediately to the latest version available from the <a href="https://www.atlassian.com/software/confluence/download-archives">official download center</a>.</p><p>Cloudflare customers using either <a href="https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/">WAF</a> or Access are already protected. Atlassian also recommends implementing a WAF rule that blocks URLs containing <code>${</code> as it  may reduce risk of being compromised.  </p><p>Our own Confluence nodes are protected by both WAF and Access, and at the time of writing, we have found no evidence that our Confluence instance was exploited.</p><p>Cloudflare reviewed the security advisory, conducted our own analysis, and prepared a WAF mitigation rule via an emergency release. The rule, once tested, was deployed on June 2, 2022, at 23:38 UTC with a default action of BLOCK and the following IDs:</p><ul><li><p>100531 (for our legacy WAF)</p></li><li><p>408cff2b  (for our new WAF)</p></li></ul><p>All websites, including free customers using the Cloudflare WAF to protect their self-hosted Confluence applications have automatically been protected since the new rule was deployed.</p><p>Customers who have deployed Cloudflare Access in front of their Confluence applications were protected from external exploitation attempts even before the emergency release. Access verifies every request made to a Confluence application to ensure it is coming from an authenticated user. Any unauthenticated users attempting this exploit would have been blocked by Cloudflare before they could reach the Confluence server.</p><p>Customers not yet using <a href="https://www.cloudflare.com/learning/security/glossary/what-is-zero-trust/">zero trust</a> rules to protect access to their applications can <a href="https://developers.cloudflare.com/cloudflare-one/applications/configure-apps/self-hosted-apps/">follow these instructions</a> to enable Access now in a few minutes.</p>
    <div>
      <h3>Timeline of Events</h3>
      <a href="#timeline-of-events">
        
      </a>
    </div>
    
<table>
<colgroup>
<col></col>
<col></col>
</colgroup>
<thead>
  <tr>
    <th>2022-06-02 at 20:00 UTC</th>
    <th>Atlassian publishes security advisory</th>
  </tr>
</thead>
<tbody>
  <tr>
    <td>2022-06-02 at 23:38 UTC</td>
    <td>Cloudflare publishes WAF rule to target CVE 2022-26134</td>
  </tr>
</tbody>
</table> ]]></content:encoded>
            <category><![CDATA[Vulnerabilities]]></category>
            <category><![CDATA[CVE]]></category>
            <guid isPermaLink="false">5qtIPT3BCpdaVm01NkRwjE</guid>
            <dc:creator>Reid Tatoris</dc:creator>
            <dc:creator>Daniel Stinson-Diess</dc:creator>
            <dc:creator>Sourov Zaman</dc:creator>
            <dc:creator>Vaibhav Singhal</dc:creator>
        </item>
    </channel>
</rss>