atl2: Disable unimplemented scatter/gather feature
authorBen Hutchings <ben@decadent.org.uk>
Wed, 20 Apr 2016 22:23:08 +0000 (23:23 +0100)
committerBen Hutchings <ben@decadent.org.uk>
Wed, 15 Jun 2016 20:28:12 +0000 (21:28 +0100)
commit f43bfaeddc79effbf3d0fcb53ca477cca66f3db8 upstream.

atl2 includes NETIF_F_SG in hw_features even though it has no support
for non-linear skbs.  This bug was originally harmless since the
driver does not claim to implement checksum offload and that used to
be a requirement for SG.

Now that SG and checksum offload are independent features, if you
explicitly enable SG *and* use one of the rare protocols that can use
SG without checkusm offload, this potentially leaks sensitive
information (before you notice that it just isn't working).  Therefore
this obscure bug has been designated CVE-2016-2117.

Reported-by: Justin Yackoski <jyackoski@crypto-nite.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Fixes: ec5f06156423 ("net: Kill link between CSUM and SG features.")
Signed-off-by: David S. Miller <davem@davemloft.net>
[bwh: Backported to 3.2: adjust context]

drivers/net/ethernet/atheros/atlx/atl2.c

index 1feae59..12313c8 100644 (file)
@@ -1428,7 +1428,7 @@ static int __devinit atl2_probe(struct pci_dev *pdev,
 
        err = -EIO;
 
 
        err = -EIO;
 
-       netdev->hw_features = NETIF_F_SG | NETIF_F_HW_VLAN_RX;
+       netdev->hw_features = NETIF_F_HW_VLAN_RX;
        netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
 
        /* Init PHY as early as possible due to power saving issue  */
        netdev->features |= (NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX);
 
        /* Init PHY as early as possible due to power saving issue  */