Skip to main content

J2Store EUVDEUVD-2026-70415

| CVE-2026-77999 HIGH
External Control of Assumed-Immutable Web Parameter (CWE-472)
2026-09-03 Joomla GHSA-ffqf-m6vh-866w
8.7
CVSS 4.0 · Vendor: Joomla
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Enumerate merchant receiver_email from checkout page
  2. Delivery
    Identify sequential pending order ID
  3. Exploit
    Craft forged IPN POST omitting mc_gross
  4. Execution
    IPN handler skips amount check (floatval null = 0)
  5. Persist
    Signature check passes on UNVERIFIED response
  6. Impact
    Order status set to CONFIRMED with no payment

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V3 - Web Frontend Security Server-side parameter enforcement
Exploitation Conditions

The PayPal IPN listener endpoint must be enabled - this is required for any PayPal-integrated J2Store installation using IPN, which is the default PayPal integration mode. The attacker requires two values: the merchant's PayPal receiver_email address (publicly visible on most merchant sites in PayPal button markup or discoverable from prior transaction metadata) and a valid pending order ID, which the advisory explicitly describes as sequential and enumerable. No authentication is required. The attack is limited to orders in pending status; already-confirmed or completed orders are not susceptible to the confirmation bypass. The paypalv2.php code path bypasses the amount check unconditionally and is not subject to the mc_gross omission technique - it requires no preconditions at all beyond a reachable endpoint. The attack works regardless of whether SSL is enforced on the IPN endpoint itself, because the vulnerability is in server-side logic, not transport.

Impact

Real-world risk is high for any merchant running a vulnerable J2Store version with PayPal IPN enabled. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N) scoring 8.7 accurately reflects the attack surface: network-reachable, no privileges, no user interaction, and high integrity impact. The attack requires only two pieces of information - the merchant's PayPal receiver_email (typically visible on the merchant's site or in previous PayPal transactions) and a valid pending order ID (explicitly described as sequential and enumerable). No special conditions, authentication, or timing requirements exist. The secondary impact - forcing another customer's order to FAILED - is an underappreciated denial-of-service against order integrity. No KEV listing or public exploit code has been identified, but the vulnerability is self-documenting from the advisory description and requires no binary analysis or fuzzing; any developer familiar with PHP and PayPal IPN can construct a working exploit in minutes. EPSS data is absent from the provided input.

Exploit ScenarioDerived

An attacker browsing a J2Store-powered Joomla shop places a legitimate order to learn its sequential order ID and observes the merchant's PayPal receiver_email (typically embedded in PayPal buttons on the checkout page). The attacker then sends a forged HTTP POST to the store's IPN endpoint, omitting mc_gross to bypass the amount check and supplying the target order's ID in the custom field, causing the store to mark the order CONFIRMED and fulfill it without any payment having been processed. The same technique applied to another customer's pending order ID sets that order to FAILED, disrupting a legitimate transaction.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 03, 2026

Unauthenticated PayPal IPN callback forgery in J2Store (Joomla e-commerce extension) versions 1.0.0-3.3.21, 4.0.0-4.0.21, and 4.1.0-4.1.6 allows any anonymous attacker to confirm orders without payment or force other customers' orders to FAILED status. The vulnerability stems from three compounding flaws: a signature verification function that treated UNVERIFIED as acceptable, disabled TLS peer verification on the outbound PayPal check, and amount validation that could be entirely bypassed by omitting the mc_gross field - making the IPN endpoint trivially forgeable with a plain unauthenticated HTTP POST. No public exploit has been identified at time of analysis, but the attack is trivially constructable from the description alone given enumerable order IDs and a merchant receiver_email that is typically public.

RemediationAI

Upgrade J2Store to a version beyond the affected ranges: above 3.3.21 for the 3.x branch, above 4.0.21 for the 4.0.x branch, or above 4.1.6 for the 4.1.x branch. No exact fix version is confirmed from the provided input data; verify the current release at https://www.j2commerce.com/ before upgrading. If an immediate upgrade is not possible, the most effective compensating control is to disable the PayPal IPN callback endpoint entirely at the web server or Joomla configuration level and switch to a redirect-based PayPal flow with server-side verification - this eliminates the forged-callback attack surface entirely but requires reconfiguring the payment gateway. As a secondary measure, restrict the IPN callback URL to PayPal's published IP ranges at the firewall or .htaccess level, which raises the attack complexity from trivially low to requiring a PayPal IP spoofing capability. Do not rely on application-level fixes alone without patching, as the description identifies three independent logic failures in the IPN handler.

Affected VersionsENISA

J2Store extension for Joomla 4.0.0-4.0.21
J2Store extension for Joomla 4.1.0-4.1.6
J2Store extension for Joomla 1.0.0-3.3.21

Affected Packages

euvd j2store_extension_for_joomla no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

