[SRU OEM-5.14 1/1] xen-netfront: restore __skb_queue_tail() positioning in xennet_get_responses()

Cengiz Can cengiz.can at canonical.com
Wed Oct 12 02:17:59 UTC 2022


From: Jan Beulich <jbeulich at suse.com>

The commit referenced below moved the invocation past the "next" label,
without any explanation. In fact this allows misbehaving backends undue
control over the domain the frontend runs in, as earlier detected errors
require the skb to not be freed (it may be retained for later processing
via xennet_move_rx_slot(), or it may simply be unsafe to have it freed).

This is CVE-2022-33743 / XSA-405.

Fixes: 6c5aa6fc4def ("xen networking: add basic XDP support for xen-netfront")
Signed-off-by: Jan Beulich <jbeulich at suse.com>
Reviewed-by: Juergen Gross <jgross at suse.com>
Signed-off-by: Juergen Gross <jgross at suse.com>
CVE-2022-33743
(cherry picked from commit f63c2c2032c2e3caad9add3b82cc6e91c376fd26)
Signed-off-by: Cengiz Can <cengiz.can at canonical.com>
---
 drivers/net/xen-netfront.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
index 61e747a79f561..dc37bff88d426 100644
--- a/drivers/net/xen-netfront.c
+++ b/drivers/net/xen-netfront.c
@@ -999,8 +999,10 @@ static int xennet_get_responses(struct netfront_queue *queue,
 			}
 		}
 		rcu_read_unlock();
-next:
+
 		__skb_queue_tail(list, skb);
+
+next:
 		if (!(rx->flags & XEN_NETRXF_more_data))
 			break;
 
-- 
2.34.1




More information about the kernel-team mailing list