Podría provocar "graves problemas de seguridad" según el escenario del ataque
Investigadores de ciberseguridad han revelado una falla 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 potencialmente conducir a la ejecución de código o la divulgación de información.
La vulnerabilidad, identificada como CVE-2024-10979, tiene una puntuación CVSS de 8,8.
Las variables de entorno son valores definidos por el usuario que permiten que un programa obtenga 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 ciertos sistemas operativos, se inicializan durante la fase de inicio.
"El control incorrecto de las variables de entorno en PostgreSQL PL/Perl permite que un usuario de base de datos sin privilegios cambie variables de entorno de proceso sensibles (por ejemplo, PATH)", dijo PostgreSQL en un aviso publicado el jueves.
"Esto a menudo es suficiente para permitir la ejecución de código arbitrario, incluso si el atacante no tiene un usuario del sistema operativo del servidor de base de datos".
La falla ha sido corregida 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, dijeron que podría provocar "graves problemas de seguridad" según el escenario del ataque.
Esto incluye, pero no se limita a, 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 en la máquina mediante la ejecución de consultas maliciosas.
Por el momento, se están reteniendo detalles adicionales sobre la vulnerabilidad para darles a los usuarios tiempo suficiente para aplicar las correcciones. También se recomienda a los usuarios que restrinjan las extensiones permitidas.
"Por ejemplo, limitar las concesiones de permisos CREATE EXTENSIONS a extensiones específicas y, además, configurar el parámetro de configuración shared_preload_libraries para cargar solo las extensiones requeridas, limitando los roles para crear funciones según el principio de privilegios mínimos al restringir el permiso CREATE FUNCTION", dijo Varonis.