Description
In the Linux kernel, the following vulnerability has been resolved: Bluetooth: MGMT: validate Add Extended Advertising Data length MGMT_OP_ADD_EXT_ADV_DATA is registered as a variable-length command, with MGMT_ADD_EXT_ADV_DATA_SIZE as the fixed header size. The handler then uses cp->adv_data_len and cp->scan_rsp_len to validate and copy cp->data, but it never checks that those bytes are part of the mgmt command payload. A short command can therefore make add_ext_adv_data() pass an out-of-bounds pointer into tlv_data_is_valid(). If the bytes beyond the command buffer are addressable, they can also be copied into the advertising instance as scan response data, where the caller can read them back via MGMT_OP_GET_ADV_INSTANCE. The trigger requires CAP_NET_ADMIN in the initial user namespace; KASAN reports an 8-byte slab-out-of-bounds read. Reject commands whose length does not match the fixed header plus both advertising data lengths before parsing cp->data.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
12410572833a283ce92fcf9679ca8a2f372097ee to < 0d5104390b445e7bd664ad583837e4c04d892c9daffected12410572833a283ce92fcf9679ca8a2f372097ee to < 14b01b9cba04e6ce82825f68fc4c4322fa4ffa43affected12410572833a283ce92fcf9679ca8a2f372097ee to < a143ce77a5292f2c9285137433d879ce71d190a7affected12410572833a283ce92fcf9679ca8a2f372097ee to < a6c75a3fad226ccbd8ef9110dee87c92c299f2abaffected12410572833a283ce92fcf9679ca8a2f372097ee to < f1febe93ef075314615f970a87681d9ab86691d1affected12410572833a283ce92fcf9679ca8a2f372097ee to < 0bc1a5a69f541859293d79db72bd7854ac48df51affected12410572833a283ce92fcf9679ca8a2f372097ee to < d3f7d17960ed50df3a6709c5158caff989c8c905affected
Linux Linux
Default version status: affected
5.11affected0 to < 5.11unaffected5.15.210 to ≤ 5.15.*unaffected6.1.175 to ≤ 6.1.*unaffected6.6.142 to ≤ 6.6.*unaffected6.12.92 to ≤ 6.12.*unaffected6.18.34 to ≤ 6.18.*unaffected7.0.11 to ≤ 7.0.*unaffected7.1 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/0d5104390b445e7bd664ad583837e4c04d892c9d ↗
- https://git.kernel.org/stable/c/14b01b9cba04e6ce82825f68fc4c4322fa4ffa43 ↗
- https://git.kernel.org/stable/c/a143ce77a5292f2c9285137433d879ce71d190a7 ↗
- https://git.kernel.org/stable/c/a6c75a3fad226ccbd8ef9110dee87c92c299f2ab ↗
- https://git.kernel.org/stable/c/f1febe93ef075314615f970a87681d9ab86691d1 ↗
- https://git.kernel.org/stable/c/0bc1a5a69f541859293d79db72bd7854ac48df51 ↗
- https://git.kernel.org/stable/c/d3f7d17960ed50df3a6709c5158caff989c8c905 ↗