Bautizada PostGREShell, la falla convierte una credencial de replicación de bajo privilegio en ejecución de código, privilegios de superusuario permanentes y una puerta trasera persistente, y afecta a todas las versiones desde 2014. (Fuente: SecurityWeek)
Las versiones de PostgreSQL lanzadas desde 2014 contienen una vulnerabilidad severa que permite a un atacante con privilegios bajos tomar control de bases de datos y servidores, según reportó la firma de ciberseguridad Cyera. PostgreSQL es un sistema de base de datos relacional de código abierto con soporte tanto para consultas relacionales (SQL) como no relacionales (JSON), y es una de las bases de datos más populares, usada por decenas de miles de empresas, incluidas grandes corporaciones.
Identificada como CVE-2026-6471 (puntaje CVSS de 7,2) y bautizada PostGREShell, la falla recién identificada puede explotarse para ejecución remota de código y escalamiento de privilegios. Se describe como una falta de autorización en la decodificación lógica de la base de datos, y puede explotarse por atacantes con privilegios de Replicación para cargar cualquier archivo visible para la cuenta del sistema operativo que corre el servidor, a través del plugin de decodificación lógica.
Según explicó Cyera, PostgreSQL usa un protocolo de replicación dedicado para sincronizar varias réplicas de cualquier base de datos primaria, con fines de respaldo y recuperación. Para eso se requiere una cuenta con el atributo de Replicación, que se le otorga a cualquier herramienta de backup, servidor, pipeline o utilidad de monitoreo conectada. Los cambios se registran mediante replicación local como eventos de tabla, para que herramientas externas puedan leerlos creando un slot de replicación lógica y nombrando un plugin de salida que PostgreSQL carga para formatear el flujo.
Cuando se carga un plugin, PostgreSQL ejecuta su función de inicialización con los privilegios del proceso del servidor. Para evitar el abuso, los usuarios que no son superusuarios solo pueden cargar plugins desde un directorio controlado por un administrador. Cyera descubrió que el nombre del plugin se pasa directamente al cargador, sin validación ni depuración, lo que le permite a un atacante entregarle al cargador una ruta completa del sistema de archivos, que termina siendo procesada por una función usada para cargar bibliotecas compartidas de forma dinámica.
Según Cyera, el analizador del protocolo de replicación acepta casi cualquier carácter dentro de un nombre de plugin entre comillas dobles, incluyendo barras, barras invertidas, puntos y recorridos de directorio. Esto le permite a un atacante cargar y ejecutar cualquier archivo, que se ejecuta con los privilegios del usuario del sistema postgres. El código cargado corre en el mismo espacio de direcciones que PostgreSQL, sin sandbox ni controles sobre las llamadas internas a la API, ya que el servidor confía en cualquier código que haya sido cargado.
De esa forma, el plugin puede llamar a una función interna para convertirse en el superusuario de arranque de la sesión, y después escribir directamente en la tabla del catálogo que define quién es superusuario, activando todos los indicadores de privilegio. En ese punto, el atacante obtuvo privilegios de superusuario permanentes: puede acceder a cada tabla de cada base de datos, ejecutar comandos del sistema operativo, leer claves privadas y escribir archivos en cualquier ubicación a la que el proceso postgres tenga acceso.
Según Cyera, el plugin también puede desplegar mecanismos de puerta trasera: puede habilitar conexiones sin contraseña, copiarse a sí mismo a una ubicación estable y registrarse para volver a cargarse en cada nuevo proceso backend, y puede volver a aplicar el cambio de superusuario incluso si se revierte. La firma señaló que esta falla convierte una credencial de la que nadie se preocupa en ejecución de código, superusuario y una puerta trasera persistente en la base de datos detrás de buena parte de internet, y que cada versión desde la 9.4 hasta la 18 está afectada, con la replicación lógica siendo ya infraestructura estándar de producción, por lo que la ruta vulnerable existe prácticamente en todos lados donde corre PostgreSQL.
CVE-2026-6471 ya fue parcheada en las versiones 18.6, 17.11, 16.15, 15.19 y 14.24 de PostgreSQL. Se recomienda a las organizaciones actualizar sus instancias lo antes posible, auditar sus cuentas de Replicación, y quitar ese atributo de cualquier cuenta que no lo necesite.
Nota elaborada con asistencia de IA. Fuentes verificadas y contenido editado por el equipo de Infosertec. Conocé nuestro proceso editorial.

