🔴 《严重安全漏洞:CVE-2026-15300》

CVSS 评分: 严重(9.1)  状态: Received  发布时间: 2026-07-10


漏洞简介

该漏洞存在于 WordPress 的 GEO my WP 插件中,属于 SQL 注入(SQL Injection)漏洞,对应 CWE-89 分类。攻击者可以通过构造特制的 HTTP 请求,利用 distancelatlng 三个参数向数据库查询中注入恶意 SQL 代码。

漏洞的根源在于插件在处理这些参数时,从 $_SERVER['QUERY_STRING'] 中读取原始查询字符串,并通过 parse_str() 解析。由于 wp_magic_quotes 机制不覆盖 $_SERVER 变量,因此这些参数值未经过 WordPress 内置的转义保护。随后,这些值被直接传递给 esc_sql() 函数进行转义,但 esc_sql() 仅转义字符串定界符(如单引号),而这三个参数在 SQL 查询中被插入到未加引号的数值位置(例如 HAVINGSELECT 子句中的距离计算、BETWEEN 边界框预过滤条件)。因此,像 1 OR SLEEP(3) 这样的 payload 可以绕过转义,直接作为数值参与 SQL 运算,导致注入成功。

受影响的函数为 gmw_locations_query(),位于文件 plugins/posts-locator/includes/class-gmw-wp-query.php 中(版本 4.5.4 及之前)。

该漏洞已在 4.5.5 版本中修复。修复方式包括:

  • 在上游增加 is_numeric() 检查,当任一坐标值非数值时,将 WHERE 子句短路为 AND 1 = 0,从而阻止非数值输入进入查询。
  • 将原有的三个 esc_sql() 调用替换为 (float) 强制类型转换,确保参数始终为浮点数。

影响范围

  • 受影响版本:GEO my WP 插件 4.5.4 及之前所有版本
  • 修复版本4.5.5
  • 攻击向量:网络远程攻击(AV:N)
  • 攻击复杂度:低(AC:L),无需特殊条件
  • 所需权限:无(PR:N),未认证用户即可利用
  • 用户交互:无(UI:N)

风险分析

  • CVSS 评分:CVSS:3.1 基础分数为 8.2(高危),向量为 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H

  • 影响范围

    • 机密性(C):无影响(N),该漏洞不直接导致数据泄露
    • 完整性(I):高(H),攻击者可以修改数据库中的任意数据,包括插入、更新或删除记录
    • 可用性(A):高(H),攻击者可以通过注入 SLEEP() 等延时函数导致数据库响应缓慢,或通过 DROPDELETE 等操作直接破坏数据,造成服务不可用
  • 攻击后果

    • 未认证的远程攻击者可以构造恶意请求,向 WordPress 数据库执行任意 SQL 语句。
    • 可能导致数据库内容被篡改(如修改用户权限、插入恶意链接)、数据被删除,或通过延时注入造成拒绝服务(DoS)。
    • 由于 WordPress 数据库通常包含用户信息、配置数据等敏感内容,该漏洞可能被用于进一步提权或获取管理员权限。
  • 修复建议:立即将 GEO my WP 插件升级至 4.5.5 或更高版本。


🔍 技术细节

字段
CVE ID CVE-2026-15300
CVSS 评分 9.1 🔴
严重程度 严重
CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:H
CWE 分类 CWE-89
发布时间 2026-07-10
最后更新 2026-07-10
状态 Received
数据来源 security@wordfence.com

🔗 参考链接