Bluetooth: L2CAP: Fix type confusion in l2cap_ecred_reconf_rsp()
- 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.253, 5.15.203, 6.1.167, 6.6.130, 6.12.78, 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: partial
Summary
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: L2CAP: Fix type confusion in l2cap_ecred_reconf_rsp() l2cap_ecred_reconf_rsp() casts the incoming data to struct l2cap_ecred_conn_rsp (the ECRED connection response, 8 bytes with result at offset 6) instead of struct l2cap_ecred_reconf_rsp (2 bytes with result at offset 0). This causes two problems: • The sizeof(*rsp) length check requires 8 bytes instead of the correct 2, so valid L2CAP_ECRED_RECONF_RSP packets are rejected with -EPROTO. • rsp->result reads from offset 6 instead of offset 0, returning wrong data when the packet is large enough to pass the check. Fix by using the correct type. Also pass the already byte-swapped result variable to BT_DBG instead of the raw __le16 field.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: no · Technical impact: partial
- Record last updated
Affected versions
- Linux Linux
From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 21d3ba696918d6373233aac0b9d51fcabdedddc0; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 3b94e62caa1dc1198d0d55d97bd710da1dee15d7; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 111f74547eee8cfedfb854284e80f35c8a491186; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in dd3b221e21079ade8263fbb7176f3d55ad75d3b6; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in d90150c72d2e6a8a3079e88755dafcfbe91c746d; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 5a1ea296f8589ce8f1e3141b2b123b34ad010e19; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in f110b8f58b254bf997cec1bd60701b7798e9bb82; From 15f02b91056253e8cdc592888f431da0731337b8 · fixed in 15145675690cab2de1056e7ed68e59cbd0452529
- Linux Linux
5.7
- KernelLinux
From 5.7.0 · fixed in 5.10.253; From 5.11.0 · fixed in 5.15.203; From 5.16.0 · fixed in 6.1.167; From 6.2.0 · fixed in 6.6.130; From 6.7.0 · fixed in 6.12.78; From 6.13.0 · fixed in 6.18.20; From 6.19.0 · fixed in 6.19.10
References 8
git.kernel.org
- stable/c/21d3ba696918d6373233aac0b9d51fcabdedddc0
- stable/c/3b94e62caa1dc1198d0d55d97bd710da1dee15d7
- stable/c/111f74547eee8cfedfb854284e80f35c8a491186
- stable/c/dd3b221e21079ade8263fbb7176f3d55ad75d3b6
- stable/c/d90150c72d2e6a8a3079e88755dafcfbe91c746d
- stable/c/5a1ea296f8589ce8f1e3141b2b123b34ad010e19
- stable/c/f110b8f58b254bf997cec1bd60701b7798e9bb82
- stable/c/15145675690cab2de1056e7ed68e59cbd0452529