Módulos de pago y fallos de seguridad
Hemos detectado fallos de seguridad en el código e los siguientes módulos de pago

CECA:

Caja Rural:

  • Son vulnerables todas la versiones, las incluidas en los paquetes "payment modules X" de qadram, y las publicadas en http://oscommerce.com

El problema de seguridad viene causado por el hecho de necesitar ejecutar el fichero binario entregado por estas entidades en el servidor.

Para poder realizar esto, primero tenemos que deshabilitar el modo seguro de php (safe_mode=off) en nuestro hosting o seleccionar un hosting en el que esté deshabilitado.

En segundo lugar el módulo deberá llamar a la función exec() de php o al equivalente en otros lenguajes como perl, para ejecutar ese binario, pasándole los parámetros correspondientes. Aquí es donde está el problema, ya que algunos de estos parámetros nos llegan en la petición http del cliente ya sea como parámetro post o get, esto implica que un cliente malicioso puede dar valores a estos parámetros de forma que en el servidor se ejecute el código que desee. Más info

La solución pasa por validar los parámetros que nos envían los clientes antes de intentar ejecutar el binario con ellos, pero aún así es muy difícil asegurar que esto sea efectivo al 100%, siempre puede salir alguien capaz de saltarse esas validaciones.

La verdadera forma de evitar esto pasaría porque la entidades publicasen el código fuente de estos ejecutables o describiesen exactamente que es lo que hacen de forma que su funcionalidad se pudiese imitar en php, perl o el lenguaje que corresponda sin tener que ejecutar nada directamente en el servidor. Sugiero a los clientes de estas entidades que presionen al respecto.

Recordad, que estas vulnerabilidades afectarán a cualquier tienda o incluso servidor al que se hayan subido los ficheros de estos módulos, aunque no se utilicen.

ACTUALIZACIÓN: Ya hay disponibles también en oscommerce.com, versiones de los módulos para CajaRural y CECA corregidas.