【CVE-2022-49535】
【漏洞编号】 CVE-2022-49535
【漏洞归属组件】 kernel
【漏洞归属版本】4.19.140,4.19.194,4.19.90,5.10.0,6.1.19,6.4.0,6.6.0
【漏洞类型】其他
【漏洞详情】Linux kernel是美国Linux基金会的开源操作系统Linux所使用的内核。 Linux kernel存在安全漏洞,该漏洞源于在FLOGI和PLOGI失败后未正确处理节点引用计数,可能导致空指针取消引用。
【风险等级】 高危
【漏洞产生的原因】 在Linux内核中,已解决以下漏洞:
scsi: lpfc: 在未能发出FLOGI和PLOGI后修复空指针解引用
如果lpfc_issue_els_flogi()失败并返回非零状态,节点引用计数将被减少以触发nodelist结构的释放。然而,如果存在先前的注册或dev-loss-evt工作挂起,节点可能会被过早释放。当dev-loss-evt完成时,被释放的节点被引用,导致使用后释放的空指针解引用。
同样,在处理lpfc_cmpl_els_plogi()中的非零ELS PLOGI完成状态时,在触发节点移除之前会检查ndlp标志以确定传输注册。如果存在dev-loss-evt工作挂起,节点可能会被过早释放,随后调用lpfc_dev_loss_tmo_handler()会导致使用后释放的ndlp解引用。
在减少FLOGI、PLOGI、PRLI和ADISC处理的节点引用计数之前,添加对挂起的dev-loss的测试。