Blog

Noticias

pg_ivm 1.5.1 – Actualización de seguridad

El Grupo de Desarrollo de IVM ha publicado pg_ivm 1.5.1 para solucionar los problemas de seguridad CVE-2023-22847 y CVE-2023-23554.

Problemas de seguridad
  • Exposición de información sensible a usuarios no autorizados (CWE-200) – CVE-2023-22847 Una Vista Materializada Actualizable de forma Incremental (IMMV) creada por pg_ivm podría mostrar registros con Seguridad a Nivel de Registro a los que el propietario de la IMMV no debería tener acceso.
  • Elemento de ruta de búsqueda no controlada (CWE-427) – CVE-2023-23554 Al actualizar una IMMV, pg ivm ejecuta funciones sin especificar nombres de esquemas. Bajo ciertas condiciones, es posible engañar a pg_ivm para que ejecute funciones no previstas de otros esquemas utilizando los privilegios del propietario de la IMMV.
Corrección de errores
  • Corrección de las comprobaciones de seguridad a nivel de registro durante el mantenimiento de las vistas (Yugo Nagata) (CVE-2023-22847)
    El mantenimiento de la vista se realiza bajo el privilegio del propietario de la vista. Si una tabla modificada utiliza una política RLS (seguridad a nivel de registros), el acceso a los registros de esa tabla debe efectuarse con el privilegio del propietario de la IMMV durante el mantenimiento de la vista, por lo que los registros invisibles al propietario de la vista no deben aparecer en la IMMV. Sin embargo, la comprobación de seguridad no se manejaba de forma correcta, y registros que no debían ser accesibles al propietario de la vista podían aparecer en el contenido de la vista cuando esta se actualizaba de forma incremental durante una consulta que contuviera varios tipos de comandos, como un CTE de modificación que incluyera INSERT y UPDATE, o un comando MERGE.
  • Corrección relativa al uso de nombres de función cualificados durante el mantenimiento (Yugo Nagata) (CVE-2023-23554)
    Los nombres de las funciones del esquema pg_catalog que se utilizaban anteriormente durante el mantenimiento de las vistas no estaban cualificados. Esto suponía un problema, ya que se podía hacer referencia involuntariamente a funciones de otros esquemas. Además, podía provocar una escalada de privilegios. De hecho, si un usuario malintencionado lograba crear una función, era posible ejecutar funciones arbitrarias bajo el privilegio del propietario de IMMV.
  • Reconstrucción de la consulta para recalcular mín/máx tras un cambio en search_path (Yugo Nagata) (CVE-2023-23554)
    Los planes almacenados en caché para recalcular los valores mín./máx. se construyen a partir del texto de la consulta de definición de la vista. Por lo tanto, cuando se modificaba el search_path, el texto de la consulta volvía a ser analizado, y podía ocurrir que en el plan se hiciera referencia a tablas o funciones de un esquema erróneo. Este problema se ha solucionado de tal manera que, una vez modificado el search_path, se reelabore un plan a partir de una nueva secuencia de consulta en la que se utilicen los nombres de las tablas o funciones debidamente cualificados según el último search_path.

Changelog completo: https://github.com/sraoss/pg_ivm/compare/v1.5…v1.5.1

Información sobre pg_ivm

pg_ivm es un módulo de extensión que proporciona funciones para el Mantenimiento de Vistas Incrementales (IVM).

El Mantenimiento de Vistas Incrementales (IVM) es un método para actualizar las vistas materializadas en el que sólo se calculan y aplican cambios incrementales en las vistas en lugar de reprocesarlas. pg_ivm proporciona un tipo de mantenimiento inmediato, en el que las vistas materializadas se actualizan inmediatamente tras la modificación de una tabla base.

Repositorio fuente: https://github.com/sraoss/pg_ivm

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.