CVE-2026-9662CVE-2026-9662是WordPress平台下Recover Exit For WooCommerce插件的一个高危安全漏洞。该插件主要用于WooCommerce电商网站的退出意图弹窗功能,帮助商家挽回即将离开网站的客户。然而,该插件在1.0.3及以下所有版本中存在严重的本地文件包含(Local File Inclusion, LFI)漏洞。漏洞产生的根本原因在于插件的recover_exit()函数对用户提交的tpf POST参数缺乏足够的输入验证和安全过滤,直接将该参数用于include()语句的路径构建。由于缺乏路径遍历防护,攻击者可以通过构造特殊的文件路径参数,利用../等目录遍历序列,读取服务器上的任意本地PHP文件。这种漏洞可导致敏感信息泄露,包括但不限于配置文件中的数据库凭据、WordPress盐值、其他插件的密钥等。在特定的服务器配置环境下(如开启了远程文件包含选项allow_url_include或存在文件上传功能),该LFI漏洞甚至可能被利用于远程代码执行,从而完全接管网站服务器。值得注意的是,该漏洞无需任何认证即可被利用,攻击门槛较低,危害性极大。
漏洞存在于插件的recover_exit_main.php文件第41-42行附近的recover_exit()函数中。该函数直接获取用户POST请求中的tpf参数值,并将其拼接到include()语句中执行。典型的漏洞代码模式如下:$file = $_POST['tpf']; include($file); 或 include($_POST['tpf']);。由于缺少realpath()验证、basename()处理和目录遍历过滤,攻击者可以构造形如../../../../etc/passwd或../../wp-config.php的路径来读取服务器敏感文件。攻击者无需登录WordPress后台即可发送恶意POST请求。在某些配置下,若服务器开启了PHP的远程文件包含功能(allow_url_include=On),攻击者甚至可以通过指定远程URL来执行任意代码。防御此类漏洞需要在使用include/require前对用户输入进行严格的路径规范化处理,使用basename()函数提取文件名,并验证最终路径是否在预期目录范围内。