• Ross Lagerwall's avatar
    xen/netback: Ensure protocol headers don't fall in the non-linear area · ad7f402a
    Ross Lagerwall authored
    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: 7e5d7753 ("xen-netback: remove unconditional __pskb_pull_tail() in guest Tx path")
    Signed-off-by: default avatarRoss Lagerwall <ross.lagerwall@citrix.com>
    Reviewed-by: default avatarPaul Durrant <paul@xen.org>
    Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
    ad7f402a
netback.c 45.9 KB