]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
batman-adv: tp_meter: avoid use of uninit sender vars
authorSven Eckelmann <sven@narfation.org>
Wed, 13 May 2026 07:01:35 +0000 (09:01 +0200)
committerSven Eckelmann <sven@narfation.org>
Thu, 14 May 2026 18:01:31 +0000 (20:01 +0200)
commit6c65cf23d4c6170fcf5714c32aa64689718cb142
tree51494fa924fb8e74ee2433b3b5898d6b1f355408
parent2d8826a2d3657cea66fb0370f9e521575a673871
batman-adv: tp_meter: avoid use of uninit sender vars

batadv_tp_recv_ack() and batadv_tp_stop() are only valid for tp_vars in the
BATADV_TP_SENDER role. When called with a BATADV_TP_RECEIVER role, it
proceeds to read sender-only members that were never initialized, leading
to undefined behavior.

This can be triggered when a node that is currently acting as a receiver in
an ongoing tp_meter session receives a malicious ACK packet.

Guard against this by checking tp_vars->role immediately after the
lookup and bailing out if it is not BATADV_TP_SENDER, before any of
those members are accessed.

Cc: stable@kernel.org
Fixes: 33a3bb4a3345 ("batman-adv: throughput meter implementation")
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Reviewed-by: Yuan Tan <yuantan098@gmail.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
net/batman-adv/tp_meter.c