/plushcap/analysis/cloudflare/the-tale-of-a-single-register-value

The tale of a single register value

What's this blog post about?

A software bug known as "a packet of death" was discovered and debugged by Jakub Sitnicki. The issue caused the network stack to crash in reaction to a single received network packet, taking down the whole operating system with it. This problem was identified in Linux's ipv4 stack, where servers were crashing sporadically. By examining the kernel oops report and using tools like decode_stacktrace.sh script, Sitnicki traced the issue to a specific function and then further analyzed the code leading up to the crash. The bug was found to be related to GSO (Generic Segmentation Offload) and GRO (Generic Receive Offload), which are processes that aim to optimize packet handling in network stacks. By understanding these mechanisms, Sitnicki was able to reproduce the crash and identify the root cause of the issue. The fix involved updating the header offsets in a super-packet as it travels through the gro_complete callbacks.

Company
Cloudflare

Date published
Nov. 3, 2021

Author(s)
Jakub Sitnicki

Word count
3732

Hacker News points
15

Language
English


By Matt Makai. 2021-2024.