CVE-2026-4062WordPress Geo Mashup插件在1.13.18及之前版本中存在基于时间的SQL注入漏洞。该漏洞源于对用户提供的参数 'object_ids' 和 'exclude_object_ids' 转义不足。由于值被放置在未加引号的 `IN(...)` 上下文中,`esc_sql()` 函数无法提供有效保护,导致未经身份认证的攻击者可通过盲注技术窃取敏感数据。
该漏洞的根本原因在于 `esc_sql()` 函数在特定SQL语境下的失效机制。虽然开发者使用了 `esc_sql()` 进行过滤,但受影响的参数(如 'object_ids')被直接拼接到未加引号的 `IN(...)` 或 `NOT IN(...)` SQL子句中。`esc_sql()` 仅对单引号等字符进行转义,无法防止右括号或SQL关键字的注入。攻击者可以通过输入精心构造的Payload(例如 `1) AND SLEEP(5)-- -`),成功闭合原有的括号并追加恶意的SQL查询语句。此外,尽管代码中存在 `sanitize_query_args()` 数字过滤器,但它仅应用于AJAX代码路径,而 `render-map.php` 和模板标签代码路径缺乏此关键保护。这种逻辑缺陷导致未经身份认证的攻击者可以利用基于时间的盲注技术,通过观察响应延迟,逐位提取数据库中的敏感信息,如用户凭据或哈希值。