CVE-2025-13231CVE-2025-13231是WordPress Fancy Product Designer插件中的一个中等严重性服务器端请求伪造(SSRF)漏洞。该漏洞存在于所有6.4.8及以下版本中,由于fpd_custom_uplod_file AJAX动作中的'url'参数存在时间检查和时间使用(TOCTOU)竞争条件而导致的。漏洞的核心问题在于插件首先使用getimagesize()函数验证URL,然后在后续操作中使用file_get_contents()获取相同URL内容。这种验证和获取分离的设计创造了可被利用的时间窗口,使未经身份验证的远程攻击者能够通过精心设计的攻击服务器,在验证阶段提供有效的图像响应,而在实际获取阶段重定向到任意内部或外部URL。此漏洞可能被用于扫描内网端口、访问内部服务、读取本地文件或对其他系统发起攻击,对受影响系统的安全性构成实质性威胁。
该漏洞的根本原因在于Fancy Product Designer插件的fpd_custom_uplod_file AJAX动作中实现了不安全的URL验证逻辑。插件采用了两阶段处理方式:第一阶段调用PHP的getimagesize()函数对用户提供的URL进行验证,期望获取有效的图像元数据;第二阶段使用file_get_contents()函数实际获取URL对应的内容。问题在于这两个操作之间存在时间差,攻击者可以控制中间响应。具体来说,攻击者部署一个恶意的HTTP服务器,当插件首次请求时返回符合图像格式的有效响应以通过getimagesize()验证,但在后续的file_get_contents()请求时返回HTTP 302重定向到攻击者选择的任意URL。由于插件代码未对重定向进行限制,最终获取的内容可能来自攻击者指定的目标地址。这种TOCTOU竞争条件使得攻击者能够绕过URL白名单或黑名单验证机制,执行未授权的服务器端请求。攻击者常利用此漏洞进行内网扫描、访问内部数据库连接字符串、读取metadata端点或对内部服务发起二次攻击。