CVE-2022-50525CVE-2022-50525是Linux内核中iommu/fsl_pamu驱动存在的一个资源泄漏漏洞。该漏洞位于fsl_pamu_probe()函数中,当create_csd()函数调用失败时,函数直接返回而没有正确释放之前分配的irq中断资源和内存资源,导致系统资源泄漏。
fsl_pamu是飞思卡尔(Freescale)PAMU(Peripheral Access Management Unit)外设访问管理单元的驱动,主要用于在PowerPC架构的飞思卡尔/恩智浦处理器上进行IOMMU管理,负责系统外设的地址映射和访问控制。该驱动在系统启动时通过fsl_pamu_probe()进行初始化,期间会分配中断资源、内存资源以及调用create_csd()创建CSD(Coherency Subdomain)结构。
该漏洞的CVSS评分为5.5,属于中危级别。虽然利用条件要求本地低权限访问且无需用户交互,但其可用性影响为高,意味着成功利用可能导致系统资源耗尽或系统不稳定。由于是内核级资源泄漏问题,在长时间运行的系统上可能导致系统资源逐渐耗尽,最终影响系统可用性。
该漏洞已于2025年10月7日披露,修复方案已合并到Linux内核主线,涉及多个稳定版本分支。
该漏洞的技术原理如下:
在fsl_pamu_probe()函数中,初始化流程按顺序执行以下操作:
1. 分配和初始化内存资源
2. 注册中断处理函数(irq)
3. 调用create_csd()创建CSD(Coherency Subdomain)结构
漏洞的根本原因在于:当create_csd()函数返回错误时,原始代码直接执行return语句退出probe函数,跳过了错误处理标签(error label)中的资源释放代码。这导致前面已经成功分配的irq中断资源和内存资源没有被正确释放,造成资源泄漏。
修复方案是修改错误处理流程,将直接的return语句改为goto error,跳转到统一的错误处理标签处执行资源释放操作,确保在初始化失败的任何路径上都能正确清理已分配的资源。
利用方式:攻击者需要具备本地低权限访问权限(PR:L),在系统启动或模块加载过程中,如果能够触发create_csd()的失败条件(例如通过特定的硬件配置或资源竞争),就可以导致资源泄漏。重复触发该问题可能导致系统资源逐渐耗尽,影响系统可用性。由于可用性影响为高(A:H),在极端情况下可能导致系统不稳定或需要重启。