CVE-2026-43412Linux内核中的ASoC (ALSA System on Chip) qcom qdsp6驱动存在漏洞。在ADSP停止和启动过程中,由于组件移除顺序不当,导致内核崩溃。具体而言,q6apm-audio的remove回调在移除遍历之前就删除了RTDs,导致q6apm DAI组件仍链接在卡上,从而在重新绑定时引发NULL指针解引用错误。
该漏洞源于Linux内核音频子系统驱动中的资源管理逻辑缺陷。当ADSP停止时,`q6apm-audio`组件的`.remove`回调函数被触发,它会卸载拓扑并移除PCM运行时(RTD)。此时,包含`q6apm` DAI组件的RTD被过早删除。然而,这些组件本身尚未执行其移除遍历,导致它们仍然保持着与音频卡的链接。当下次尝试重新绑定或访问这些已失效的组件时,系统试图访问已被释放的内存地址(NULL指针),从而触发内核崩溃(Oops)。修复方案是调整移除顺序,确保依赖组件先移除,父组件最后移除,以维持引用完整性。