FICHE CVE

CVE-2026-77999

Publiée le 2026-09-03 · Dernière modification le 2026-09-03

🇫🇷 EN BREF

Les extensions J2Store pour Joomla (versions 1.0.0-3.3.21, 4.0.0-4.0.21 et 4.1.0-4.1.6) ne vérifient pas correctement les notifications de paiement PayPal. Un attaquant distant anonyme peut envoyer une requête falsifiée au serveur pour marquer une commande en attente comme payée sans dépenser d'argent, ou forcer l'échec de la commande d'un autre client. Cette faille est facile à exploiter car elle ne nécessite aucune authentification, aucune interaction de l'utilisateur et seulement un accès réseau basique à l'URL de rappel (callback) de la boutique.

CVSS 4.08.7 ÉLEVÉE
Type de faiblesse
Publiée2026-09-03
Dernière modification2026-09-03

DÉTAIL DU VECTEUR CVSS

Vecteur d'attaqueRéseau
Complexité d'attaqueFaible
Prérequis d'attaqueAucun
Privilèges requisAucun
Interaction utilisateurAucune
Confidentialité (système vulnérable)Aucune
Intégrité (système vulnérable)Élevée
Disponibilité (système vulnérable)Aucune
Confidentialité (système subséquent)Aucune
Intégrité (système subséquent)Aucune
Disponibilité (système subséquent)Aucune

RÉFÉRENCES

Description officielle du NVD (en anglais)

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.