CVE-2025-71157CVE-2025-71157是Linux内核中RDMA/core子系统的一个高危安全漏洞,CVSS评分达到7.8分。该漏洞存在于ib_del_sub_device_and_put()函数中,由于引用计数管理不当导致资源泄露。问题的根本原因在于nldev_deldev()函数(由commit 060c642b2ab8引入)在调用ib_del_sub_device_and_put()之前通过ib_device_get_by_index()获取了设备引用,但在函数返回-EOPNOTSUPP错误时未能正确释放该引用。这导致内核对象引用计数持续增长,最终可能引发本地权限提升或拒绝服务攻击。攻击者可以本地低权限用户身份触发此漏洞,无需任何用户交互即可实现攻击。
该漏洞的技术核心在于Linux内核RDMA子系统的引用计数管理机制。nldev_deldev()函数负责通过netlink接口删除IB子设备,它首先调用ib_device_get_by_index()获取设备引用(增加引用计数),然后调用ib_del_sub_device_and_put()执行删除操作。问题出在当ib_del_sub_device_and_put()因不支持操作而返回-EOPNOTSUPP错误时,之前获取的设备引用未被正确释放。具体来说,函数在错误路径上缺少对ib_device_put()的调用,导致引用计数只增不减。这种引用计数泄露会造成以下影响:1)内核对象无法被正确回收,造成内存泄漏;2)长期积累后可能导致系统资源耗尽;3)攻击者可利用此漏洞进行本地权限提升。该漏洞属于本地攻击向量,攻击复杂度低,需要低权限即可实施,对系统机密性、完整性和可用性均造成高影响。