Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: ctnetlink: zero expect NAT fields when CTA_EXPECT_NAT absent ctnetlink_alloc_expect() allocates expectations from a non-zeroing slab cache via nf_ct_expect_alloc(). When CTA_EXPECT_NAT is not present in the netlink message, saved_addr and saved_proto are never initialized. Stale data from a previous slab occupant can then be dumped to userspace by ctnetlink_exp_dump_expect(), which checks these fields to decide whether to emit CTA_EXPECT_NAT. The safe sibling nf_ct_expect_init(), used by the packet path, explicitly zeroes these fields. Zero saved_addr, saved_proto and dir in the else branch, guarded by IS_ENABLED(CONFIG_NF_NAT) since these fields only exist when NAT is enabled. Confirmed by priming the expect slab with NAT-bearing expectations, freeing them, creating a new expectation without CTA_EXPECT_NAT, and observing that the ctnetlink dump emits a spurious CTA_EXPECT_NAT containing stale data from the prior allocation.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
076a0ca02644657b13e4af363f487ced2942e9cb to < a5a89db6981a1ddf2314bf50cb49db5a3146185faffected076a0ca02644657b13e4af363f487ced2942e9cb to < 1c2ebdeff8d088a2e47ae25d7b38447249adace2affected076a0ca02644657b13e4af363f487ced2942e9cb to < a64b7bf84b4d5ea54218c5d374ec87fff9000f43affected076a0ca02644657b13e4af363f487ced2942e9cb to < 2898080c054ea4d6ddfaaf21bbedbc229a9a8376affected076a0ca02644657b13e4af363f487ced2942e9cb to < fd002ff2ea030cbfb0188a11b3c60ce7f84485f4affected076a0ca02644657b13e4af363f487ced2942e9cb to < 929f7a9a7aad9404a5867216c3f8738232355b38affected076a0ca02644657b13e4af363f487ced2942e9cb to < bff0f4f06f12d6d9bc565a3e1378abd4f6f5ce36affected076a0ca02644657b13e4af363f487ced2942e9cb to < 35177c6877134a21315f37d57a5577846225623eaffected
Linux Linux
Default version status: affected
3.4affected0 to < 3.4unaffected5.10.253 to ≤ 5.10.*unaffected5.15.203 to ≤ 5.15.*unaffected6.1.168 to ≤ 6.1.*unaffected6.6.134 to ≤ 6.6.*unaffected6.12.81 to ≤ 6.12.*unaffected6.18.22 to ≤ 6.18.*unaffected6.19.12 to ≤ 6.19.*unaffected7.0 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a5a89db6981a1ddf2314bf50cb49db5a3146185f ↗
- https://git.kernel.org/stable/c/1c2ebdeff8d088a2e47ae25d7b38447249adace2 ↗
- https://git.kernel.org/stable/c/a64b7bf84b4d5ea54218c5d374ec87fff9000f43 ↗
- https://git.kernel.org/stable/c/2898080c054ea4d6ddfaaf21bbedbc229a9a8376 ↗
- https://git.kernel.org/stable/c/fd002ff2ea030cbfb0188a11b3c60ce7f84485f4 ↗
- https://git.kernel.org/stable/c/929f7a9a7aad9404a5867216c3f8738232355b38 ↗
- https://git.kernel.org/stable/c/bff0f4f06f12d6d9bc565a3e1378abd4f6f5ce36 ↗
- https://git.kernel.org/stable/c/35177c6877134a21315f37d57a5577846225623e ↗
- https://cert-portal.siemens.com/productcert/html/ssa-082556.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-019113.html ↗
- https://cert-portal.siemens.com/productcert/html/ssa-457936.html ↗