In the Linux kernel, the following vulnerability has been resolved: net: ipv4: bound TCP reordering sysctl writes and MTU probe sizes Reject invalid `net.ipv4.tcp_reordering` values before they reach TCP socket state. The sysctl is stored as an `int` but copied into the `u32` `tp->reordering` field for new sockets, so negative writes wrap to large values. With `tcp_mtu_probing=2`, the wrapped value can overflow the `tcp_mtu_probe()` size calculation and drive the MTU probing path into an out-of-bounds read. Route `tcp_reordering` writes through `proc_dointvec_minmax()` and require it to be at least 1. Also require `tcp_max_reordering` to be at least 1 so the configured maximum cannot become negative either. When registering the table for a non-init network namespace, relocate `extra2` pointers that refer into `init_net.ipv4` so the `tcp_reordering` upper bound follows that namespace's `tcp_max_reordering`. Harden `tcp_mtu_probe()` itself by computing `size_needed` as `u64`. This keeps the send queue and window checks from being bypassed through signed integer overflow.
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:H
| Attack Vector | LOCAL |
|---|---|
| Attack Complexity | LOW |
| Privileges Required | LOW |
| User Interaction | NONE |
| Scope | UNCHANGED |
| Confidentiality Impact | HIGH |
| Integrity Impact | NONE |
| Availability Impact | HIGH |
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Type: Secondary
Exploitability Score: 1.8
Impact Score: 5.2
| Source | Type | Description |
|---|---|---|
| [email protected] | Primary |
en
CWE-190
|
| Vendor | Product | Version | Update | Type |
|---|---|---|---|---|
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23a5986480> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23a5984b40> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d24246c1a40> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d24245a17c0> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d2424507100> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d2424506000> | Operating System |
| linux | linux_kernel | * | <built-in method update of dict object at 0x7d23a59850c0> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d24246c2e40> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d24246c1d00> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d23a5986d40> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d24246c3040> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d23a5984940> | Operating System |
| linux | linux_kernel | 2.6.24 | <built-in method update of dict object at 0x7d24604e1dc0> | Operating System |
| Vulnerable | CPE |
|---|---|
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:-:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:rc4:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:rc5:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:rc6:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:rc7:*:*:*:*:*:* |
| Yes | cpe:2.3:o:linux:linux_kernel:2.6.24:rc8:*:*:*:*:*:* |