CXL 内存池信任污染
摘要 Compute Express Link(CXL)3.0 通过 Type 3 内存扩展设备实现了多主机共享内存池,为云原生架构提供了前所未有的内存弹性。然而,共享意味着信任边界的扩张:当多个虚拟机(VM)通过 CXL 交换机共享同一物理内存池时,内存页的生命周期管理与安全隔离完全依赖于主机侧的内存分配器和 CXL 设备固件。如果设备在页释放后未执行可靠的清零或加密边界切换,攻击者便可在合法 VM 释放共享页后,立即从另一台主机申请分配同一物理页,读取前一个租户的残留数据——包括加密密钥、凭证和模型参数。更严重的是,部分 CXL 设备固件未严格验证主机发来的 HDM 地址范围,允许跨域访问。 CXL内存池 CXL协议与Type 3设备 CXL 构建在 PCIe 物理层之上,提供三种协议:CXL.io(用于配置和控制)、CXL.cache(用于缓存一致性)和 CXL.mem(用于内存访问)。Type 3 设备(如内存扩展卡)仅实现 CXL.io 和 CXL.mem,不参与缓存一致性,主要提供大容量内存扩展。 在 CXL 3.0 中,多主机共享内存池成为可能。通过 CXL 交换机和 Fabric Manager,多个主机(或虚拟机管理程序)可以访问同一块 Type 3 设备上的内存区域。这种架构允许动态分配和释放内存资源,提高数据中心的利用率。 多主机共享内存池 共享内存池打破了传统“一个主机一块内存”的边界。CXL 设备上的物理内存被划分为多个主机物理地址空间(Host Physical Address Space, HPAS),每个主机通过 HDM(Host-managed Device Memory)解码器将其分配给自己的地址空间。 安全性挑战在于: 内存释放后的数据残留:当一台主机释放一块 CXL…