Blame SOURCES/CVE-2022-2588.patch

486b82
From 9729284acf8441ad27c2c87d2d91e5faef742d98 Mon Sep 17 00:00:00 2001
486b82
From: Julia Denham <jdenham@redhat.com>
486b82
Date: Wed, 5 Oct 2022 09:14:27 -0400
486b82
Subject: [KPATCH CVE-2022-2588] kpatch fixes for CVE-2022-2588
486b82
486b82
Kernels:
486b82
3.10.0-1160.45.1.el7
486b82
3.10.0-1160.62.1.el7
486b82
3.10.0-1160.66.1.el7
486b82
3.10.0-1160.71.1.el7
486b82
3.10.0-1160.76.1.el7
486b82
486b82
486b82
Kpatch-MR: https://gitlab.com/redhat/prdsc/rhel/src/kpatch/rhel-7/-/merge_requests/45
486b82
Approved-by: Joe Lawrence (@joe.lawrence)
486b82
Approved-by: Yannick Cote (@ycote1)
486b82
Changes since last build:
486b82
arches: x86_64 ppc64le
486b82
cls_route.o: changed function: route4_change
486b82
---------------------------
486b82
486b82
Modifications: none
486b82
486b82
commit 74eb26c74da4446e9b826103e61361531c6ca716
486b82
Author: Davide Caratti <dcaratti@redhat.com>
486b82
Date:   Mon Aug 29 15:47:31 2022 +0200
486b82
486b82
    net_sched: cls_route: remove from list when handle is 0
486b82
486b82
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2121809
486b82
    Upstream Status: net.git commit 9ad36309e271
486b82
    CVE: CVE-2022-2588
486b82
    Conflicts: None
486b82
486b82
    commit 9ad36309e2719a884f946678e0296be10f0bb4c1
486b82
    Author: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
486b82
    Date:   Tue Aug 9 14:05:18 2022 -0300
486b82
486b82
        net_sched: cls_route: remove from list when handle is 0
486b82
486b82
        When a route filter is replaced and the old filter has a 0 handle, the old
486b82
        one won't be removed from the hashtable, while it will still be freed.
486b82
486b82
        The test was there since before commit 1109c00547fc ("net: sched: RCU
486b82
        cls_route"), when a new filter was not allocated when there was an old one.
486b82
        The old filter was reused and the reinserting would only be necessary if an
486b82
        old filter was replaced. That was still wrong for the same case where the
486b82
        old handle was 0.
486b82
486b82
        Remove the old filter from the list independently from its handle value.
486b82
486b82
        This fixes CVE-2022-2588, also reported as ZDI-CAN-17440.
486b82
486b82
        Reported-by: Zhenpeng Lin <zplin@u.northwestern.edu>
486b82
        Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
486b82
        Reviewed-by: Kamal Mostafa <kamal@canonical.com>
486b82
        Cc: <stable@vger.kernel.org>
486b82
        Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
486b82
        Link: https://lore.kernel.org/r/20220809170518.164662-1-cascardo@canonical.com
486b82
        Signed-off-by: Jakub Kicinski <kuba@kernel.org>
486b82
486b82
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
486b82
486b82
Signed-off-by: Julia Denham <jdenham@redhat.com>
486b82
---
486b82
 net/sched/cls_route.c | 2 +-
486b82
 1 file changed, 1 insertion(+), 1 deletion(-)
486b82
486b82
diff --git a/net/sched/cls_route.c b/net/sched/cls_route.c
486b82
index 2fed29fa504e..d97c5bcdfa43 100644
486b82
--- a/net/sched/cls_route.c
486b82
+++ b/net/sched/cls_route.c
486b82
@@ -526,7 +526,7 @@ static int route4_change(struct net *net, struct sk_buff *in_skb,
486b82
 	rcu_assign_pointer(f->next, f1);
486b82
 	rcu_assign_pointer(*fp, f);
486b82
 
486b82
-	if (fold && fold->handle && f->handle != fold->handle) {
486b82
+	if (fold) {
486b82
 		th = to_hash(fold->handle);
486b82
 		h = from_hash(fold->handle >> 16);
486b82
 		b = rtnl_dereference(head->table[th]);
486b82
-- 
486b82
2.37.3
486b82
486b82