El equipo de seguridad ChaMD5 ha encontrado una vulnerabilidad del tipo «Inclusión de Fichero Local» (Local File Inclusion, LFI) que permitiría la ejecución de código remoto (Remote Code Execution, RCE) en la versión 4.8.1 de PhpMyAdmin, una conocida aplicación web que permite trabajar con bases de datos MySQL del servidor.
La vulnerabilidad se encuentra en la función ‘checkPageValidity’, del fichero ‘/libraries/classes/Core.php’ de PhpMyAdmin, la cual se encarga de comprobar que el fichero a cargar usando el parámetro ‘target’ de ‘index.php’ es válido. Mediante una doble codificación, es posible saltar la restricción para cargar un archivo local arbitrario. Un ejemplo sería: ‘/index.php?target=db_sql.php%253f/etc/passwd’.
Además, para conseguir la ejecución remota de código, puede aprovecharse que PhpMyAdmin almacena en ficheros de sesión las sentencias SQL introducidas en su interfaz. Así pues, introduciendo una sentencia como «select ‘[?php phpinfo();exit;?]'», y obteniendo el id de sesión gracias a la cookie ‘phpMyAdmin’, puede ejecutarse código PHP arbitrario, el cual podría llamar a comandos del sistema. Un ejemplo completo sería el siguiente:
'index.php?target=db_sql.php%253f/../../../../../../../../
var/lib/php/sessions/sess_d41d8cd98f00b204e9800998ecf8427e'
Aunque se requiera estar autenticado para la explotación de esta vulnerabilidad, el uso de credenciales por defecto, fuerza bruta u otra vulnerabilidad que permita acceder sin credenciales, podrían permitir el control de la máquina debido a este fallo.
A día de hoy ya se encuentra disponible versión PhpMyAdmin 4.8.2. que soluciona el fallo.
Para evitar la explotación de vulnerabilidades como esta, es importante restringir el acceso a herramientas de administración. Una posible solución es limitar la conexión a IPs autorizadas, o el uso de autenticación Basic Auth con una conexión HTTPS.
Fuente: Segu-info.com.ar