CVE-2025-11691CVE-2025-11691是WordPress平台上一款广受欢迎的WooCommerce产品附加组件插件PPOM(Product Addons & Custom Fields for WooCommerce)中存在的一个高危SQL注入漏洞。该漏洞由Wordfence安全团队的安全研究员发现并报告,CVSS评分为7.5,属于高危级别。
该漏洞存在于插件的PPOM_Meta::get_fields_by_id()函数中,影响该插件所有33.0.15及以下版本。由于插件开发者在处理用户输入参数时未进行充分的转义处理,且在构建SQL查询时未使用参数化查询或预编译语句,导致攻击者可以在现有SQL查询中注入额外的恶意SQL语句。
该漏洞的危险性在于其无需任何身份认证即可被利用(PR:N),攻击者可以通过网络远程发起攻击(AV:N),且无需用户交互(UI:N)。一旦成功利用,攻击者可以从数据库中提取敏感信息,如用户凭证、个人信息、订单数据等。虽然该漏洞对完整性和可用性没有直接影响(C:H/I:N/A:N),但机密性影响为高,数据库中的所有信息都可能面临泄露风险。值得注意的是,该漏洞仅在管理员启用了"Enable Legacy Price Calculations"(启用旧版价格计算)设置时才可被利用。
该SQL注入漏洞的根本原因在于PPOM_Meta::get_fields_by_id()函数中对用户提供的参数处理不当。具体技术细节如下:
1. **漏洞函数位置**:PPOM_Meta::get_fields_by_id(),位于classes/ppom.class.php文件的第337行附近。
2. **漏洞原理**:在构建SQL查询时,开发者直接将用户控制的输入参数拼接到SQL语句中,而没有使用WordPress推荐的$wpdb->prepare()方法进行参数化处理,也没有对输入进行适当的转义(如使用esc_sql()或$wpdb->esc_like())。这使得攻击者可以通过精心构造的输入,在SQL查询中注入恶意代码片段。
3. **利用方式**:攻击者可以通过HTTP请求向受影响网站发送包含恶意SQL片段的参数。由于插件未对输入进行过滤和转义,恶意SQL代码会被直接拼接到原始查询中执行。攻击者可以利用UNION SELECT等技术从数据库中提取任意数据。
4. **利用前提条件**:管理员必须在插件设置中启用"Enable Legacy Price Calculations"(启用旧版价格计算)选项,否则相关代码路径不会被触发。
5. **攻击影响**:利用此漏洞,攻击者可以执行以下操作:
- 提取WordPress用户表(wp_users)中的用户名和密码哈希
- 读取订单、客户等敏感业务数据
- 通过提取的管理员凭证登录后台,进一步控制整个网站
6. **修复方式**:开发者已在后续版本中通过使用$wpdb->prepare()进行参数化查询来修复此漏洞。