CRITICAL
net UDP Peek Checksum Race
CVE-2016-10229
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
KernelScan AI9.8CRITICAL
01Description
udp.c in the Linux kernel before 4.5 allows remote attackers to execute arbitrary code via UDP traffic that triggers an unsafe second checksum calculation during execution of a recv system call with the MSG_PEEK flag.
02KernelScan AI Analysis
Risk summary
An unauthenticated remote UDP sender can trigger a kernel memory-corruption condition when a receiving process peeks at an incoming datagram with an undersized buffer. If the vulnerable path is reached, arbitrary code may execute with kernel privileges, putting reachable UDP services that use this receive pattern at risk.
Vulnerability analysis
When a peeked datagram is larger than the receiver's buffer, the original receive path could complete checksum validation and then make a second, state-dependent checksum-and-copy decision on the same packet. That repeated handling was unsafe for a short destination buffer and could corrupt kernel memory, leading to arbitrary code execution. The fix retains the result of the first validation and uses the copy path that safely handles truncated user buffers, avoiding a second checksum calculation in both IPv4 and IPv6. An unauthenticated remote sender can reach the flaw through a reachable UDP socket when a target process performs a peek with a buffer smaller than the arriving datagram; no special hardware or local attacker privilege is required.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| 3.10 | — | 3.10.103 | 98f57e42cab0 |
| 4.5 | — | 4.5 | — |
| mainline | — | 4.5-rc1 | 197c949e7798 |
| cip/4.4 | — | 4.4.42-cip1 | dfe2042d9606 |
| cip/4.4-rt | — | 4.4.75-cip6-rt1 | dfe2042d9606 |
04CIP Kernels
State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.
| CIP tree | State |
|---|---|
| cip/4.4 | Fixed in 4.4.42-cip1 |
| cip/4.4-rt | Fixed in 4.4.75-cip6-rt1 |