HIGH
tcp SACK Overflow
CVE-2019-11477
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
KernelScan AI7.5HIGH
01Description
Jonathan Looney discovered that the TCP_SKB_CB(skb)->tcp_gso_segs value was subject to an integer overflow in the Linux kernel when handling TCP Selective Acknowledgments (SACKs). A remote attacker could use this to cause a denial of service. This has been fixed in stable kernel releases 4.4.182, 4.9.182, 4.14.127, 4.19.52, 5.1.11, and is fixed in commit 3b4929f65b0d8249f19a50245cd88ed1a2f78cff.
02KernelScan AI Analysis
Risk summary
A system running a vulnerable kernel is at risk when communicating with an untrusted TCP peer that negotiates selective acknowledgments. A remote attacker can crash the kernel and disrupt networking and other services without credentials, user interaction, or local access.
Vulnerability analysis
During selective-acknowledgment processing, the TCP stack can coalesce enough retransmission data into one network buffer that its 16-bit segment count wraps. The resulting inconsistent accounting can trigger an internal assertion and crash the kernel. The fix prevents coalescing when either the representable payload or fragment count would exceed the counter’s limits, leaving oversized cases on the normal fallback path; the remaining consistency check is also made non-fatal. An unauthenticated remote attacker needs to participate in a SACK-enabled TCP connection and advertise the smallest accepted MSS, but needs no local privilege, physical access, or special hardware access.
Lifecycle
03Fix Versions
| Branch | Introduced | Fixed in | Patch commit |
|---|---|---|---|
| mainline | — | 5.2 | 3b4929f65b0d |
| cip/4.19 | — | 4.19.52-cip4 | c09be31461ed |
| cip/4.19-rt | — | 4.19.72-cip10-rt4 | c09be31461ed |
| cip/4.4 | — | 4.4.182-cip34 | 4657ee0fe05e |
| cip/4.4-rt | — | 4.4.185-cip35-rt24 | 4657ee0fe05e |
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.19 | Fixed in 4.19.52-cip4 |
| cip/4.19-rt | Fixed in 4.19.72-cip10-rt4 |
| cip/4.4 | Fixed in 4.4.182-cip34 |
| cip/4.4-rt | Fixed in 4.4.185-cip35-rt24 |