CVE-2026-93201 in Linux信息

摘要

由 VulDB • 2026-09-17

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

dm-pcache:验证来自持久性内存的 seg_id 字段

`cache_pos_decode()`、`cache_key_decode()` 以及 `cache_replay()` 中的 last-kset 分支、写回工作线程(writeback worker)和垃圾回收工作线程(GC worker)会从缓存设备元数据中获取一个缓存段 ID,并直接使用该 ID 索引 `cache->segments[]`,而未将其与 `cache->n_segs` 进行范围检查。该元数据仅使用固定公共种子进行 CRC 保护,因此任何在表加载时提供缓存设备的用户(具备 CAP_SYS_ADMIN 权限)均可控制该 ID;超出范围的数值会形成一个野指针类型的 pcache_cache_segment 指针,随后会被解引用并写入——这是一种由磁盘数据驱动的越界读写漏洞。

新增 `cache_seg_id_valid()` 函数,并在每个解码位置拒绝超范围 ID,使操作以 -EIO 失败,而不是进行数组越界索引。将 ID 限制在已初始化的段计数(`cache_info.n_segs`)范围内,而非物理设备总数。否则,若伪造的 `cache_info.n_segs` 小于 seg_num,会导致 `segments[cache_info.n_segs..seg_num)` 范围内的结构体为零填充且其 data 指针为 NULL,此时在该窗口内的伪造 ID 仍会被解引用。后续补丁将确保 `cache_info.n_segs <= seg_num`,并且由驱动程序创建的缓存会将两者设为相等,因此有效镜像不受影响。

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

来源

Might our Artificial Intelligence support you?

Check our Alexa App!