]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
netfilter: ctnetlink: use helper function to calculate expect ID
authorPablo Neira Ayuso <pablo@netfilter.org>
Sat, 13 Jul 2024 14:47:38 +0000 (16:47 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Wed, 17 Jul 2024 17:00:47 +0000 (19:00 +0200)
Delete expectation path is missing a call to the nf_expect_get_id()
helper function to calculate the expectation ID, otherwise LSB of the
expectation object address is leaked to userspace.

Fixes: 3c79107631db ("netfilter: ctnetlink: don't use conntrack/expect object addresses as id")
Reported-by: zdi-disclosures@trendmicro.com
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
net/netfilter/nf_conntrack_netlink.c

index 3b846cbdc050d324626586fb6ece00985efd874b..4cbf71d0786b0d0bdf57ea2d89a578361531ce77 100644 (file)
@@ -3420,7 +3420,8 @@ static int ctnetlink_del_expect(struct sk_buff *skb,
 
                if (cda[CTA_EXPECT_ID]) {
                        __be32 id = nla_get_be32(cda[CTA_EXPECT_ID]);
-                       if (ntohl(id) != (u32)(unsigned long)exp) {
+
+                       if (id != nf_expect_get_id(exp)) {
                                nf_ct_expect_put(exp);
                                return -ENOENT;
                        }