
Le service de paiement VTEX expose les données OrderForm via les points de terminaison `/api/checkout/pub/orderForm/{orderFormId}` et `/attachments/*`. Ces points de terminaison ne valident pas le locataire (compte de magasin) de la session authentifiée par rapport à la propriété de l'OrderForm demandé.
Défaut d'autorisation inter-locataire et inter-utilisateur (IDOR / BOLA) dans le service de validation de commande (Checkout) de la plateforme VTEX Commerce.
| Champ | Valeur |
|---|---|
| Identifiant CVE | CVE-2026-52217 |
| Fournisseur | VTEX |
| Produit | Plateforme VTEX Commerce, service Checkout (chk) |
| Affecté | Observé sur chk v2.367.3 et reproduit sur v2.374.3. La cause racine se trouve dans la couche de stockage et d'autorisation OrderForm et s'applique à l'ensemble de la plateforme. |
| Type de vulnérabilité | CWE-639 (Contournement d'autorisation via clé contrôlée par l'utilisateur, IDOR / BOLA) ; CWE-284 (Contrôle d'accès inapproprié) |
| CVSS 3.1 | 7.7 Élevé, vecteur AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N |
| Chercheur | Theo Cia (Guardsi) |
| Statut CVE | Réservé auprès du MITRE. Divulgation coordonnée en cours avec le fournisseur. |
Les détails techniques complets et la preuve de concept ne sont pas publiés dans ce dépôt pendant que le chercheur et VTEX réalisent la divulgation coordonnée conformément à la politique de sécurité publiée par VTEX. Ils sont disponibles pour le fournisseur, et pour l'autorité de numérotation CNA attributrice ou le MITRE à des fins de validation, sur demande via le canal privé ci-dessous. L'analyse complète sera publiée après une période de divulgation convenue mutuellement.
L'objet OrderForm de la validation de commande (Checkout) est adressé par un orderFormId, mais n'est lié ni au compte VTEX (locataire) ni à l'utilisateur authentifié qui le possède. De ce fait, une requête présentant un orderFormId valide peut lire et modifier cet OrderForm à travers les frontières de compte et d'utilisateur, sans vérification de propriété sur la session.
Un acteur qui obtient le orderFormId d'une victime peut :
Le orderFormId est un jeton opaque de 128 bits et n'est pas énumérable. Il s'agit donc d'un défaut d'autorisation conditionné par l'obtention d'un identifiant valide, et non d'un problème de force brute.
Lier chaque OrderForm à son locataire propriétaire et, pour les paniers authentifiés, à son utilisateur propriétaire. Rejeter toute lecture ou écriture émanant d'une session dont le locataire ou l'utilisateur ne correspond pas au propriétaire de l'OrderForm, et rejeter tout accès anonyme à un OrderForm appartenant à un utilisateur authentifié.
Les étapes de reproduction complètes et une preuve de concept fonctionnelle sont disponibles sur demande via le canal du fournisseur ci-dessus. La preuve de concept a été exécutée uniquement contre des comptes de test appartenant au chercheur, en utilisant des données synthétiques. La maintenir hors des archives publiques préserve la divulgation coordonnée pendant que le problème est traité.
Theo Cia, Guardsi.