Impact
While processing the L2CAP protocol, the Bluetooth Low Energy stack of the Contiki-NG operating system needs to map an incoming channel ID to its metadata structure. While looking up the corresponding channel structure in get_channel_for_cid (in os/net/mac/ble/ble-l2cap.c), a bounds check is performed on the incoming channel ID, which is meant to ensure that the channel ID does not exceed the maximum number of supported channels.
However, an integer truncation issue leads to only the lowest byte of the channel ID to be checked, which leads to an incomplete out-of-bounds check. A crafted channel ID leads to out-of-bounds memory to be read and written with attacker-controlled data.
Patches
The vulnerability has been patched in the "develop" branch of Contiki-NG, and will be included in release 4.9.
Workarounds
Users can apply the patch in Contiki-NG pull request 2081.
For more information
If you have any questions or comments about this advisory:
Impact
While processing the L2CAP protocol, the Bluetooth Low Energy stack of the Contiki-NG operating system needs to map an incoming channel ID to its metadata structure. While looking up the corresponding channel structure in get_channel_for_cid (in os/net/mac/ble/ble-l2cap.c), a bounds check is performed on the incoming channel ID, which is meant to ensure that the channel ID does not exceed the maximum number of supported channels.
However, an integer truncation issue leads to only the lowest byte of the channel ID to be checked, which leads to an incomplete out-of-bounds check. A crafted channel ID leads to out-of-bounds memory to be read and written with attacker-controlled data.
Patches
The vulnerability has been patched in the "develop" branch of Contiki-NG, and will be included in release 4.9.
Workarounds
Users can apply the patch in Contiki-NG pull request 2081.
For more information
If you have any questions or comments about this advisory: