xen/netback: Ensure protocol headers don't fall in the non-linear area
authorRoss Lagerwall <ross.lagerwall@citrix.com>
Tue, 22 Nov 2022 09:16:59 +0000 (09:16 +0000)
committerSalvatore Bonaccorso <carnil@debian.org>
Tue, 13 Dec 2022 20:46:50 +0000 (20:46 +0000)
commitcb9f39715fd80b679816dd80474bd6e509b3534d
tree542bdcbea441aeb89d7fcfe335cacb6e73ca7a0d
parent10f737a35a2e72fa526390f6f650a4b592d7a761
xen/netback: Ensure protocol headers don't fall in the non-linear area

Origin: https://git.kernel.org/linus/ad7f402ae4f466647c3a669b8a6f3e5d4271c84a
Bug-Debian-Security: https://security-tracker.debian.org/tracker/CVE-2022-3643

In some cases, the frontend may send a packet where the protocol headers
are spread across multiple slots. This would result in netback creating
an skb where the protocol headers spill over into the non-linear area.
Some drivers and NICs don't handle this properly resulting in an
interface reset or worse.

This issue was introduced by the removal of an unconditional skb pull in
the tx path to improve performance.  Fix this without reintroducing the
pull by setting up grant copy ops for as many slots as needed to reach
the XEN_NETBACK_TX_COPY_LEN size. Adjust the rest of the code to handle
multiple copy operations per skb.

This is XSA-423 / CVE-2022-3643.

Fixes: 7e5d7753956b ("xen-netback: remove unconditional __pskb_pull_tail() in guest Tx path")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: Juergen Gross <jgross@suse.com>
Gbp-Pq: Topic bugfix/all
Gbp-Pq: Name xen-netback-Ensure-protocol-headers-don-t-fall-in-th.patch
drivers/net/xen-netback/netback.c