CVE-2026-121970 Falsificación de firma de webhooks en Pay with Vipps and MobilePay for WooCommerce
El manejador de webhooks de pagos recurrentes no devuelve ante un secreto vacío y calcula un HMAC con clave vacía usando == en lugar de hash_equals. Atacantes no autenticados pueden falsificar un evento recurring.agreement-stopped.v1 con un agreementId conocido y una firma de clave vacía para cancelar la suscripción activa de una víctima en WooCommerce. Corregido en 6.4.1.
CVSS 3.1
- CVSS 4.06.3 · media
- Probabilidad de explotación · EPSS del 09/110,2 % · percentil 8
- Explotada activamenteNo confirmada
- Exploit públicoNo conocido
Afectados
wphostingdev Pay with Vipps and MobilePay for WooCommerce
desde 5.0.0 hasta antes de 6.4.1
Qué hacer
- Verificá si usás Pay with Vipps and MobilePay for WooCommerce y en qué versión.
- Actualizá a la versión corregida que indique el fabricante en su aviso o aplicá su mitigación.
- Revisá registros y accesos de los sistemas expuestos para descartar un uso previo.
Calculadora CVSS
CVSS 3.1 · 3.7 BAJA
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N
- Vector de ataqueRed
- Complejidad del ataqueAlta
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- AlcanceSin cambio
- ConfidencialidadNinguna
- IntegridadBaja
- DisponibilidadNinguna
CVSS 4.0 · 6.3 MEDIA
CVSS:4.0/AV:N/AC:H/AT:P/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
- Vector de ataqueRed
- Complejidad del ataqueAlta
- Requisitos del ataquePresentes
- Privilegios requeridosNinguno
- Interacción del usuarioNinguna
- Confidencialidad (sistema vulnerable)Ninguna
- Integridad (sistema vulnerable)Baja
- Disponibilidad (sistema vulnerable)Ninguna
- Confidencialidad (sistemas posteriores)Ninguna
- Integridad (sistemas posteriores)Ninguna
- Disponibilidad (sistemas posteriores)Ninguna
Descripción original
Pay with Vipps and MobilePay for WooCommerce (woo-vipps) before 6.4.1 contains an improper cryptographic signature verification vulnerability in the recurring-payment webhook handler that allows unauthenticated attackers to forge webhook requests when no local webhook secret is stored, because the code fails to return on an empty secret and computes an HMAC keyed with an empty string using a loose == comparison instead of hash_equals. Attackers can craft a recurring.agreement-stopped.v1 event with a known agreementId and a matching empty-key signature to cancel a victim's active WooCommerce subscription.
Referencias (4)
Resumen traducido automáticamente de la descripción original. Fuente: Nureq Monitor. Cómo funciona.