Cacti provides an operational monitoring and fault management framework. Prior to version 1.2.27, Cacti calls `compat_password_hash` when users set their password. `compat_password_hash` use `password_hash` if there is it, else use `md5`. When verifying password, it calls `compat_password_verify`. In `compat_password_verify`, `password_verify` is called if there is it, else use `md5`. `password_verify` and `password_hash` are supported on PHP < 5.5.0, following PHP manual. The vulnerability is in `compat_password_verify`. Md5-hashed user input is compared with correct password in database by `$md5 == $hash`. It is a loose comparison, not `===`. It is a type juggling vulnerability. Version 1.2.27 contains a patch for the issue.
Cacti proporciona un framework de monitoreo operativo y gestión de fallas. Antes de la versión 1.2.27, Cacti llama a `compat_password_hash` cuando los usuarios establecen su contraseña. `compat_password_hash` usa `password_hash` si lo hay, de lo contrario usa `md5`. Al verificar la contraseña, llama a `compat_password_verify`. En `compat_password_verify`, se llama a `password_verify` si existe; de lo contrario, use `md5`. `password_verify` y `password_hash` son compatibles con PHP < 5.5.0, siguiendo el manual de PHP. La vulnerabilidad está en `compat_password_verify`. La entrada del usuario con hash Md5 se compara con la contraseña correcta en la base de datos mediante `$md5 == $hash`. Es una comparación vaga, no `===`. Es un tipo de vulnerabilidad que hace malabarismos. La versión 1.2.27 contiene un parche para el problema.