]> git.ipfire.org Git - thirdparty/linux.git/commit
Bluetooth: l2cap: clear chan->ident on ECRED reconfiguration success
authorZhenghang Xiao <kipreyyy@gmail.com>
Tue, 26 May 2026 10:51:52 +0000 (18:51 +0800)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 28 May 2026 12:52:13 +0000 (08:52 -0400)
commit00e1950716c6ed67d74777b2db286b0fa23b4be9
tree3a85cdcfc974bba5649c7f9e7c0bfc41cc98a36a
parentfa21e86caba2347e89eb65af926205a36a097c53
Bluetooth: l2cap: clear chan->ident on ECRED reconfiguration success

l2cap_ecred_reconf_rsp() returns early on success without clearing
chan->ident. Every other L2CAP response handler (l2cap_ecred_conn_rsp,
l2cap_le_connect_rsp, l2cap_config_rsp) clears chan->ident after a
successful transaction to prevent the channel from matching subsequent
responses with the recycled ident value.

A remote attacker that completed a reconfiguration as the peer can
replay a failure response with the stale ident, causing the kernel to
match and destroy the already-established channel via
l2cap_chan_del(chan, ECONNRESET).

Clear chan->ident for all matching channels on success, and harden the
failure path by using l2cap_chan_hold_unless_zero() consistent with
other L2CAP handlers (l2cap_le_command_rej, __l2cap_get_chan_by_ident).

Fixes: 15f02b910562 ("Bluetooth: L2CAP: Add initial code for Enhanced Credit Based Mode")
Signed-off-by: Zhenghang Xiao <kipreyyy@gmail.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
net/bluetooth/l2cap_core.c