mirror of
https://github.com/torvalds/linux.git
synced 2026-09-12 20:53:03 +02:00
ieee802154: 6lowpan: fix NULL dereference in lowpan_newlink
TUNSETLINK allows a TUN device to change its link-layer type to
ARPHRD_IEEE802154 without initializing ieee802154_ptr. lowpan_newlink()
checks only the device type before dereferencing the pointer, so an
RTM_NEWLINK request can trigger a NULL pointer dereference.
Reject devices without ieee802154_ptr along with devices of the wrong type.
Fixes: 51e0e5d812 ("ieee802154: 6lowpan: remove multiple lowpan per wpan support")
Cc: stable@vger.kernel.org
Reported-by: Vega <vega@nebusec.ai>
Signed-off-by: Zhiling Zou <zhilinz@nebusec.ai>
Link: https://lore.kernel.org/0b715da69bd15a86ddc47dad5cf12da648211050.1787997209.git.zhilinz@nebusec.ai
Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
This commit is contained in:
parent
ff5891b266
commit
bf79662bc8
|
|
@ -150,7 +150,7 @@ static int lowpan_newlink(struct net_device *ldev,
|
|||
wdev = dev_get_by_index(dev_net(ldev), nla_get_u32(tb[IFLA_LINK]));
|
||||
if (!wdev)
|
||||
return -ENODEV;
|
||||
if (wdev->type != ARPHRD_IEEE802154) {
|
||||
if (wdev->type != ARPHRD_IEEE802154 || !wdev->ieee802154_ptr) {
|
||||
dev_put(wdev);
|
||||
return -EINVAL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user