Vulnerabilidades libuser (CVE-2015-3245 and CVE-2015-3246)
Red Hat Product Security ha tenido conocimiento de dos vulnerabilidades de seguridad: en la herramienta userhelper
(parte del paquete usermode
) y en la biblioteca libuser
. Los usuarios locales autenticados con acceso a shell podían combinar estas vulnerabilidades para obtener escalamiento de privilegio local a usuario root. Estos fallos han sido asignados como CVE-2015-3245 y CVE-2015-3246. Estas vulnerabilidades han sido valoradas como de impacto Importante. Red Hat agradece a Qualys por reportar estos problemas.
Información de fondo
La bibliotecalibuser
implementa una interfaz estandarizada para manipular y administrar cuentas de usuarios y de grupos. El programa userhelper
, el cual se incluye en el paquete usermode
, proporciona una interfaz no interactiva para cambiar la contraseña de usuario, el campo GECOS y el shell.
Impacto
Consulte las siguientes secciones para obtener descripciones de las dos vulnerabilidades relacionadas.
La condición Race en la actualización de archivos de contraseña (CVE-2015-3246, Importante)
Se encontró un error en la forma en que la bibliotecalibuser
manejaba el archivo /etc/passwd
. Aunque los programas tradicionales como passwd
, chfn
y chsh
funcionan en una copia temporal de /etc/passwd
y al final usan la función rename()
para renombrar la copia temporal, libuser
modificaba directamente /etc/passwd
. Infortunadamente, si todo salía mal durante estas modificaciones, libuser
podía dejar a /etc/passwd
en un estado inconsistente.
Esta conducta podría resultar en un ataque local de negación del servicio; además, cuando se combinaba con la segunda vulnerabilidad (CVE-2015-3245, descrita abajo), podía resultar en un escalamiento de privilegios locales a usuario root.
Consulte la tabla a continuación para obtener enlaces de recomendaciones de seguridad que solucionan este problema.
Falta de validación de contenido de campo GECOS (CVE-2015-3245, Moderado)
Se encontró que la función chfn
de la herramienta userhelper
no filtraba correctamente los caracteres de nueva línea. La función chfn
implementada por la herramientauserhelper
verificaba si los campos que se daban en la línea de comandos eran válidos (es decir, que contenían caracteres no prohibidos). Infortunadamente, estos caracteres (:,=
) no incluían el caracter \n
y permitían que atacantes locales inyectaran caracteres de nueva línea en el archivo '/etc/passwd` y alteraran este archivo en formas inesperadas.
Un atacante local podía aprovechar este error para dañar el archivo /etc/passwd
, lo cual podía generar un ataque de negación de servicio en el sistema.
Nota: Este problema inicialmente atribuido al paqueteusermode
está corregido en esta actualización para libuser
porque libuser
tuvo que cambiarse de todos modos para corregir la vulnerabilidad CVE-2015-3246.
Recomendaciones de seguridad
Estos errores afectan todas las versiones de la biblioteca libuser
incluidas en Red Hat Enterprise Linux 6 y 7. Consulte la tabla a continuación para obtener los enlaces a las recomendaciones de seguridad respectivas que corrigen este problema:
Producto | Recomendación |
---|---|
Red Hat Enterprise Linux 6 | RHSA-2015:1482 |
Red Hat Enterprise Linux 7 | RHSA-2015:1483 |
Este problema también afecta Red Hat Enterprise Linux 5, el cual ahora está en la fase de Producción 3 del ciclo de vida de soporte y mantenimiento. Por lo tanto, no se ha considerado abordar este problema en futuras actualizaciones. Para obtener información adicional, consulte Red Hat Enterprise Linux Life Cycle.
Host atómico & Contenedores
Todas las imágenes oficiales de contenedor de Red Hat incluyen una versión de la biblioteca libuser
. Los usuarios interesados pueden usar esta funcionalidad Yum de contenedores incorporados para actualizar las versiones corregidas (Consulte 'Resolución' abajo). Esto resuelve la vulnerabilidad. Pronto se publicarán las compilaciones de estos contenedores que reflejan estas actualizaciones.
Atomic Host incluye una versión vulnerable de la biblioteca 'libuser'. Es posible actualizar cualquier contenedor albergado por Atomic a las versiones corregidas de estos paquetes mediante su funcionalidad Yum incorporada. No es posible explotar el host Atomic desde un contenedor. La siguiente actualización acumulativa incluirá correcciones para Atomic Host.
Imágenes de nube y dispositivos
Todas las imágenes oficiales y dispositivos de nube de Red Hat incluyen una versión de la biblioteca libuser
. Los usuarios interesados pueden usar esta funcionalidad Yum de contenedores incorporados para actualizar las versiones corregidas (Consulte 'Resolución' abajo). Esto resuelve la vulnerabilidad. Pronto se publicarán las compilaciones de estos contenedores que reflejan estas actualizaciones.
Amazon Web Services
Red Hat Enterprise Linux Amazon Machine Instances incluye una versión de vulnerabilidad de la biblioteca libuser
. Es posible actualizar cualquier sistema a versiones corregidas de estos paquetes mediante su funcionalidad yum incorporada (vea 'Resolution' abajo).
Imágenes RHEV-H
Las imágenes de dispositivos Red Hat Enterprise Virtualization Hypervisor incluyen una versión vulnerable de la biblioteca libuser
. Estas imágenes solo deberían utilizarse para albergar máquinas virtuales y no deberían tener usuarios locales no confiables.
No es posible atacar los hosts RHEV-H por desde el interior de una máquina virtual al explotar estos problemas. Una actualización futura de la imagen de RHEV-H corregirá esta vulnerabilidad.
Resolución
Para eliminar la posibilidad de una vulnerabilidad, instale los paquetes actualizados de libuser
que están disponibles a través de las recomendaciones que aparecen en la tabla de arriba.
Para instalar las actualizaciones, use el gestor de paquetes Yum así:
yum update
Para actualizar únicamente el paquete libuser
y sus dependencias, use: :
yum update libuser
Mitigación
Debido a la forma como funciona 'libuser', solo los usuarios que ya tienen cuentas listadas en /etc/passwd
, pueden aprovechar estas vulnerabilidades y las necesidades de los usuarios para suplir la contraseña de cuentas como parte del ataque. Estos requerimientos significan que no es posible la explotación por cuentas listadas unicamente en LDAP (o alguna otra fuente de NSS) o por cuentas de sistemas sin una contraseña válida.
En los sistemas en que la actualización de libuser
no sea posible, los administradores de sistemas pueden agregar reglas pam_warn
y pam_deny
a los dos archivos, /etc/pam.d/chfn
y /etc/pam.d/chsh
, a fin de evitar que los usuarios que no sean root, usen los servicios vulnerables. Con estas modificaciones, los archivos deberán contener:
#%PAM-1.0
auth sufficient pam_rootok.so
auth required pam_warn.so
auth required pam_deny.so
auth include system-auth
account include system-auth
password include system-auth
session include system-auth
Posteriormente, cuando los usuarios sin privilegios intenten usar chfn
y chsh
(y la funcionalidad respectiva en el programa userhelper
) fallará y será registrado (en /var/log/secure
, predeterminado).
Comments