Marco Baffo
e1ad6fe5db
ovpn: fix use after free in unlock_ovpn()
...
unlock_ovpn() iterates over the release_list using llist_for_each_entry()
and drops the peer reference inside the loop body via ovpn_peer_put().
If this drops the last reference, the peer is eventually freed. However,
llist_for_each_entry() reads peer->release_entry.next in the loop advance
expression, which runs after the body. By that time the peer may have
already been freed, resulting in a use after free when advancing to the
next list entry.
Fix this by using llist_for_each_entry_safe(), which caches the next
pointer before executing the loop body.
Fixes: 80747caef3 ("ovpn: introduce the ovpn_peer object")
Signed-off-by: Marco Baffo <marco@mandelbit.com >
Signed-off-by: Antonio Quartulli <antonio@openvpn.net >
2026-07-20 15:49:55 +02:00
..
2026-07-10 13:03:15 +10:00
2026-07-03 15:13:50 -10:00
2026-07-03 13:54:10 +02:00
2026-07-10 09:17:00 -07:00
2026-06-16 08:53:53 -07:00
2026-07-03 07:38:17 +02:00
2026-06-26 10:47:26 -07:00
2026-07-11 09:35:33 -07:00
2026-07-13 10:09:52 -04:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-12 12:52:34 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-09 20:31:57 +02:00
2026-06-23 14:00:29 +02:00
2026-07-03 07:38:17 +02:00
2026-06-19 10:14:34 -07:00
2026-07-03 07:38:17 +02:00
2026-07-09 12:44:00 +02:00
2026-07-03 07:38:17 +02:00
2026-06-29 17:58:00 +02:00
2026-07-17 12:02:23 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-17 08:52:09 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-08 14:05:11 +02:00
2026-07-17 08:52:09 -07:00
2026-07-12 12:37:28 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-06-22 08:06:13 -07:00
2026-07-02 20:54:26 -10:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-06-16 23:19:45 +02:00
2026-07-12 12:37:28 -07:00
2026-07-05 07:02:35 -04:00
2026-07-11 15:42:55 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-05 05:29:41 -10:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-11 15:18:51 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-06 17:09:30 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-15 11:00:02 +02:00
2026-07-17 09:30:17 -07:00
2026-07-03 07:38:17 +02:00
2026-07-20 15:49:55 +02:00
2026-07-03 07:38:17 +02:00
2026-06-28 07:46:12 -07:00
2026-06-18 16:27:58 -07:00
2026-06-25 09:56:47 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 05:38:12 -10:00
2026-07-10 09:51:45 -07:00
2026-07-13 12:42:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-06-21 13:20:19 -07:00
2026-07-09 01:41:17 +01:00
2026-07-10 14:15:39 +02:00
2026-06-20 23:31:15 -07:00
2026-07-03 07:38:17 +02:00
2026-07-08 17:02:47 +02:00
2026-06-21 13:20:19 -07:00
2026-07-03 07:38:17 +02:00
2026-07-10 14:42:00 +02:00
2026-07-03 07:38:17 +02:00
2026-07-05 05:24:06 -10:00
2026-07-03 07:38:17 +02:00
2026-07-07 13:43:27 +02:00
2026-06-17 11:21:40 -07:00
2026-07-03 07:38:17 +02:00
2026-06-22 12:09:47 -07:00
2026-07-12 12:29:38 -07:00
2026-07-07 10:42:28 -04:00
2026-07-03 07:38:17 +02:00
2026-07-12 12:12:41 -07:00
2026-07-03 07:38:17 +02:00
2026-06-29 14:26:31 -06:00
2026-06-21 13:20:19 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-06-17 11:49:00 -07:00
2026-07-03 07:38:17 +02:00
2026-07-03 07:38:17 +02:00
2026-07-01 10:01:14 +02:00