Bluetooth: l2cap: clear chan->ident on ECRED reconfiguration success
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.259, 5.15.210, 6.1.176, 6.6.143, 6.12.93, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: no
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: 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).
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 59f5ecf6ad5c4db6ae81965a96156954a3b0d89a; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in ae0152d77d101c920769934fb102b18de0c6f526; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in c2afd2613fda90107c5e2fe8e855627451749c78; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in cc2b4f749de09975bfa06e58bbbad2f6acd4c79c; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 3b5b5f423b4fd23404a393bda8adba3cd6f74ef1; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in f39049304ba655ffcbb92edbdf8c51a1f1210bed; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 8e7977afaef37c6bd2b2654f1bce6ab40d471147; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 00e1950716c6ed67d74777b2db286b0fa23b4be9
- Linux Linux
5.7
- KernelLinux
From 5.7.0 · fixed in 5.10.259; From 5.11.0 · fixed in 5.15.210; From 5.16.0 · fixed in 6.1.176; From 6.2.0 · fixed in 6.6.143; From 6.7.0 · fixed in 6.12.93; From 6.13.0 · fixed in 6.18.35; From 6.19.0 · fixed in 7.0.12
References 8
git.kernel.org
- stable/c/59f5ecf6ad5c4db6ae81965a96156954a3b0d89a
- stable/c/ae0152d77d101c920769934fb102b18de0c6f526
- stable/c/c2afd2613fda90107c5e2fe8e855627451749c78
- stable/c/cc2b4f749de09975bfa06e58bbbad2f6acd4c79c
- stable/c/3b5b5f423b4fd23404a393bda8adba3cd6f74ef1
- stable/c/f39049304ba655ffcbb92edbdf8c51a1f1210bed
- stable/c/8e7977afaef37c6bd2b2654f1bce6ab40d471147
- stable/c/00e1950716c6ed67d74777b2db286b0fa23b4be9