CVE-2024-48984 Information
Description
An issue was discovered in MBed OS 6.16.0. When parsing hci reports the hci parsing software dynamically determines the length of a list of reports by reading a byte from an input stream. It then fetches the length of the first report uses it to calculate the beginning of the second report etc. In doing this it tracks the largest report so it can later allocate a buffer that fits every individual report (but only one at a time). It does not however validate that these addresses are all contained within the buffer passed to hciEvtProcessLeExtAdvReport. It is then possible though unlikely that the buffer designated to hold the reports is allocated in such a way that one of these out-of-bounds length fields is contained within the new buffer. When the (n-1)th report is copied it overwrites the length field of the nth report. This now corrupted length field is then used for a memcpy into the new buffer which may lead to a buffer overflow.
Reference
https://github.com/mbed-ce/mbed-os/blob/54e8693ef4ff7e025018094f290a1d5cf380941f/connectivity/FEATURE_BLE/libraries/cordio_stack/ble-host/sources/hci/dual_chip/hci_evt.c#L1317 https://github.com/mbed-ce/mbed-os/pull/387
Share on: