Description
Joomla Extension - j2commerce.com - Unauthenticated PayPal callback forgery leading to order confirmation fraud in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - The PayPal IPN listener's signature check (`_validateIPN()`) accepted `UNVERIFIED` and any non-`INVALID` response as valid, made its verification request with `CURLOPT_SSL_VERIFYPEER` disabled, and stored its verdict in a field nothing downstream ever checked — so processing continued regardless of the outcome. Separately, the paid-amount comparison only ran when `mc_gross` was a positive number; omitting the field from the POST body (`floatval(null) == 0`) skipped the check entirely. Combined with a merchant-configured `receiver_email` and a sequential, enumerable order id read from the `custom` field, an anonymous POST was enough to move a pending order straight to `CONFIRMED` with no payment, or force another customer's pending order to `FAILED`. `paypalv2.php` performed no amount check under any circumstances.
Published: 2026-09-03
Score: 8.7 High
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability lies in the PayPal IPN listener of the J2Store extension, which accepts responses marked as UNVERIFIED or any status other than INVALID, disables SSL peer verification on the validation request, and stores the verification result in a field that is never checked downstream. Additionally, the amount validation routine is bypassed when the posted gross amount is missing or not a positive value, allowing the check to be skipped entirely. These flaws allow an unauthenticated attacker to forge a PayPal callback, supply a receiver_email that matches the merchant configuration, and embed a sequential order ID in the custom field. When combined, the attacker can promote a pending order directly to CONFIRMED without payment or invalidate another customer's pending order, creating a path for fraudulent transaction confirmation or denial. The impact is real financial loss through unauthorized order acceptance or forced cancellations.

Affected Systems

The affected applications are the Joomla CMS with the J2Store extension published by j2commerce.com. Versions 1.0.0 through 3.3.21, 4.0.0 through 4.0.21, and 4.1.0 through 4.1.6 are vulnerable. No additional products or versions are listed.

Risk and Exploitability

The CVSS score of 8.7 indicates a high severity rating, reflecting the possibility of a remote attacker to impersonate PayPal and manipulate order states without authentication. The EPSS score is not available, and the vulnerability is not currently listed in the CISA KEV catalog, but the attack vector is straightforward: an unauthenticated HTTP POST to the IPN listener with crafted parameters. Once the verification step is weakened and amount checks bypassed, the probability of exploitation rises considerably, especially for sites that use default settings for PayPal receiver email and do not enforce strict input validation.

Generated by OpenCVE AI on September 3, 2026 at 13:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to the latest secured version of J2Store that properly validates PayPal IPN signatures and rejects UNVERIFIED or other non‑VALID responses.
  • Reconfigure the PayPal IPN listener to enable CURLOPT_SSL_VERIFYPEER and require a valid SSL certificate for all validation requests.
  • Implement mandatory checks for the receiver_email and ensure that paid‑amount verification is executed for all non‑zero amounts, rejecting any request that omits this field.

Generated by OpenCVE AI on September 3, 2026 at 13:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Thu, 03 Sep 2026 14:00:00 +0000

Type Values Removed Values Added
First Time appeared J2commerce.com
J2commerce.com j2store Extension For Joomla
Vendors & Products J2commerce.com
J2commerce.com j2store Extension For Joomla

Thu, 03 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Thu, 03 Sep 2026 12:00:00 +0000

Type Values Removed Values Added
Description Joomla Extension - j2commerce.com - Unauthenticated PayPal callback forgery leading to order confirmation fraud in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6 - The PayPal IPN listener's signature check (`_validateIPN()`) accepted `UNVERIFIED` and any non-`INVALID` response as valid, made its verification request with `CURLOPT_SSL_VERIFYPEER` disabled, and stored its verdict in a field nothing downstream ever checked — so processing continued regardless of the outcome. Separately, the paid-amount comparison only ran when `mc_gross` was a positive number; omitting the field from the POST body (`floatval(null) == 0`) skipped the check entirely. Combined with a merchant-configured `receiver_email` and a sequential, enumerable order id read from the `custom` field, an anonymous POST was enough to move a pending order straight to `CONFIRMED` with no payment, or force another customer's pending order to `FAILED`. `paypalv2.php` performed no amount check under any circumstances.
Title Joomla Extension - j2commerce.com - Unauthenticated PayPal callback forgery leading to order confirmation fraud in J2Store 1.0.0-3.3.21, 4.0.0-4.0.21, 4.1.0-4.1.6
Weaknesses CWE-472
CWE-602
References
Metrics cvssV4_0

{'score': 8.7, 'vector': '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'}


Subscriptions

J2commerce.com J2store Extension For Joomla
cve-icon MITRE

Status: PUBLISHED

Assigner: Joomla

Published:

Updated: 2026-09-03T12:40:09.757Z

Reserved: 2026-08-21T19:23:55.924Z

Link: CVE-2026-77999

cve-icon Vulnrichment

Updated: 2026-09-03T12:25:49.147Z

cve-icon NVD

Status : Received

Published: 2026-09-03T13:06:08.760

Modified: 2026-09-03T13:06:08.760

Link: CVE-2026-77999

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-03T13:45:04Z

Weaknesses
  • CWE-472

    External Control of Assumed-Immutable Web Parameter

  • CWE-602

    Client-Side Enforcement of Server-Side Security