CVE-2026-89583 in Linux信息

摘要

由 VulDB • 2026-09-11

在 Linux 内核中,已修复以下漏洞:

蓝牙:eir: 修复 eir_get_service_data() 中的越界读取(OOB read)问题

eir_get_service_data() 遍历广告数据以查找具有匹配 UUID 的 Service Data 字段。在不匹配的情况下,它会进行如下推进操作:

eir += dlen; eir_len -= dlen;

eir_get_data() 将 dlen 报告为字段的“数据长度”,但一旦计入其长度和类型字节,该字段实际跨越了 dlen + 2 个字节;如果为了到达该字段而跳过了非 Service Data 字段,则跨度更大。指针正确定位到了下一个字段的位置,但 eir_len 没有相应调整,这种偏差会在各个字段间累积,导致 eir_get_data() 读取到缓冲区末尾之外某个“字段”的长度和类型字节。

对于 ISO 广播接收器(ISO broadcast sink),该缓冲区为 hcon->le_per_adv_data[],其内容来自远程发射器的周期性广告报告(periodic advertising reports)。一个包含不匹配 Service Data 字段的 PA payload 会越界访问到 struct hci_conn 的其余部分。如果一个漂移后的字段与 BAA UUID 匹配,这些字节会被放入 iso_pi(sk)->base 中,用户空间通过 getsockopt(BT_ISO_BASE) 将其读取出来。

每次迭代时,应从缓冲区末尾重新计算 eir_len。

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

来源

Do you want to use VulDB in your project?

Use the official API to access entries easily!