CVE-2026-5957WordPress EmailKit插件在1.6.5及以下版本中存在任意文件读取漏洞。该漏洞源于CheckForm类的create_template()方法中路径遍历验证逻辑缺陷。由于在可能不存在的目录上调用realpath(),结合PHP 8.x的特性,导致验证逻辑被绕过。拥有作者及以上权限的攻击者可通过REST API读取服务器上的敏感文件,如wp-config.php。
漏洞核心位于CheckForm类的create_template()方法。代码试图通过strpos检查路径是否在允许的基目录(wp-content/uploads/emailkit/templates/)下。然而,realpath()在目录不存在时返回false。在PHP 8.x中,strpos($real_path, false)会将false转换为空字符串,strpos($haystack, '')总是返回0。因此,检查条件strpos(...) !== 0判定为false,从而绕过路径验证。攻击者只需在emailkit-editor-template REST API参数中提供绝对路径(如/etc/passwd或/var/www/html/wp-config.php),即可读取文件内容。