[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20240318100758.2828621-14-lee@kernel.org>
Date: Mon, 18 Mar 2024 10:08:04 +0000
From: Lee Jones <lee@...nel.org>
To: linux-cve-announce@...r.kernel.org
Cc: Lee Jones <lee@...nel.org>
Subject: CVE-2024-26631: ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
Description
===========
In the Linux kernel, the following vulnerability has been resolved:
ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
idev->mc_ifc_count can be written over without proper locking.
Originally found by syzbot [1], fix this issue by encapsulating calls
to mld_ifc_stop_work() (and mld_gq_stop_work() for good measure) with
mutex_lock() and mutex_unlock() accordingly as these functions
should only be called with mc_lock per their declarations.
[1]
BUG: KCSAN: data-race in ipv6_mc_down / mld_ifc_work
write to 0xffff88813a80c832 of 1 bytes by task 3771 on cpu 0:
mld_ifc_stop_work net/ipv6/mcast.c:1080 [inline]
ipv6_mc_down+0x10a/0x280 net/ipv6/mcast.c:2725
addrconf_ifdown+0xe32/0xf10 net/ipv6/addrconf.c:3949
addrconf_notify+0x310/0x980
notifier_call_chain kernel/notifier.c:93 [inline]
raw_notifier_call_chain+0x6b/0x1c0 kernel/notifier.c:461
__dev_notify_flags+0x205/0x3d0
dev_change_flags+0xab/0xd0 net/core/dev.c:8685
do_setlink+0x9f6/0x2430 net/core/rtnetlink.c:2916
rtnl_group_changelink net/core/rtnetlink.c:3458 [inline]
__rtnl_newlink net/core/rtnetlink.c:3717 [inline]
rtnl_newlink+0xbb3/0x1670 net/core/rtnetlink.c:3754
rtnetlink_rcv_msg+0x807/0x8c0 net/core/rtnetlink.c:6558
netlink_rcv_skb+0x126/0x220 net/netlink/af_netlink.c:2545
rtnetlink_rcv+0x1c/0x20 net/core/rtnetlink.c:6576
netlink_unicast_kernel net/netlink/af_netlink.c:1342 [inline]
netlink_unicast+0x589/0x650 net/netlink/af_netlink.c:1368
netlink_sendmsg+0x66e/0x770 net/netlink/af_netlink.c:1910
...
write to 0xffff88813a80c832 of 1 bytes by task 22 on cpu 1:
mld_ifc_work+0x54c/0x7b0 net/ipv6/mcast.c:2653
process_one_work kernel/workqueue.c:2627 [inline]
process_scheduled_works+0x5b8/0xa30 kernel/workqueue.c:2700
worker_thread+0x525/0x730 kernel/workqueue.c:2781
...
The Linux kernel CVE team has assigned CVE-2024-26631 to this issue.
Affected and fixed versions
===========================
Issue introduced in 5.13 with commit 2d9a93b4902b and fixed in 5.15.148 with commit 62b3387beef1
Issue introduced in 5.13 with commit 2d9a93b4902b and fixed in 6.1.75 with commit 380540bb06bb
Issue introduced in 5.13 with commit 2d9a93b4902b and fixed in 6.6.14 with commit 3cc283fd16fb
Issue introduced in 5.13 with commit 2d9a93b4902b and fixed in 6.7.2 with commit 3bb5849675ae
Issue introduced in 5.13 with commit 2d9a93b4902b and fixed in 6.8 with commit 2e7ef287f07c
Please see https://www.kernel.org or a full list of currently supported
kernel versions by the kernel community.
Unaffected versions might change over time as fixes are backported to
older supported kernel versions. The official CVE entry at
https://cve.org/CVERecord/?id=CVE-2024-26631
will be updated if fixes are backported, please check that for the most
up to date information about this issue.
Affected files
==============
The file(s) affected by this issue are:
net/ipv6/mcast.c
Mitigation
==========
The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes. Individual
changes are never tested alone, but rather are part of a larger kernel
release. Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all. If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
https://git.kernel.org/stable/c/62b3387beef11738eb6ce667601a28fa089fa02c
https://git.kernel.org/stable/c/380540bb06bb1d1b12bdc947d1b8f56cda6b5663
https://git.kernel.org/stable/c/3cc283fd16fba72e2cefe3a6f48d7a36b0438900
https://git.kernel.org/stable/c/3bb5849675ae1d592929798a2b37ea450879c855
https://git.kernel.org/stable/c/2e7ef287f07c74985f1bf2858bedc62bd9ebf155
Powered by blists - more mailing lists