关键漏洞信息 漏洞标识 ID: INSYDE-SA-2024016 CVSS Score: 5.3 产品: InsydeH2O 漏洞概述 Summary: VariableRuntimeDxe: Unsafe functions may cause buffer over-read. 漏洞详情 CVEs: - CVE-2024-52877 - CVE-2024-52878 - CVE-2024-52879 - CVE-2024-52880 详细描述: - 在VariableRuntimeDxe驱动中,回调函数SmmCreateVariableLockList()调用CreateVariableLockListInSmm()。在CreateVariableLockListInSmm()中,使用StrSize()获取变量名大小,可能导致缓冲区溢读。 - 在VariableRuntimeDxe驱动中,VariableServicesSetVariable()可被gRT->SetVariable()或SmmSetSensitiveVariable()或SmmInternalSetVariable()从SMM调用。在VariableServicesSetVariable()中,使用StrSize()获取变量名大小,使用StrLen()获取变量名长度,并使用StrCmp()比较字符串。这些操作可能导致缓冲区溢读。 - 在VariableRuntimeDxe驱动中,SmmUpdateVariablePropertySmi()是一个SMM回调函数,使用StrCmp()比较变量名。此操作可能导致缓冲区溢读。 - 在VariableRuntimeDxe驱动中,SecureBootHandler在确定数据或名称是否在缓冲区中时使用DataSize和VariableNameSize,但这些值由调用者提供,因此不可信。 解决方案信息 受影响的内核版本及修复版本: - kernel 5.2, Version 05.29.50 - kernel 5.3, Version 05.38.50 - kernel 5.4, Version 05.46.50 - kernel 5.5, Version 05.54.50 - kernel 5.6, Version 05.61.50 - kernel 5.7, Version 05.70.50 发布历史 Revision #1: 2025-05-13, Initial Release