ALAS2-2023-2309

Related Vulnerabilities: CVE-2019-8921   CVE-2019-8922  

An issue was discovered in bluetoothd in BlueZ through 5.48. The vulnerability lies in the handling of a SVC_ATTR_REQ by the SDP implementation. By crafting a malicious CSTATE, it is possible to trick the server into returning more bytes than the buffer actually holds, resulting in leaking arbitrary heap data. The root cause can be found in the function service_attr_req of sdpd-request.c. The server does not check whether the CSTATE data is the same in consecutive requests, and instead simply trusts that it is the same. (CVE-2019-8921) A heap-based buffer overflow was discovered in bluetoothd in BlueZ through 5.48. There isn't any check on whether there is enough space in the destination buffer. The function simply appends all data passed to it. The values of all attributes that are requested are appended to the output buffer. There are no size checks whatsoever, resulting in a simple heap overflow if one can craft a request where the response is large enough to overflow the preallocated buffer. This issue exists in service_attr_req gets called by process_request (in sdpd-request.c), which also allocates the response buffer. (CVE-2019-8922)

ALAS2-2023-2309


Amazon Linux 2 Security Advisory: ALAS-2023-2309
Advisory Release Date: 2023-10-12 15:09 Pacific
Advisory Updated Date: 2023-10-19 23:42 Pacific
Severity: Medium

Issue Overview:

An issue was discovered in bluetoothd in BlueZ through 5.48. The vulnerability lies in the handling of a SVC_ATTR_REQ by the SDP implementation. By crafting a malicious CSTATE, it is possible to trick the server into returning more bytes than the buffer actually holds, resulting in leaking arbitrary heap data. The root cause can be found in the function service_attr_req of sdpd-request.c. The server does not check whether the CSTATE data is the same in consecutive requests, and instead simply trusts that it is the same. (CVE-2019-8921)

A heap-based buffer overflow was discovered in bluetoothd in BlueZ through 5.48. There isn't any check on whether there is enough space in the destination buffer. The function simply appends all data passed to it. The values of all attributes that are requested are appended to the output buffer. There are no size checks whatsoever, resulting in a simple heap overflow if one can craft a request where the response is large enough to overflow the preallocated buffer. This issue exists in service_attr_req gets called by process_request (in sdpd-request.c), which also allocates the response buffer. (CVE-2019-8922)


Affected Packages:

bluez


Issue Correction:
Run yum update bluez to update your system.

New Packages:
aarch64:
    bluez-5.44-7.amzn2.0.3.aarch64
    bluez-libs-5.44-7.amzn2.0.3.aarch64
    bluez-libs-devel-5.44-7.amzn2.0.3.aarch64
    bluez-cups-5.44-7.amzn2.0.3.aarch64
    bluez-hid2hci-5.44-7.amzn2.0.3.aarch64
    bluez-debuginfo-5.44-7.amzn2.0.3.aarch64

i686:
    bluez-5.44-7.amzn2.0.3.i686
    bluez-libs-5.44-7.amzn2.0.3.i686
    bluez-libs-devel-5.44-7.amzn2.0.3.i686
    bluez-cups-5.44-7.amzn2.0.3.i686
    bluez-hid2hci-5.44-7.amzn2.0.3.i686
    bluez-debuginfo-5.44-7.amzn2.0.3.i686

src:
    bluez-5.44-7.amzn2.0.3.src

x86_64:
    bluez-5.44-7.amzn2.0.3.x86_64
    bluez-libs-5.44-7.amzn2.0.3.x86_64
    bluez-libs-devel-5.44-7.amzn2.0.3.x86_64
    bluez-cups-5.44-7.amzn2.0.3.x86_64
    bluez-hid2hci-5.44-7.amzn2.0.3.x86_64
    bluez-debuginfo-5.44-7.amzn2.0.3.x86_64