CVE-2023-53568CVE-2023-53568是Linux内核中s390/zcrypt子系统存在的一个内存泄漏漏洞。该漏洞位于zcdn_create()函数中,当dev_set_name()函数调用失败时,新分配的内存资源未被正确释放,导致内存泄漏问题。s390/zcrypt是IBM System/390架构下的加密设备驱动子系统,负责管理与加密硬件设备的交互。该漏洞由内核开发者发现并修复,影响多个稳定版本的内核代码。
从CVSS 3.1评分向量来看,该漏洞的CVSS评分为5.5分,属于中等严重等级。攻击者需要具有本地访问权限和低权限身份才能触发此漏洞,不需要用户交互。漏洞的主要影响在于可用性方面(高影响),因为持续的内存泄漏可能导致系统内存耗尽,影响系统稳定性和服务可用性。机密性影响较低,完整性则不受影响。
该漏洞已在多个Linux内核稳定版本中得到修复,包括通过补丁0878052579cb、131cd74a8e38、147d8da33a2c、174f11ef1615和6252f47b7803等多个commit进行修复。建议使用受影响内核版本的用户及时更新到已修复的版本。
该漏洞的技术原理如下:在Linux内核的s390/zcrypt驱动中,zcdn_create()函数负责创建加密设备节点。在创建过程中,会先分配内存资源,然后调用dev_set_name()函数为设备设置名称。
正常情况下,dev_set_name()应当成功执行并完成设备初始化流程。然而,当dev_set_name()调用失败时(例如由于名称冲突或其他内核内部错误),zcdn_create()函数没有正确处理错误路径,直接返回而没有释放之前分配的内存资源。
这种内存泄漏的影响在长时间运行的系统中会逐渐累积。每次zcdn_create()失败时都会泄漏一定量的内存,如果攻击者能够反复触发设备创建流程(例如通过加载/卸载zcrypt相关模块),就可能导致内核内存持续增长,最终造成系统内存耗尽,触发OOM(Out of Memory)情况,影响系统稳定性。
修复方案是在dev_set_name()失败时,正确释放之前通过alloc等方式分配的内存资源,确保错误处理路径的完整性。修复后的代码会在dev_set_name()返回错误时,跳转到适当的清理标签,释放所有已分配的资源。