Condición de carrera en POS: empleados eliminaban órdenes ya cobradas
Contexto
Hotel con restaurante de alto volumen. El POS de Odoo incluye protección estándar contra cancelación de órdenes cobradas, pero la mitigación estándar tiene una ventana de vulnerabilidad específica.
Problema identificado
Empleados enviaban la orden a comanda y la eliminaban durante ese envío, justo en la ventana en que el estado de pago había sido iniciado pero aún no confirmado. La mitigación estándar de Odoo no cubre esa transición. El dinero cobrado físicamente no quedaba registrado en el sistema.
Intervención
Análisis del flujo de estados del módulo de POS en el código fuente. Identificación de la ventana exacta de la condición de carrera. Parche sobre el núcleo de POS que bloquea la eliminación cuando el estado de pago ha sido iniciado, independientemente del progreso de la sincronización.
Resultado
Vulnerabilidad cerrada. El parche es transparente en uso normal y bloquea específicamente la condición de explotación.
- POS
- Seguridad
- Condición de carrera
- Núcleo Odoo
- Hotelería
Caso de experiencia profesional previa a NioSystems. Los detalles se generalizaron para proteger la confidencialidad de cada cliente y empleador.