J2Store is a PHP-based Joomla extension (CPE: cpe:2.3:a:j2commerce.com:j2store_extension_for_joomla) implementing e-commerce functionality including PayPal Instant Payment Notification (IPN) handling. The IPN flow is designed so PayPal POSTs payment data to a merchant callback URL, which the merchant verifies by re-POSTing to PayPal and checking for a VERIFIED response. J2Store's _validateIPN() function treated any response that was not literally INVALID as passing - including UNVERIFIED - and made its outbound verification call with CURLOPT_SSL_VERIFYPEER disabled, opening a secondary MITM vector on that check. Crucially, the validation result was stored in a local field that no downstream code path actually read. Separately, the amount check in paypalv2.php was gated on mc_gross being a positive float; PHP's floatval(null) evaluates to 0, so omitting the field entirely caused the condition to be false and the amount check to be skipped unconditionally. The root cause class is CWE-472 (External Control of Assumed-Immutable Web Parameter): the IPN listener treated attacker-supplied POST fields - including the order identifier in the custom field, which is sequential and enumerable - as trustworthy without genuine server-side verification.

Know when PHP gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (Joomla) PRIMARY 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
vuln.today AI 7.5 HIGH

Network-accessible IPN endpoint, no auth or complexity; pure integrity impact (order fraud), no confidentiality or availability effect.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (Joomla).

CVSS VectorVendor: Joomla

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

J2Store e-commerce extensions in versions 1.0.0-3.3.21, 4.0.0-4.0.21, and 4.1.0-4.1.6 contain an unauthenticated payment authentication bypass that allows attackers to confirm orders without payment or sabotage legitimate customer transactions. Any organization running affected J2Store versions faces immediate exposure to payment fraud, revenue loss, and customer service disruption. This vulnerability directly compromises the integrity of payment processing for Joomla-based e-commerce operations.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations include: (1) restrict IPN endpoint access to PayPal-authorized IP addresses only via firewall ACLs; (2) implement independent server-side payment validation that cross-checks IPN confirmations against live PayPal transaction records before any order status change; (3) re-enable strict TLS peer verification for all outbound PayPal API communications; (4) deploy real-time alerting and mandatory manual review for all payment confirmations; (5) require manual merchant approval for orders exceeding a defined revenue threshold before processing.

Threat Intelligence Overview

EPSS Score
0.3%
Top 83% exploitable
Prevalence
Medium
popular Joomla e-commerce extension, Joomla-ecosystem deployment
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
High
Technical Impact
Partial

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

More in PHP

View all
CVE-2019-11043 CRITICAL POC
9.8 Oct 28

In PHP versions 7.1.x below 7.1.33, 7.2.x below 7.2.24 and 7.3.x below 7.3.11 in certain configurations of FPM setup it

CVE-2012-1823 CRITICAL POC
9.8 May 11

sapi/cgi/cgi_main.c in PHP before 5.3.12 and 5.4.x before 5.4.2, when configured as a CGI script (aka php-cgi), does not

CVE-2016-1555 CRITICAL POC
9.8 Apr 21

(1) boardData102.php, (2) boardData103.php, (3) boardDataJP.php, (4) boardDataNA.php, and (5) boardDataWW.php in Netgear

CVE-2018-11138 CRITICAL POC
9.8 May 31

The '/common/download_agent_installer.php' script in the Quest KACE System Management Appliance 8.0.318 is accessible by

CVE-2024-11680 CRITICAL POC
9.8 Nov 26

ProjectSend versions prior to r1720 are affected by an improper authentication vulnerability. Rated critical severity (C

CVE-2025-49113 CRITICAL POC
9.9 Jun 02

Roundcube Webmail contains a critical PHP object deserialization vulnerability (CVE-2025-49113, CVSS 9.9) that allows au

CVE-2017-9841 CRITICAL POC
9.8 Jun 27

Util/PHP/eval-stdin.php in PHPUnit before 4.8.28 and 5.x before 5.6.3 allows remote attackers to execute arbitrary PHP c

CVE-2025-0108 HIGH POC
8.8 Feb 12

Palo Alto Networks PAN-OS management web interface contains an authentication bypass allowing unauthenticated attackers

CVE-2021-25298 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2021-25296 HIGH POC
8.8 Feb 15

Nagios XI version xi-5.7.5 is affected by OS command injection. Rated high severity (CVSS 8.8), this vulnerability is re

CVE-2013-4983 CRITICAL POC
10.0 Sep 10

The get_referers function in /opt/ws/bin/sblistpack in Sophos Web Appliance before 3.7.9.1 and 3.8 before 3.8.1.1 allows

CVE-2023-6553 CRITICAL POC
9.8 Dec 15

The Backup Migration plugin for WordPress is vulnerable to Remote Code Execution in all versions up to, and including, 1

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy