Múltiples vulnerabilidades en phpMyAdmin permitirían ataques del tipo SQLi y XSS

Recientemente el equipo de phpMyAdmin ha lanzado parches de seguridad que abordan múltiples vulnerabilidades, las cuales han sido identificadas como CVE-2020-10804CVE-2020-10803 y CVE-2020-10802. Estos fallos de seguridad afectan a las siguientes versiones de phpMyAdmin:

  • Desde 4.0.0 hasta la versión 4.9.4.
  • Desde 5.0.0 hasta la versión 5.0.1.

El CVE-2020-10804, se da debido a un error en las librerías Privileges.php y UserPassword.php a la hora de recuperar el usuario actual, lo que conduce a una vulnerabilidad conocida como sql injection (SQLi). Un atacante con acceso al servidor podría crear un nombre de usuario especialmente diseñado y engañar a la víctima para que este realice acciones específicas con esa cuenta de usuario, por ejemplo: editar sus privilegios.

Además podría generar errores en el servidor para los usuarios que utilicen ciertos caracteres al intentan cambiar sus contraseñas de MySQL.

A continuación se detalla la porción del código vulnerable en Privileges.php:

Porción del código vulnerable en UserPassword.php:

Por otro lado el CVE-2020-10803, es debido a un error que se produce en tbl_get_field.php y la librería Results.php a la hora de la recuperación y visualización de resultados, dando lugar a una vulnerabilidad conocida como sql injection (SQLi), en donde podría utilizarse código malicioso para desencadenar otro tipo de ataque conocido como XSS. Para una explotación exitosa de esta vulnerabilidad, el atacante debería lograr insertar un código malicioso especialmente diseñado en ciertas tablas de la base de datos, cuando este código malicioso es recuperado el ataque XSS se produce de manera exitosa.

A continuación se detalla la porción del código vulnerable en tbl_get_field.php:

Porción del código vulnerable en Results.php:

Por último en el CVE-2020-10802, el error está en el archivo TableSearchController.php y es debido a que ciertos parámetros no validan correctamente los caracteres a la hora de realizar una consulta SQL, dando lugar a la vulnerabilidad conocida como sql injection (SQLi). Para la explotación exitosa de esta vulnerabilidad, un atacante necesitaría crear una base de datos o una tabla cuyos nombres sean especialmente diseñados.

Porción del código vulnerable en TableSearchController.php:

Recomendaciones:

  • Actualizar phpMyAdmin a las últimas versiones disponibles, en este caso:

Referencias

Compartir: