Skip to main content

Incident · Mid

CrowdStrike 2024: Channel File 291 takes down 8.5 million machines

Real incident. Key points: progressive deploys and cell-based architecture.

12 min read · Incident on 2024, lasted · Source: CrowdStrike · Content reviewed on October 23, 2026

Short answer

Real incident. Key points: progressive deploys and cell-based architecture. On July 19, 2024, a content update to CrowdStrike's Falcon sensor took down Windows hosts. The source for this case is the root cause analysis (RCA) report published by the company itself, complemented by its preliminary incident report.

01 · CONTEXT

A kernel sensor and two update paths

On July 19, 2024, a content update to CrowdStrike's Falcon sensor took down Windows hosts. The source for this case is the root cause analysis (RCA) report published by the company itself, complemented by its preliminary incident report. The sensor reaches the customer through two paths: Sensor Content, shipped along with the sensor, and Rapid Response Content, delivered from the cloud to react quickly to new threats.

Rapid Response Content is configuration, not code. Sensor Content, on the other hand, follows a staged release, with internal use, early adopters, and only then general availability, and the customer chooses which version to install. The RCA is precisely about bringing that staged discipline to the fast path.

  1. Detection engineers create new rules, and the configuration system turns them into template instances.

    Architecture diagram: Delivering detection content to the sensor
    CLDetection engineering
    CPContent configuration system
    CPContent validator
    EDGChannel file distribution
    CPSensor on the Windows host
  2. Before publication, the validator checks the content against the template type definition.

    Architecture diagram: Delivering detection content to the sensor
    CLDetection engineering
    CPContent configuration system
    CPContent validator
    EDGChannel file distribution
    CPSensor on the Windows host
  3. The channel file is published and delivered to online sensors.

    Architecture diagram: Delivering detection content to the sensor
    CLDetection engineering
    CPContent configuration system
    CPContent validator
    EDGChannel file distribution
    CPSensor on the Windows host
  4. On the host, the sensor runs as a kernel driver: an error in it takes down the entire system, not just the application.

    Architecture diagram: Delivering detection content to the sensor
    CLDetection engineering
    CPContent configuration system
    CPContent validator
    EDGChannel file distribution
    CPSensor on the Windows hostkernel

02 · THE INCIDENT

A short window, an entire Windows fleet

The faulty update was published at 04:09 UTC on July 19, 2024 and reverted at 05:27 UTC. Anyone who was online in that window and received the channel file was affected; anyone who connected after the revert, or did not connect during the window, was not.

In scopeOut of scope
SistemaWindows with sensor 7.11 or higherMac and Linux
MomentoOnline between 04:09 and 05:27 UTC and with the update receivedOnline only after the revert, or without a connection during the window

On July 29, the company reported that about 99% of Windows sensors were online compared with before the update.

03 · THE ROOT CAUSE

Twenty values delivered, twenty-one expected

The cause was not a single error but the combination of three: the template type definition called for 21 inputs while the integration code supplied 20, the interpreter had a latent out-of-bounds read, and no test exercised a non-wildcard criterion in the 21st field.

  1. The template type definition said it received 21 input fields, and the validator checked the content against that definition.

    Architecture diagram: Template, validator, and interpreter
    DBTemplate type definition
    CPContent validator
    DBChannel file
    CPSensor integration code
    CPContent interpreter
  2. The sensor's integration code gave the interpreter only 20 values, one fewer than the definition promised.

    Architecture diagram: Template, validator, and interpreter
    DBTemplate type definition
    CPContent validator
    DBChannel file
    CPSensor integration codeone value short
    CPContent interpreter
  3. In the tests and the first instances, the 21st field used a wildcard, so the test did not expose the missing value.

    Architecture diagram: Template, validator, and interpreter
    DBTemplate type definition
    CPContent validator
    DBChannel file
    CPSensor integration code
    CPContent interpreter
  4. On July 19, an instance came in with a non-wildcard criterion in the 21st field. The validator, which assumed 21 inputs, approved it.

    Architecture diagram: Template, validator, and interpreter
    DBTemplate type definition
    CPContent validatorassumed the wrong contract
    DBChannel filenew instance
    CPSensor integration code
    CPContent interpreter
  5. The interpreter tried to read the 21st value, which did not exist: an out-of-bounds read, an unhandled exception, and a system crash.

    Architecture diagram: Template, validator, and interpreter
    DBTemplate type definition
    CPContent validator
    DBChannel file
    CPSensor integration code
    CPContent interpreterout-of-bounds read

Memory dump analysis points to the csagent.sys driver, a kernel driver, as the source of the invalid read.

This is a classic case of an inconsistent contract: two parts of the system disagreed on the data format, and each one passed the checks that were based on its own assumption.

04 · WHY NOBODY SAW IT

Passing tests and inherited confidence

The automated tests used a static set of 12 cases, and the test channel included a wildcard criterion in the 21st field of every instance. As a result, the out-of-bounds read was never exercised. Between April 8 and 24, 2024, three additional instances were deployed and worked as expected.

The decision to deploy the July instances weighed the tests done before the template type launched, confidence in the validator's checks, and earlier successful deployments.

05 · WHAT CHANGED

Closing the cause and reducing the blast radius

What was missingAnnounced fix
Sensor buildThe number of fields in the template type was not validatedA compiler patch began validating the number of inputs
InterpretadorThere was no bounds check on the input vectorBounds check added to the function that reads the inputs
TestesOnly wildcard criteria in the last fieldAutomated tests with a non-wildcard criterion in every field
ValidadorApproved content over more fields than the sensor suppliedNew checks against criteria beyond the supplied fields

Besides closing the cause, the RCA addresses limiting the damage of a next failure. The finding is direct: each template instance must be deployed in stages. Instances approved in the canary are promoted to progressively wider rings, or reverted if problems arise, and promotion to the next ring comes with extra observation time, during which telemetry is collected.

  1. Validated content goes first to a canary ring, a small group of sensors.

    Architecture diagram: Ring-based content deployment with telemetry
    CPContent configuration system
    CPCanary ring
    CPIntermediate rings
    CPFull fleet
    NWHealth telemetry
    CLCustomer policy
  2. Canary telemetry shows whether there are system crashes, a rise in false detections, or performance problems.

    Architecture diagram: Ring-based content deployment with telemetry
    CPContent configuration system
    CPCanary ring
    CPIntermediate rings
    CPFull fleet
    NWHealth telemetry
    CLCustomer policy
  3. With healthy signals, the system promotes the content. With bad signals, it reverts.

    Architecture diagram: Ring-based content deployment with telemetry
    CPContent configuration system
    CPCanary ring
    CPIntermediate rings
    CPFull fleet
    NWHealth telemetry
    CLCustomer policy
  4. Promotion proceeds ring by ring until the full fleet, and each ring accumulates observation time before the next.

    Architecture diagram: Ring-based content deployment with telemetry
    CPContent configuration system
    CPCanary ring
    CPIntermediate rings
    CPFull fleetlast
    NWHealth telemetry
    CLCustomer policy
  5. The customer also gains control over where and when content is deployed.

    Architecture diagram: Ring-based content deployment with telemetry
    CPContent configuration system
    CPCanary ring
    CPIntermediate rings
    CPFull fleet
    NWHealth telemetry
    CLCustomer policy

06 · LESSONS

What to take into your design

The first lesson is about disponibilidade: every path that reaches the entire fleet must have a stage that limits the damage before the failure signal, whether it is code or configuration. The second is about observabilidade: promoting content only makes sense if the previous stage's telemetry can say it is healthy.

The third is about recovery: reverting the content at the source does not, by itself, fix the machines that already loaded the faulty file. A disaster recovery plan must account for the case where the agent that failed is on all hosts at the same time.

Frequently asked questions

What is CrowdStrike 2024: Channel File 291 takes down 8.5 million machines?

Real incident. Key points: progressive deploys and cell-based architecture.

What does the CrowdStrike 2024: Channel File 291 takes down 8.5 million machines design cover?

It is organized in these sections: A kernel sensor and two update paths, A short window, an entire Windows fleet, Twenty values delivered, twenty-one expected, Passing tests and inherited confidence, Closing the cause and reducing the blast radius, and What to take into your design.

How long is CrowdStrike 2024: Channel File 291 takes down 8.5 million machines and what level is it?

It takes about 12 minutes to read and is rated Mid level.

Now design it yourself

Run this case as an interview in the System Design school: you make the decisions, the tutor challenges them and you see how your design scores.