miércoles, 22 de agosto de 2012

PostgreSQL "soluciona" grave vulnerabilidad remota a través de XML/XSLT

El motor de bases de datos PostgreSQL ha "corregido" recientemente dos vulnerabilidades en los procesadores de documentos XML/XSLT, que permitirían a un atacante remoto autenticado en la base de datos tener acceso a ficheros del sistema y alterarlos. Finalmente ha decidido desactivar estas funciones en el parche, puesto que no ha dado con una solución mejor.
 
La vulnerabilidad se encontraría en un fallo en las políticas de seguridad de las librerías libxslt y libxml2 que permitirían la importación de manera insegura de DTDs (Definición de Tipo de Documento) externos.

En el caso de libxslt, el fallo está en la función xmlparse(). Un atacante podría llegar a leer ficheros a los que el usuario local "postgres" tenga acceso (CVE-2012-3488). Entre estos ficheros está pg_hba.conf (configuración de acceso de usuario) o .pgpass (clave de usuario), lo que la hacen especialmente grave.

En el caso de libxml2, la función xslt_process() permitiría la subida de ficheros al propio servidor (CVE-2012-3489). Este módulo es opcional. Los usuarios pueden usar XML2 en vez del XML "incrustado" porque soporta XSLT.

Debido a la gravedad de estos fallos, en el parche se ha bloqueado la importación externa de DTDs de manera global, funcionalidad que al quedar desactivada en PostgreSQL podría afectar a diversas aplicaciones. La función xslt_process() para importar documentos o esquemas externos también ha quedado desactivada como medida de seguridad y no volverá a activarse, igualmente ocurre con xmlparse(), hasta que se consiga un método más seguro de ejecución.

Esta vulnerabilidad es similar a las sufridas por LibreOffice (ataque XXE a través de RDF/XML - (CVE-2012-0037), Webkit (CVE-2011-1774), XMLsec (CVE-2011-1425) y PHP5 (CVE-2012-0057).

De hecho, aclaran que si finalmente han tardado tanto en solucionar esto fallo, es porque han intentado hacerlo sin desactivar la funcionalidad... pero no ha sido posible.

Se recomienda urgentemente actualizar las versiones afectadas por las actualizaciones oficiales disponibles (9.1.5, 9.0.9, 8.4.13 y 8.3.20) a través de: http://www.postgresql.org/download/
 
 

No hay comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.