# Pay with Vipps and MobilePay for WooCommerce <= 6.4.0 - Unauthenticated Authentication Bypass via Recurring Payments Webhook

- **ID:** WPSEC-2026-2555
- **Plugin:** Pay with Vipps and MobilePay for WooCommerce (`woo-vipps`), https://wordpress.org/plugins/woo-vipps/
- **Affected versions:** from 4.0.0 before 6.4.1
- **Fixed in:** 6.4.1 (Update to 6.4.1 or later.)
- **Severity:** Low 3.7 (CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:N)
- **Weakness:** CWE-347
- **Usage among sites WPSec scans:** plugin Low, affected versions Low (as of 2026-11-05)
- **Attack surface analysis:** https://attacksurface.wpsec.com/plugin/woo-vipps
- **Fix released:** 2026-11-04
- **Published:** 2026-11-05
- **URL:** https://wpsec.com/vuln/WPSEC-2026-2555/

## Description

The Pay with Vipps and MobilePay for WooCommerce plugin for WordPress is vulnerable to webhook signature verification bypass via the recurring payments webhook callback (wc-api/wc_gateway_vipps_recurring?callback=webhook) in all versions up to, and including, 6.4.0. This is because the handler only logs a warning and keeps processing when no webhook secret is stored for the merchant serial number. In that case the HMAC signature is checked against an empty key that anyone can compute, and the check also has no timestamp validation. This makes it possible for unauthenticated attackers to send forged webhook events that are treated as authentic, for example a 'recurring.agreement-stopped.v1' event that cancels the WooCommerce subscription linked to a known agreement ID. This only works on shops where no webhook secret is stored.

## References

- https://wpsec.com/vuln/WPSEC-2026-2555/
- https://plugins.svn.wordpress.org/woo-vipps/tags/6.4.1/
- https://wordpress.org/plugins/woo-vipps/

Source: WPSec, https://wpsec.com/vuln/WPSEC-2026-2555/

License: CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Free to use, share and adapt, also commercially, if you credit WPSec and link to this advisory.
