CVE-2023-53575CVE-2023-53575是Linux内核中iwlwifi(Intel无线网卡)驱动模块中的一个高危安全漏洞。该漏洞位于iwl_mvm_sec_key_add()函数中,在验证WEP密钥长度(key_len)时未正确考虑IWL_SEC_WEP_KEY_OFFSET偏移量,可能导致数组越界访问。攻击者可以利用此漏洞读取超出缓冲区边界的内存数据,从而获取敏感信息。由于该漏洞为本地权限提升类漏洞,攻击者需要先获得系统的低权限访问权限,但无需用户交互即可利用,成功利用后可能导致系统高机密性数据泄露及可用性丧失(如系统崩溃)。该漏洞的CVSS 3.1评分为7.1分,属于高危级别,主要影响使用Intel无线网卡并启用WEP加密的Linux系统。该漏洞已在Linux内核稳定版中通过提交133b1cd4d98bb8b272335c8e6b0e0c399c0b2ffa和637452360ecde9ac972d19416e9606529576b302进行修复。
该漏洞的根本原因在于iwl_mvm_sec_key_add()函数中对WEP密钥长度的验证逻辑存在缺陷。具体而言,当验证key_len参数大小时,函数没有正确地考虑IWL_SEC_WEP_KEY_OFFSET宏定义的偏移量。在WEP密钥处理流程中,实际可用的密钥数据是从key_len中减去偏移量后得到的,但由于代码缺少对这一偏移量的正确处理,可能导致在数组索引计算时使用未经调整的长度值。
从技术实现角度看,iwlwifi驱动在处理无线网络安全配置时,会调用iwl_mvm_sec_key_add()来添加安全密钥。当用户空间通过nl80211接口配置WEP密钥时,传入的key_len参数如果未经过适当的边界检查,驱动内部可能使用该值直接访问固定大小的内部缓冲区(如keybuf数组),从而触发越界读取。
利用方式方面,攻击者首先需要拥有本地系统的低权限账户(PR:L),然后通过修改无线网络配置或使用特定的netlink消息,向iwlwifi驱动发送精心构造的WEP密钥参数。由于漏洞触发无需用户交互(UI:N),攻击者可以通过脚本或程序自动化完成利用。成功利用后,攻击者可以读取内核内存中的敏感数据(如相邻内存区域的内容),并可能触发内核崩溃(kernel panic),导致系统拒绝服务(DoS)。