CVE-2025-71274Linux内核的rpmsg核心组件存在一个竞态条件漏洞。该漏洞源于driver_override_show函数在读取driver_override字符串时未持有设备锁,而store函数在持有锁的情况下修改并释放该字符串。这种并发处理不当导致字符串在读取过程中可能被释放,从而引发释放后重用漏洞。
该漏洞发生在Linux内核的rpmsg驱动核心模块中。具体原因为driver_override属性的get(show)和set(store)操作存在同步缺陷。driver_override_show函数在读取字符串时没有获取device_lock,而driver_override_store函数在修改和释放内存时持有该锁。在多核或多线程环境下,如果用户空间程序同时触发读写操作,store函数可能释放show函数正在读取的内存块,导致内核访问已释放的内存(Use-After-Free)。这可能导致内核崩溃(拒绝服务)或在特定条件下导致权限提升。修复代码通过移除rpmsg_string_attr宏,引入显式的show/store函数,并使用标准的driver_set_override辅助函数来确保锁的正确持有。