漏洞速览
- 风险评分:
9.1(严重) - 首次披露:2026-05-27
- 最近更新:2026-05-27
- 软件类型:插件
- 软件标识:
geo-my-wp - 受影响版本:<= 4.5.4
- 修复版本:4.5.5
- 是否已修复:是
漏洞详情
GEO my WP 插件在 4.5.4 及以下版本中存在 SQL 注入漏洞,攻击者可通过对 distance、lat、lng 参数注入恶意 payload 来利用此漏洞。问题出在插件通过 parsestr() 从 $SERVER['QUERYSTRING’] 读取参数值(绕过了 wpmagicquotes,因为后者不覆盖 $SERVER),随后直接将值传入 bare escsql(),再拼接进距离搜索查询中未经引号包裹的数字位置(HAVING/SELECT 子句的距离计算、BETWEEN 边界框预过滤),相关查询由 plugins/posts-locator/includes/class-gmw-wp-query.php 中的 gmwlocationsquery() 构建。由于 escsql() 仅转义字符串定界符,而这些位置本应接收数值类型,因此类似 1 OR SLEEP(3) 的 payload 能够绕过过滤。该漏洞已在 4.5.5 版本中修复,措施包括:在上游增加 isnumeric() 守卫逻辑,当任一坐标值非数字时将 WHERE 条件短路为 AND 1 = 0,同时将三处 escsql() 调用替换为 (float) 类型转换。
影响与风险
- 漏洞类型:Unauthenticated SQL Injection via 'distance' / 'lat' / 'lng' Parameters
- 风险说明:漏洞可能被利用以执行未授权操作,建议按官方修复方案立即升级并复核安全配置。
修复建议
- 按官方建议执行修复:更新至 4.5.5 或更高已修复版本。
- 复核
administrator/shop manager等高权限账号与角色授权。 - 排查近期插件安装/配置变更记录,确认无异常写入。
- 建议配合 WAF 与登录审计,持续观察可疑请求。
