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.
Product status
076a0ca02644657b13e4af363f487ced2942e9cb (git) before a5a89db6981a1ddf2314bf50cb49db5a3146185f
076a0ca02644657b13e4af363f487ced2942e9cb (git) before 1c2ebdeff8d088a2e47ae25d7b38447249adace2
076a0ca02644657b13e4af363f487ced2942e9cb (git) before a64b7bf84b4d5ea54218c5d374ec87fff9000f43
076a0ca02644657b13e4af363f487ced2942e9cb (git) before 2898080c054ea4d6ddfaaf21bbedbc229a9a8376
076a0ca02644657b13e4af363f487ced2942e9cb (git) before fd002ff2ea030cbfb0188a11b3c60ce7f84485f4
076a0ca02644657b13e4af363f487ced2942e9cb (git) before 929f7a9a7aad9404a5867216c3f8738232355b38
076a0ca02644657b13e4af363f487ced2942e9cb (git) before bff0f4f06f12d6d9bc565a3e1378abd4f6f5ce36
076a0ca02644657b13e4af363f487ced2942e9cb (git) before 35177c6877134a21315f37d57a5577846225623e
3.4
Any version before 3.4
5.10.253 (semver)
5.15.203 (semver)
6.1.168 (semver)
6.6.134 (semver)
6.12.81 (semver)
6.18.22 (semver)
6.19.12 (semver)
7.0 (original_commit_for_fix)
References
git.kernel.org/...c/a5a89db6981a1ddf2314bf50cb49db5a3146185f
git.kernel.org/...c/1c2ebdeff8d088a2e47ae25d7b38447249adace2
git.kernel.org/...c/a64b7bf84b4d5ea54218c5d374ec87fff9000f43
git.kernel.org/...c/2898080c054ea4d6ddfaaf21bbedbc229a9a8376
git.kernel.org/...c/fd002ff2ea030cbfb0188a11b3c60ce7f84485f4
git.kernel.org/...c/929f7a9a7aad9404a5867216c3f8738232355b38
git.kernel.org/...c/bff0f4f06f12d6d9bc565a3e1378abd4f6f5ce36
git.kernel.org/...c/35177c6877134a21315f37d57a5577846225623e