社区警报 Cloudflare 图像调整大小漏洞(CVE20258723)

WordPress Cloudflare 图片调整插件
插件名称 Cloudflare 图片调整
漏洞类型 远程代码执行
CVE 编号 CVE-2025-8723
紧急程度
CVE 发布日期 2025-08-18
来源网址 CVE-2025-8723

紧急安全公告:Cloudflare 图片调整 (cf-image-resizing) <= 1.5.6 — 通过 rest_pre_dispatch 进行未认证的 RCE (CVE-2025-8723)

日期: 2025年8月18日
严重性: 严重 (CVSS 10.0) — 远程代码执行 (RCE)
受影响的插件: Cloudflare 图片调整 (插件标识:cf-image-resizing)
易受攻击的版本: <= 1.5.6
修复于: 1.5.7
CVE: CVE-2025-8723


摘要(香港安全专家视角)

这是一个严重的未认证远程代码执行漏洞,存在于 Cloudflare 图片调整 WordPress 插件(版本 ≤ 1.5.6)中,利用了 WordPress REST API 的预调度钩子(rest_pre_dispatch),未进行适当的认证。该漏洞被分配为 CVE-2025-8723,并在版本 1.5.7 中修复。将此视为紧急情况 — 攻击者可能会自动化利用尝试。如果您管理香港或亚太地区的网站,请立即采取行动进行修补或控制风险,并在发现任何异常活动迹象时进行取证检查。.

执行摘要

攻击者可以通过 rest_pre_dispatch 触发未认证的代码路径,导致执行攻击者提供的输入或包含不安全内容,从而在易受攻击的网站上实现完全的 RCE。后果包括网站接管、后门、数据盗窃、垃圾邮件/SEO 黑名单,以及在共享主机上的潜在横向移动。请立即更新到 1.5.7。如果无法立即修补,请应用服务器级限制或虚拟修补,并进行以下事件响应步骤。.

出了什么问题(技术背景)

  • 该插件钩入 rest_pre_dispatch,该钩子在 REST 请求处理的早期运行,并可以短路正常路由。.
  • 在受影响的版本中,从该钩子可达的代码接受未认证的输入,并在未验证真实性或能力的情况下执行逻辑,从而实现 RCE。.
  • 根本原因:缺少认证/授权检查,加上在服务器执行上下文中对用户控制输入的不安全处理。.

因为 rest_pre_dispatch 在标准 REST 认证之前执行,未能验证请求允许未认证访问特权操作。利用只需向插件目标的 REST 端点发送一个 HTTP 请求。.

影响

  • 完全网站妥协(RCE → 后门 → 管理员创建 → 数据盗窃)。.
  • 如果 PHP 进程和主机允许特权升级,则可能获得服务器级访问。.
  • 数据外泄、内容篡改、垃圾邮件分发、加密挖矿或僵尸网络/承载活动。.
  • 搜索引擎黑名单和声誉损害。.

鉴于其未经认证的性质和CVSS 10.0,可以预期快速的自动扫描和利用。.

立即行动(现在该做什么)

  1. 立即将插件更新到1.5.7或更高版本。.
    从WP管理后台:插件 → 已安装插件 → 更新Cloudflare图像调整大小。.
    或通过WP-CLI:

    wp plugin list --format=table

  2. 如果您无法立即更新,请在服务器或WAF层阻止对插件的REST端点的访问。. 拒绝或限制对插件的/wp-json/…路径的流量,并阻止可疑的有效负载。.
  3. 如果您怀疑被利用:
    • 将网站置于维护模式或暂时阻止外部流量。.
    • 创建完整的文件和数据库备份,保留日志(写保护)。.
    • 更改WordPress管理员密码、数据库凭据、托管控制面板密码以及任何可能暴露的API密钥或SSH密钥。.
    • 搜索妥协指标(IoCs)— 请参见检测部分。.
  4. 暂时禁用插件 如果您无法应用可靠的虚拟补丁:
    wp 插件停用 cf-image-resizing

    注意:如果您依赖该插件,这可能会影响图像调整大小功能。.

  5. 增加监控 — 监视Web服务器访问日志、错误日志以及任何WAF或IDS警报,以查找峰值或可疑请求。.

WAF / 虚拟补丁指导

如果修补因测试或维护而延迟,请使用虚拟修补作为紧急措施。目标是阻止对插件命名空间的未经认证的请求,并检测/拒绝与RCE一致的有效负载(编码的PHP、PHP包装器、可疑的函数名称)。.

采用分层方法:

  • 阻止针对插件命名空间或端点的REST API请求。.
  • 阻止常用于 RCE 的有效负载模式(base64 编码的 PHP,php://,system(,exec(,反引号,带有意外类名的序列化 PHP)。.
  • 如果可行,限制对服务器级别(nginx/Apache)敏感 REST 路径的访问,仅允许受信任的 IP。.

ModSecurity 示例(说明性)

SecRule REQUEST_URI "@beginsWith /wp-json/cf-image-resizing" "id:100001,phase:1,deny,log,status:403,msg:'阻止对 cf-image-resizing 的可疑 REST 请求',severity:2"

Nginx 代码片段 — 限制插件 REST 端点

location ~* ^/wp-json/cf-image-resizing/ {

或仅允许受信任的 IP 范围:

location ~* ^/wp-json/cf-image-resizing/ {

Apache (.htaccess) — 拒绝对插件 REST 路径的访问

<If "%{REQUEST_URI} =~ m#^/wp-json/cf-image-resizing/#">
    Require all denied
</If>

WordPress 级别过滤器(临时 mu-plugin)

创建 wp-content/mu-plugins/block-cf-rest.php 拒绝对插件命名空间的未经身份验证的访问:

<?php
add_filter('rest_authentication_errors', function($result) {
    if ( ! empty($result) ) {
        return $result;
    }

    $request = rest_get_server()->get_request();
    $route = $request->get_route();

    if (strpos($route, '/cf-image-resizing/') === 0) {
        return new WP_Error('rest_forbidden', 'Access to this endpoint is temporarily disabled', array('status' => 403));
    }

    return $result;
}, 90);

更新插件并验证站点功能后,移除此临时过滤器。.

检测:妥协指标(IoCs)和日志模式

寻找可能表明被利用的迹象:

  • 请求到 /wp-json/cf-image-resizing/* 来自不寻常的 IP 或在短时间内大量不同 IP。.
  • 包含编码/混淆有效负载的 JSON 主体的 POST 请求(base64,gzinflate,php://input)。.
  • 可写目录中新增或修改的 PHP 文件(uploads,wp-content/uploads,wp-includes,plugins) — 冒充媒体但包含 PHP 代码的文件。.
  • 未经授权的管理员用户创建。.
  • 新的 cron 作业或意外的计划任务。.
  • 从 web 服务器到可疑 IP 或域的出站连接。.
  • 提升的错误日志显示 eval()、include() 具有意外路径,或 shell 命令的痕迹。.

建议的日志查询

# 在过去 7 天内查找插件路径的 REST 请求 .

取证检查清单(如果您怀疑被攻破)

  1. 保留证据:快照磁盘和数据库,保留完整日志(写保护副本)。.
  2. 隔离网站:下线或阻止不可信流量。.
  3. 确定范围:哪些文件和用户被更改;活动时间线。.
  4. 删除后门和恶意文件:检查并删除 webshell 和未知的 PHP 文件。.
  5. 轮换凭据:WordPress 管理员、数据库、托管控制面板、SSH 密钥、API 令牌。.
  6. 扫描和清理:使用多种工具和手动验证。.
  7. 如有必要,从已知良好的备份恢复。.
  8. 应用补丁(1.5.7+),加固环境,并监控复发。.
  9. 如果敏感数据被暴露,请遵循法律/监管披露程序。.

如果您缺乏内部事件响应能力,请立即聘请可信的安全专业人员——时间至关重要。.

加固建议(更新后)

  • 保持 WordPress 核心、主题和插件更新。启用自动小更新,并为重大更改安排受控维护。.
  • 将插件安装限制为可信的、积极维护的插件。删除未使用的插件和主题。.
  • 限制文件系统权限——避免为 web 服务器用户提供广泛的写权限。.
  • 限制REST API访问:阻止不需要公开的端点。.
  • 为WordPress用户实施最小权限;避免日常使用管理员账户。.
  • 维护监控和事件检测(日志聚合,针对可疑活动的警报)。.
  • 定期备份代码和数据库并测试恢复程序。.

采用分层防御策略:

  • 紧急隔离:更新插件或为易受攻击的REST路径应用服务器级拒绝规则。.
  • 虚拟补丁:临时WAF或服务器规则以阻止利用模式。.
  • 检测和清理:扫描webshell,移除后门,轮换凭据。.
  • 事件后强化:权限、监控、限制REST暴露。.

现在添加的威胁狩猎和监控规则

  • 对POST请求发出警报到 /wp-json/cf-image-resizing/ 其主体包含 base64_decode, eval, gzinflate, php://input, <?php, 系统(, 执行(.
  • 标记在计划变更窗口外创建新管理员用户。.
  • 关联REST端点上403/5xx响应的激增——通常在扫描/利用期间看到。.
  • 监视新PHP文件在 wp-content/uploads 或具有双扩展名的文件(例如,, image.jpg.php).
  • 监控从网络服务器到新的外部 IP 和域的出站连接。.

恢复和事件后行动

  1. 从干净的备份恢复或完全清理网站和主机。.
  2. 更换任何被泄露的凭据(数据库、WordPress、托管、API 密钥)。.
  3. 将插件修补到 1.5.7 或更高版本。.
  4. 在环境中执行全面扫描:容器、主机操作系统、定时任务和数据库以查找后门。.
  5. 如果私钥可能已暴露,请重新颁发 TLS 证书。.
  6. 根据当地合规要求通知托管提供商和受影响方。.
  7. 改善监控和保护措施,以检测重新感染尝试。.

快速检测命令和检查

# 检查插件版本

常见问题

问:我更新到 1.5.7 — 我安全吗?
答:更新到 1.5.7 修复了潜在的漏洞。然而,如果您的网站在更新之前已经被攻破,后门和未经授权的更改可能仍然存在。请遵循取证检查表并扫描网站。.

问:如果我无法更新(自定义代码依赖)怎么办?
答:应用虚拟补丁(服务器/WAF 规则)以阻止对插件 REST 端点的访问,或在测试和计划更新时暂时停用插件。.

问:阻止 REST 请求会破坏合法的图像功能吗?
答:激进的阻止可能会影响合法功能。尽量阻止对插件特定 REST 路径的未经身份验证的调用,并在可能的情况下,在完全阻止之前以仅检测模式清晰测试规则。.

最终检查清单(可复制)

  • [ ] 立即将 cf-image-resizing 更新到 1.5.7(或更高版本)。.
  • [ ] 如果无法更新,请应用服务器级别或WAF规则以阻止 /wp-json/cf-image-resizing/ 和可疑的有效负载。.
  • [ ] 检查日志以获取REST API访问和可疑请求体。.
  • [ ] 搜索新创建的管理员用户、修改的文件和意外的cron作业。.
  • [ ] 如果怀疑被攻击,请备份并保存证据。.
  • [ ] 轮换凭据并加强您的环境。.
  • [ ] 实施监控和检测规则以发现重新感染的尝试。.

如果您需要帮助实施这些遏制措施、进行取证检查或进行恢复,请立即联系合格的事件响应或安全专业人员。在香港及更广泛的亚太地区,及时的遏制和证据保存对于限制损害和满足监管义务至关重要。.

保持警惕——立即修补并验证您的环境。.

0 分享:
你可能也喜欢