Summary
CVE-2026-77999 is a critical logic flaw in the J2Store Joomla e-commerce extension’s PayPal payment-confirmation handling. An unauthenticated attacker can forge PayPal Instant Payment Notification (IPN) callbacks to fraudulently move orders to a "CONFIRMED" state without making any payment, or to force legitimate pending orders into a "FAILED" state. The issue carries a CVSS score of 8.7 (High) and affects multiple major J2Store release lines.
Technical details
- Root cause: The IPN signature-check function (
_validateIPN()) treated any non-INVALIDresponse — including PayPal’sUNVERIFIEDresponse — as a valid confirmation, and made its verification request to PayPal withCURLOPT_SSL_VERIFYPEERdisabled. The verdict it produced was stored in a field that no downstream code ever inspected, so order processing continued regardless of the actual verification result. - Amount-check bypass: The paid-amount comparison only executed when the
mc_grossPOST field was a positive number; omittingmc_grossfrom the forged POST body causedfloatval(null)to evaluate to0, silently skipping the check. - PayPal v2 gap: The separate
paypalv2.phppayment handler performed no amount validation at all, under any circumstance. - Trigger conditions: An attacker needs only the store’s configured
receiver_email(merchant PayPal address, often discoverable) and a sequential, enumerable order ID passed via thecustomfield. - Attack vector: A single anonymous, unauthenticated HTTP POST request to the store’s PayPal IPN listener endpoint — no user interaction or session required.
- Impact: Confirmation of orders without payment (financial fraud/theft of goods or services), or denial-of-service against legitimate customers’ orders by forcing them to a failed state.
Affected software
- J2Store extension for Joomla, versions 1.0.0 through 3.3.21
- J2Store extension for Joomla, versions 4.0.0 through 4.0.21
- J2Store extension for Joomla, versions 4.1.0 through 4.1.6
Severity
CVSS v4.0 Base Score: 8.7 (High)
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
Mitigation and recommended actions
- Immediate: Upgrade J2Store to a release beyond 4.1.6, where the affected versions are no longer listed as vulnerable. Confirm with the vendor (j2commerce.com) that the installed build addresses IPN signature validation, SSL peer verification, and amount checks described above.
- If no patch is available:
- Disable or restrict access to the PayPal IPN/notification endpoint until patched.
- Manually enforce server-side verification of PayPal IPN responses (require an
INVALID/VERIFIEDcheck with SSL peer verification enabled) via custom code or a WAF rule that rejects IPN POSTs without a verifiablemc_grossvalue. - Monitor order status transitions for anomalies (e.g., orders confirmed without corresponding PayPal transaction records) and reconcile against PayPal merchant account activity.
- Avoid exposing predictable/sequential order IDs where possible.
How IONIX identifies potentially affected assets
IONIX matches the following signal against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Raw HTTP response body:
/media/j2store/,/components/com_j2store/

