Linux: Bluetooth: L2CAP: validate frame length before control and FCS access
What fixes it
- 4373ba79a267947e771c438507f7b103e30bdb21LinuxCVE List
- 965bd88ed4b4763cb765dd65885adcfa588c6b14LinuxCVE List
- 3acf6a0038ec0d4e8f4dcbfc2a557dff5f61cb70LinuxCVE List
- 8c7556c7cd17e073bbefdc4a9a4694a207544c37LinuxCVE List
- 1fdbb2a712a9a162ee817c959740face80b3d929LinuxCVE List
- 6c78a213d9070b610c7f418af2c25b66180b7e37LinuxCVE List
A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.
Description
In the Linux kernel, the following vulnerability has been resolved:
Bluetooth: L2CAP: validate frame length before control and FCS access
l2cap_data_rcv() unpacks either a two-byte or four-byte control field without first ensuring that it is present. A short ERTM or streaming-mode frame can therefore cause an out-of-bounds read.
There is a second short-frame case when CRC16 is enabled. After the control field is pulled, l2cap_check_fcs() subtracts two from skb->len without checking it. If fewer than two bytes remain, the subtraction wraps; skb_trim() leaves the buffer unchanged and the subsequent FCS load reads past the logical end of the frame.
Validate that the frame contains both its control field and, when enabled, its FCS before either field is accessed.
Text from CVE List
Affected versions 18
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 4373ba79a267947e771c438507f7b103e30bdb21CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 965bd88ed4b4763cb765dd65885adcfa588c6b14CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 3acf6a0038ec0d4e8f4dcbfc2a557dff5f61cb70CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 8c7556c7cd17e073bbefdc4a9a4694a207544c37CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 1fdbb2a712a9a162ee817c959740face80b3d929CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before c6a288e6001bcce16553c3853e0f5a45eaaf85c7CVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before f557274af7b94b6134692e6f26b880f1e34c15bfCVE List
- Linuxaffected: 1c2acffb76d4bc5fd27c4ea55cc27ad8ead10f9a before 6c78a213d9070b610c7f418af2c25b66180b7e37CVE List
- Linuxaffected: 2.6.32CVE List
- Linuxunaffected: all versions before 2.6.32CVE List
- Linuxunaffected: 5.10.271 through 5.10.*CVE List
- Linuxunaffected: 5.15.222 through 5.15.*CVE List
- Linuxunaffected: 6.1.189 through 6.1.*CVE List
- Linuxunaffected: 6.6.158 through 6.6.*CVE List
- Linuxunaffected: 6.12.112 through 6.12.*CVE List
- Linuxunaffected: 6.18.55 through 6.18.*CVE List
- Linuxunaffected: 7.2.9 through 7.2.*CVE List
- Linuxunaffected: 7.3CVE List
References 8
- git.kernel.org/stable/c/4373ba79a267947e771c438507f7b103e30bdb21Referencevia CVE List
- git.kernel.org/stable/c/965bd88ed4b4763cb765dd65885adcfa588c6b14Referencevia CVE List
- git.kernel.org/stable/c/3acf6a0038ec0d4e8f4dcbfc2a557dff5f61cb70Referencevia CVE List
- git.kernel.org/stable/c/8c7556c7cd17e073bbefdc4a9a4694a207544c37Referencevia CVE List
- git.kernel.org/stable/c/1fdbb2a712a9a162ee817c959740face80b3d929Referencevia CVE List
- git.kernel.org/stable/c/c6a288e6001bcce16553c3853e0f5a45eaaf85c7Referencevia CVE List
- git.kernel.org/stable/c/f557274af7b94b6134692e6f26b880f1e34c15bfReferencevia CVE List
- git.kernel.org/stable/c/6c78a213d9070b610c7f418af2c25b66180b7e37Referencevia CVE List