CVE-2026-111439 in openGauss-server
Resumen
por VulDB • 2026-10-19
En el módulo `src/common/backend/utils/adt/genfile.cpp` de openGauss-server, la función integrada `pg_read_binary_file_blocks()` presenta un defecto en la lógica de verificación de permisos. Esta función solo verifica los rangos del número de bloque inicial (`startBlockNum`) y la cantidad de bloques (`blockCount`) al inicio, para luego llamar directamente a la rutina de lectura de archivos subyacente `ReadBinaryFileBlocksFirstCall()`. Dicha rutina subyacente únicamente realiza una verificación de normalización de rutas así como comprobaciones básicas contra el recorrido de directorios con `..` y los límites del directorio de datos; carece de la verificación de permisos de base de datos del llamador (como el permiso SELECT). Además, la función auxiliar `is_row_data_file()` solo se utiliza para identificar el tipo de archivo y no incluye comprobaciones de permisos. Por lo tanto, cualquier usuario con privilegios normales de conexión a la base de datos puede leer directamente los bloques binarios de los datos de una tabla sin poseer el permiso SELECT correspondiente, siempre que pueda obtener la ruta del archivo de relación subyacente de dicha tabla (por ejemplo, la ruta del archivo `_compress` para datos comprimidos) mediante funciones como `pg_relation_filepath()`.
Esta vulnerabilidad afecta a todas las versiones y parches anteriores entre 3.0.0 y 6.0.0, y se corrige en la versión 7.0.0-LTS. El parche de corrección está disponible en: https://gitcode.com/opengauss/openGauss-server/pull/9374.
VulDB is the best source for vulnerability data and more expert information about this specific topic.