Summary
CVE-2026-73316 is a payment replay vulnerability in XenForo’s PayPal REST payment provider, caused by insufficient verification of data authenticity (CWE-345). Because the affected code fails to check for duplicate transaction IDs, an attacker can resubmit a valid PayPal webhook payload multiple times to trigger repeated subscription activations and unauthorized account upgrades. The flaw carries a CVSS v4.0 base score of 8.7 (High) and affects all XenForo versions prior to 2.3.13.
Technical details
- Root cause: The PayPal REST payment provider integration in XenForo does not verify that an incoming webhook’s transaction ID has already been processed, allowing duplicate processing of the same payload.
- Trigger conditions: An attacker who can capture or otherwise obtain a valid PayPal webhook payload can resend (replay) it to the XenForo endpoint that handles PayPal payment notifications.
- Attack vector: Network — the payload is replayed directly against the site’s payment webhook handler, requiring no authentication or user interaction.
- Impact: Repeated processing of the same payment event can cause duplicate subscription activations and unauthorized upgrades of user accounts/entitlements, an integrity impact without direct confidentiality or availability loss.
Affected software
- XenForo, all versions before 2.3.13 (PayPal REST payment provider component)
Severity
- CVSS v4.0: 8.7 (High) —
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N - CVSS v3.1: 7.5 (High) —
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
Mitigation and recommended actions
- Immediate: Upgrade XenForo to version 2.3.13 or later, which includes the fix for this payment replay issue.
- If immediate patching is not possible: Monitor PayPal transaction/subscription logs for duplicate transaction IDs or unexpected repeated subscription activations, and consider restricting or closely auditing access to the PayPal webhook endpoint at the network/WAF layer until the update can be applied.
How IONIX identifies potentially affected assets
IONIX matches the following signals against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw response body:
jQuery.extend(true, XenForo,Forum software by XenForo™,<!--XF:branding,<html id="XenForo",<html id="XF" - Rendered page (JavaScript object present after execution):
XF.GuestUsername

