CVE-2025-21781
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
27/02/2025
Last modified:
13/03/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
batman-adv: fix panic during interface removal<br />
<br />
Reference counting is used to ensure that<br />
batadv_hardif_neigh_node and batadv_hard_iface<br />
are not freed before/during<br />
batadv_v_elp_throughput_metric_update work is<br />
finished.<br />
<br />
But there isn&#39;t a guarantee that the hard if will<br />
remain associated with a soft interface up until<br />
the work is finished.<br />
<br />
This fixes a crash triggered by reboot that looks<br />
like this:<br />
<br />
Call trace:<br />
batadv_v_mesh_free+0xd0/0x4dc [batman_adv]<br />
batadv_v_elp_throughput_metric_update+0x1c/0xa4<br />
process_one_work+0x178/0x398<br />
worker_thread+0x2e8/0x4d0<br />
kthread+0xd8/0xdc<br />
ret_from_fork+0x10/0x20<br />
<br />
(the batadv_v_mesh_free call is misleading,<br />
and does not actually happen)<br />
<br />
I was able to make the issue happen more reliably<br />
by changing hardif_neigh->bat_v.metric_work work<br />
to be delayed work. This allowed me to track down<br />
and confirm the fix.<br />
<br />
[sven@narfation.org: prevent entering batadv_v_elp_get_throughput without<br />
soft_iface]
Impact
References to Advisories, Solutions, and Tools
- https://git.kernel.org/stable/c/072b2787321903287a126c148e8db87dd7ef96fe
- https://git.kernel.org/stable/c/167422a07096a6006599067c8b55884064fa0b72
- https://git.kernel.org/stable/c/2c3fb7df4cc6d043f70d4a8a10f8b915bbfb75e7
- https://git.kernel.org/stable/c/522b1596ea19e327853804da2de60aeb9c5d6f42
- https://git.kernel.org/stable/c/7eb5dd201695645af071592a50026eb780081a72
- https://git.kernel.org/stable/c/ccb7276a6d26d6f8416e315b43b45e15ee7f29e2
- https://git.kernel.org/stable/c/ce3f1545bf8fa28bd05ec113679e8e6cd23af577
- https://git.kernel.org/stable/c/f0a16c6c79768180333f3e41ce63f32730e3c3af