Dos vulnerabilidades de código críticas en un componente central del repositorio de la cadena de suministro de PHP

Especialistas en ciberseguridad de SonarSource reportan la detección de diversas vulnerabilidades en PEAR, un entorno de desarrollo y sistema de distribución para componentes de código PHP. Según el reporte, estas vulnerabilidades podrían haber sido fácilmente explotadas para el despliegue de ataques de cadena de suministro, lo que podría generar severas interrupciones en sistemas de todo el mundo.

Desde el incidente de ataque a la cadena de suministro de SolarWinds estas variantes de hacking se han vuelto comunes. Un informe de la Agencia de Seguridad Cibernética de la Unión Europea (ENISA) estudió 24 ataques informados entre enero y julio de 2021, señalando que hasta el 50% de estos ataques provinieron de actores de amenazas conocidos, una tendencia que podría incrementar en los meses siguientes.

Estos ataques podrían resultar aún más significativos en una implementación como PEAR, ya que es probable que este recurso se ejecute en una computadora antes de implementarlo en los servidores de producción, lo que podría brindar a los hackers acceso a una red comprometida.

Se estima que se han descargado alrededor de 285 millones de paquetes de pear.php.net, siendo los más populares el propio cliente PEAR, Console_Getopt, Archive_Tar y Mail. Aunque alternativas como Composer cubren un sector más grande del mercado, estos paquetes de PEAR siguen siendo ampliamente utilizados.

SonarSource encontró al menos dos errores, asegurando que ambos han sido explotables durante más de 15 años. Si un actor de amenazas logra explotar la primera vulnerabilidad y publicar lanzamientos maliciosos, la segunda falla permitiría acceso al servidor PEAR central.

Si bien este es un riesgo de seguridad considerable, la buena noticia es que los mantenedores ya han comenzado a abordar el problema. Un primer parche fue lanzado el 4 de agosto, introduciendo un método seguro para generar bytes pseudoaleatorios en la función de restablecimiento de contraseñas.

Como se muestra en la siguiente captura de pantalla, una cadena compuesta por 16 bytes aleatorios se asigna a $random_bytes, mientras que md5($rand_bytes) se llama después. Esta segunda variable no existe ($random_bytes vs $rand_bytes) y esta operación siempre dará como resultado en el hash MD5 de una cadena vacía (d41d8cd98f00b204e9800998ecf8427e).

Estos problemas fueron reportados a los mantenedores de PEAR en julio de 2021 y su corrección completa podría estar lista el próximo mes de mayo.

Los investigadores recomiendan a los usuarios de implementaciones afectadas mantenerse al tanto del lanzamiento de las actualizaciones, además de considerar otras opciones como Composer, que cuenta con una comunidad de colaboradores más activa y con mantenimiento constante, enfocado en la prevención de fallas y ataques.

Para conocer más sobre riesgos de seguridad informática, malware, vulnerabilidades y tecnologías de la información, no dude en ingresar al sitio web del Instituto Internacional de Seguridad Cibernética (IICS).