
El servicio VTEX Checkout Service expone los datos de OrderForm a través de los endpoints `/api/checkout/pub/orderForm/{orderFormId}` y `/attachments/*`. Estos endpoints no validan el tenant (cuenta de tienda) de la sesión autenticada contra la propiedad del OrderForm solicitado.
Fallo de autorización entre inquilinos y entre usuarios (IDOR / BOLA) en el servicio de Checkout de la plataforma de comercio VTEX.
| Campo | Valor |
|---|---|
| CVE ID | CVE-2026-52217 |
| Vendor | VTEX |
| Product | Plataforma de comercio VTEX, servicio de Checkout (chk) |
| Affected | Observado en chk v2.367.3 y reproducido en v2.374.3. La causa raíz se encuentra en la capa de almacenamiento y autorización de OrderForm y es a nivel de plataforma. |
| Vulnerability type | CWE-639 (Omisión de autorización mediante clave controlada por el usuario, IDOR / BOLA); CWE-284 (Control de acceso inadecuado) |
| CVSS 3.1 | 7.7 Alto, vector AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:L/A:N |
| Researcher | Theo Cia (Guardsi) |
| CVE status | Reservado en MITRE. Divulgación coordinada con el proveedor en curso. |
El detalle técnico completo y la prueba de concepto no se publican en este repositorio mientras el investigador y VTEX completan la divulgación coordinada bajo la política de seguridad publicada de VTEX. Están disponibles para el proveedor y para el CNA asignado o MITRE para validación, previa solicitud a través del canal privado a continuación. El informe completo se publicará después de un período de divulgación acordado mutuamente.
El objeto OrderForm de Checkout se direcciona mediante un orderFormId, pero no está vinculado a la cuenta VTEX (inquilino) ni al usuario autenticado que lo posee. Debido a esto, una solicitud que presente un orderFormId válido puede leer y modificar ese OrderForm a través de los límites de cuenta y usuario, sin verificación de propiedad en la sesión.
Un actor que obtenga el orderFormId de una víctima puede:
El orderFormId es un token opaco de 128 bits y no es enumerable, por lo que se trata de una falla de autorización condicionada a la obtención de un identificador válido, no un problema de fuerza bruta.
Vincular cada OrderForm a su inquilino propietario y, para carritos autenticados, a su usuario propietario. Rechazar cualquier lectura o escritura desde una sesión cuyo inquilino o usuario no coincida con el propietario del OrderForm, y rechazar el acceso anónimo a un OrderForm propiedad de un usuario autenticado.
Los pasos completos de reproducción y una prueba de concepto funcional están disponibles bajo solicitud a través del canal del proveedor anterior. La prueba de concepto se ejecutó únicamente contra cuentas de prueba propiedad del investigador, utilizando datos sintéticos. Mantenerla fuera del registro público preserva la divulgación coordinada mientras se aborda el problema.
Theo Cia, Guardsi.