CVE-2026-21894n8n是一个开源的工作流自动化平台。在0.150.0到2.2.2版本中,Stripe Trigger节点存在严重的认证绕过漏洞。该漏洞允许未认证的远程攻击者通过发送伪造的Stripe webhook事件来触发受害者的工作流。Stripe Trigger节点在注册webhook端点时会创建并存储Stripe webhook签名密钥,但系统未能对传入的webhook请求进行签名验证。这导致任何知道webhook URL的HTTP客户端都可以伪装成Stripe服务器发送恶意事件。攻击者可以利用此漏洞伪造支付成功、订阅创建、订阅取消等Stripe事件,进而影响依赖这些事件的下游工作流行为。例如,攻击者可能伪造支付成功事件来触发虚假订单处理流程,或伪造订阅取消事件来破坏正常的订阅管理流程。虽然webhook URL包含高熵UUID提供了一定的保护,但拥有工作流访问权限的认证用户可以查看完整的webhook URL,从而增加了漏洞的实际利用风险。
该漏洞的根本原因在于n8n的Stripe Trigger节点在处理传入的webhook请求时缺少签名验证机制。具体来说:
1. **签名密钥存储**:当用户在n8n中配置Stripe Trigger节点并注册webhook端点时,Stripe会生成一个唯一的webhook签名密钥(signing secret),n8n会将此密钥存储在数据库中。
2. **验证缺失**:Stripe webhook的标准安全机制要求接收方使用存储的签名密钥验证请求头中的Stripe-Signature字段,以确保请求确实来自Stripe服务器且未被篡改。然而,n8n的Stripe Trigger节点在0.150.0到2.2.2版本中并未实现这一验证步骤。
3. **利用方式**:攻击者获取目标webhook URL后(可通过有权限的用户访问工作流配置获取),可以直接构造POST请求到该URL,请求体包含伪造的Stripe事件JSON数据(如payment_intent.succeeded事件),请求头可任意设置。由于缺少签名验证,n8n会将此伪造请求视为来自Stripe的合法webhook并触发相应的工作流执行。
4. **影响范围**:任何使用Stripe Trigger节点且版本在受影响范围内的n8n实例都存在此漏洞。攻击者可以触发工作流中的任意操作,包括数据处理、外部API调用、数据库操作等。