Ziyang Xuan
d9d52a3ebd
can: j1939: j1939_netdev_start(): fix UAF for rx_kref of j1939_priv
...
It will trigger UAF for rx_kref of j1939_priv as following.
cpu0 cpu1
j1939_sk_bind(socket0, ndev0, ...)
j1939_netdev_start
j1939_sk_bind(socket1, ndev0, ...)
j1939_netdev_start
j1939_priv_set
j1939_priv_get_by_ndev_locked
j1939_jsk_add
.....
j1939_netdev_stop
kref_put_lock(&priv->rx_kref, ...)
kref_get(&priv->rx_kref, ...)
REFCOUNT_WARN("addition on 0;...")
====================================================
refcount_t: addition on 0; use-after-free.
WARNING: CPU: 1 PID: 20874 at lib/refcount.c:25 refcount_warn_saturate+0x169/0x1e0
RIP: 0010:refcount_warn_saturate+0x169/0x1e0
Call Trace:
j1939_netdev_start+0x68b/0x920
j1939_sk_bind+0x426/0xeb0
? security_socket_bind+0x83/0xb0
The rx_kref's kref_get() and kref_put() should use j1939_netdev_lock to
protect.
Fixes: 9d71dd0c70099 ("can: add support of SAE J1939 protocol")
Link: https://lore.kernel.org/all/20210926104757.2021540-1-william.xuanziyang@huawei.com
Cc: stable@vger.kernel.org
Reported-by: syzbot+85d9878b19c94f9019ad@syzkaller.appspotmail.com
Signed-off-by: Ziyang Xuan <william.xuanziyang@huawei.com>
Acked-by: Oleksij Rempel <o.rempel@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
2021-10-17 14:12:56 +02:00
..
2021-07-22 16:19:03 +02:00
2021-09-05 08:36:44 +09:00
2021-08-13 16:30:35 -07:00
2021-07-27 20:11:45 +01:00
2021-07-23 14:20:25 +01:00
2021-06-10 14:08:09 -07:00
2021-08-03 11:21:39 +01:00
2021-09-03 15:33:47 -07:00
2021-09-01 09:51:16 -07:00
2021-09-28 09:29:28 +02:00
2021-06-25 13:13:50 +02:00
2021-10-16 15:05:58 +01:00
2021-09-14 12:51:15 +01:00
2021-10-17 14:12:56 +02:00
2021-06-30 15:51:09 -07:00
2021-10-13 17:24:38 -07:00
2021-06-01 17:01:33 -07:00
2021-09-08 11:28:35 +01:00
2021-08-05 13:27:50 +01:00
2021-10-12 17:35:19 -07:00
2021-08-03 13:05:26 +01:00
2021-08-24 07:38:29 -07:00
2021-06-16 12:13:01 -07:00
2021-08-13 06:41:22 -07:00
2021-10-15 14:36:57 +01:00
2021-10-15 15:32:04 -07:00
2021-08-09 10:13:32 +01:00
2021-06-29 11:28:21 -07:00
2021-05-26 07:03:39 +02:00
2021-09-09 11:00:20 +01:00
2021-06-08 16:31:25 -07:00
2021-08-05 13:27:50 +01:00
2021-09-27 12:00:34 +02:00
2021-09-07 14:06:08 +01:00
2021-09-08 11:29:16 +01:00
2021-07-23 17:17:56 +01:00
2021-10-08 14:55:54 +01:00
2021-09-01 17:18:56 -07:00
2021-10-02 12:00:17 +02:00
2021-08-30 12:23:18 +01:00
2021-10-05 13:11:09 +01:00
2021-08-05 13:27:50 +01:00
2021-10-13 17:44:29 -07:00
2021-08-19 18:09:18 -07:00
2021-09-10 10:00:59 +01:00
2021-08-05 13:27:50 +01:00
2021-09-02 11:37:02 +01:00
2021-08-18 15:35:50 -07:00
2021-04-20 16:44:04 -07:00
2021-08-18 10:12:11 +01:00
2021-10-08 16:27:22 -07:00
2021-10-14 07:15:22 -07:00
2021-10-08 17:00:16 +01:00
2021-06-29 11:28:21 -07:00
2021-10-07 14:11:40 -07:00
2021-08-04 12:35:07 +01:00
2021-09-13 12:43:10 +01:00
2021-06-29 15:45:27 -07:00
2021-10-12 11:16:49 +01:00
2021-09-06 02:25:16 -04:00
2021-08-26 11:04:55 +02:00
2021-06-10 14:08:09 -07:00
2021-06-29 15:45:27 -07:00
2021-09-23 10:11:12 +02:00
2021-06-03 15:13:56 -07:00
2021-06-11 12:55:28 -07:00
2021-07-29 15:06:49 +01:00
2021-07-29 15:06:49 +01:00
2021-08-31 16:43:06 -07:00