Se han generado actualizaciones correctivas para todas las ramas soportadas de PostgreSQL 16.4, 15.8, 14.13, 13.16, 12.20, en las que se han corregido 56 errores detectados en los últimos tres meses. Entre otras cosas, las nuevas versiones han solucionado una vulnerabilidad (CVE-2024-7348) calificada como peligrosa (nivel de riesgo 8.8 de 10). La vulnerabilidad es causada por un estado de carrera en la utilidad pg_dump, que permite a un atacante, que tiene la capacidad de crear y eliminar objetos permanentes en la base de datos, lograr la ejecución arbitraria de código SQL con los privilegios del usuario bajo el cual se ejecuta la utilidad pg_dump (normalmente, pg_dump se ejecuta con privilegios de superusuario para respaldar la base de datos).
Para llevar a cabo un ataque exitoso, es necesario rastrear el momento en que se inicia la utilidad pg_dump, lo que se puede realizar fácilmente manipulando una transacción abierta. El ataque consiste en reemplazar la secuencia (sequence) por una vista o tabla externa que define el código SQL a ejecutarse en el momento de la ejecución de pg_dump, cuando la información sobre la existencia de la secuencia ya ha sido obtenida, pero los datos aún no se han presentado. Para bloquear la vulnerabilidad, se ha agregado la configuración 'restrict_nonsystem_relation_kind', que prohíbe la divulgación de vistas no sistemáticas y el acceso a tablas externas en pg_dump.
Fuente: opennet.ru
