Detectada una vulnerabilidad en las versiones de CVS (Concurrent
Versions Systems) anteriores a la 1.11.4 que puede ser utilizada por un
atacante remoto para ejecutar código arbitrario en el servidor
vulnerable, con privilegios de ‘root’.
CVS es un software que actúa como repositorio y sistema de control de
versiones. Centraliza todos los archivos que forman parte de un conjunto
y mantiene un histórico de los cambios efectuados en cada archivo,
quedando constancia de cuando y quien ha realizado el cambio. Cuando el
servidor CVS está accesible a través de Internet, su utilización
facilita el control de cambios dentro de un proyecto con participantes
dispersos geográficamente.
Aunque el uso más frecuente de CVS es el de almacén de código fuente, su
utilización es igualmente interesante en cualquier otro entorno donde
exista un conjunto de archivos sobre los que se realicen cambios,
especialmente cuando éstos son realizados por varias personas. Así, CVS
es realmente útil para almacenar los archivos de configuración de los
servidores Unix, por citar únicamente un ejemplo.
Durante la realización de una auditoría de seguridad en el código fuente
de CVS, se ha descubierto una vulnerabilidad de seguridad en la función
que gestiona la petición de un directorio.
Si se envía un nombre de directorio mal formado al servidor CVS, es
posible provocar una condición de error que provocará la finalización de
dicha función. Esta finalización se realizará después de que una
variable puntero de ámbito global haya sido inicializada, pero a la que
todavía no se ha asignado ningún valor.
En el momento en que se realice una nueva petición de directorio, se
producirá nuevamente la inicialización de ese puntero, lo que puede
provocar la corrupción de la pila. Realizando otras peticiones
adicionales al servidor CVS es posible forzar la ejecución de código
arbitrario en aquellos sistemas operativos vulnerables a este tipo de
problemas. Esto incluye Linux, *BSD, Solaris y, probablemente, Windows.
El impacto de esta vulnerabilidad depende en gran medida de la
configuración del servidor CVS. Si el servidor se ejecuta directamente
mediante inetd, el atacante podrá ejecutar código arbitrario en el
servidor con privilegios de root. Si por el contrario, el servidor CVS
se ejecuta en una celda ‘chroot’, el ataque sólo tendrá efecto dentro de
la celda. No obstante, en ambos casos, el atacante dispondrá de un
completo acceso sobre los archivos almacenados en CVS.
Por tanto, es importante instalar a la mayor brevedad posible la versión
1.11.5 de CVS que elimina esta vulnerabilidad.
Por otra parte, es bueno recordar que CVS dispone de dos órdenes
(Update-prog y Checkin-prog) que pueden ser utilizadas por cualquier
usuario de CVS con acceso de escritura para ejecutar órdenes del shell
directamente en el servidor. Se trata de dos opciones poco documentadas
y que no pueden ser desactivadas a través de los archivos de
configuración.
Para poder desactivar estas dos opciones, muy peligrosas desde el punto
de vista de la seguridad, se puede aplicar un parche del código fuente.
Este parche es válido para las versiones 1.11.4 y 1.11.5 y se encuentra
disponible en:
http://security.e-matters.de/patches/cvs_disablexprog.diff
xavi@hispasec.com
Más información:
Concurrent Versions System
http://www.cvshome.org/
Concurrent Versions System – Project Download List
http://ccvs.cvshome.org/servlets/ProjectDownloadList
Aviso 01/2003 – CVS Remote Vulnerability
http://security.e-matters.de/advisories/012003.html
Aviso del CERT (CA-2003-02)
Double-Free Bug in CVS Server
http://www.cert.org/advisories/CA-2003-02.html
Vulnerability Note VU#650937
Concurrent Versions System (CVS) server improperly deallocates memory
http://www.kb.cert.org/vuls/id/650937
Double-free vulnerability in CVS 1.11.4 and earlier
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2003-0015
CVS execution of arbitrary code
http://www.secunia.com/advisories/7909/
Remote Root Exploit in CVS
http://developers.slashdot.org/developers/03/01/21/1752251.shtml?tid=128
CVS Remote Vulnerability
http://www.securiteam.com/unixfocus/5VP0P0A8UQ.html
Dangerous CVS hole identified
http://news.zdnet.co.uk/story/0,,t269-s2129188,00.html
Chrooted SSH CVS server HOW-TO
http://www.netsys.com/library/papers/chrooted-ssh-cvs-server.txt
Bug de Doble Liberación en el Servidor CVS
http://www.unam-cert.unam.mx/Boletines/Boletines2003/boletin-UNAM-CERT-2003-002.html
Deja una respuesta