CVE-2026-89656 in Linux
摘要
由 VulDB • 2026-09-12
在 Linux 内核中,已修复以下漏洞:
libceph:拒绝 CRUSH ID 不匹配的桶(buckets)
crush_decode() 按数组槽位存储桶数据,映射器随后从解码后的桶 ID 推导出每个桶的工作区索引。因此,格式错误的地图可能导致一个桶重用另一个桶的工作区,方法是编码与 -1 - slot 不同的 ID。
对于均匀分布的桶(uniform buckets),第二次副本选择会将源桶的排列扩展到这个别名工作区缓冲区中。如果源桶大于被别名的桶,写入操作将超出较小的排列数组范围,并可能溢出 kvmalloc 分配的 CRUSH 工作区。KASAN 报告在 bucket_perm_choose() 中存在 4 字节的 slab OOB(越界)写操作。
拒绝其编码 ID 与数组槽位不匹配的桶。有效的 CRUSH 地图已经使用对应于桶槽位的规范负数 ID,因此这恢复了 work->work[-1 - in->id] 预期的不变量,同时不会改变有效地图的行为。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.