
Investigadores en ciberseguridad han revelado un fallo de seguridad de alta gravedad en el sistema de base de datos de código abierto PostgreSQL que podría permitir a usuarios sin privilegios alterar variables de entorno y conducir potencialmente a la ejecución de código o a la revelación de información.
La vulnerabilidad, registrada como CVE-2024-10979, tiene una puntuación CVSS de 8,8.
Las variables de entorno son valores definidos por el usuario que pueden permitir a un programa obtener dinámicamente diversos tipos de información, como claves de acceso y rutas de instalación de software, durante el tiempo de ejecución sin tener que codificarlas. En algunos sistemas operativos, se inicializan durante la fase de arranque.
"Un control incorrecto de las variables de entorno en PostgreSQL PL/Perl permite a un usuario de base de datos sin privilegios cambiar variables de entorno de procesos sensibles (por ejemplo, PATH)", dijo PostgreSQL en un aviso publicado el jueves.
"Eso a menudo basta para permitir la ejecución de código arbitrario, incluso si el atacante carece de un usuario del sistema operativo del servidor de base de datos".
El fallo se ha corregido en las versiones 17.1, 16.5, 15.9, 14.14, 13.17 y 12.21 de PostgreSQL. Los investigadores de Varonis, Tal Peleg y Coby Abrams, que descubrieron el problema, señalaron que podría dar lugar a "graves problemas de seguridad" en función del escenario de ataque.
Esto incluye, entre otros, la ejecución de código arbitrario mediante la modificación de variables de entorno como PATH, o la extracción de información valiosa sobre la máquina mediante la ejecución de consultas maliciosas.
Actualmente se están ocultando detalles adicionales de la vulnerabilidad para dar a los usuarios tiempo suficiente para aplicar las correcciones. También se aconseja a los usuarios que restrinjan las extensiones permitidas.
"Por ejemplo, limitando la concesión de permisos CREATE EXTENSIONS a extensiones específicas y estableciendo adicionalmente el parámetro de configuración shared_preload_libraries para cargar sólo las extensiones necesarias, limitando los roles de creación de funciones por el principio de mínimos privilegios mediante la restricción del permiso CREATE FUNCTION", dijo Varonis.
Fuente: thehackernews