Inicio › Ciberseguridad

Ciberseguridad

PostgreSQL tapa 52 agujeros de golpe: un fallo de 22 años permitía ejecutar código en el servidor

No es un parche más: es la tanda de seguridad más grande del proyecto en una sola entrega, con ejecución de código en el servidor, en las herramientas de copia y hasta un fallo que no necesita ni iniciar sesión.

Redacción AlexTechNews13 de noviembre de 20262 min de lectura💬 Comentar
Captura de la demostración pública del exploit de Mehmet Ince contra PostgreSQL 18.6: la terminal muestra la ejecución controlada que logra correr comandos como el usuario postgres del servidor, con las fases de preparación del estado, salto de ASLR y alteración de tipos
La demostración del exploit de CVE-2026-6460 contra PostgreSQL 18.6, ejecutando comandos como el usuario del servidor. Imagen: Mehmet Ince, vía The Hacker News.

La base de datos abierta más usada del mundo acaba de tener su día de limpieza más grande. El PostgreSQL Global Development Group ha publicado actualizaciones para todas sus versiones soportadas —18.7, 17.12, 16.16, 15.20 y 14.25, más la segunda candidata de PostgreSQL 19— que cierran 52 vulnerabilidades y corrigen más de 140 errores. De esos fallos, 32 puntúan 8,8 sobre 10, la nota más alta de la tanda, y la mayoría permite ejecutar código en el servidor.

El protagonista es CVE-2026-6460, una confusión de tipos con raíz en 2004, cuando PostgreSQL aprendió a cambiar el tipo de una columna. El truco de Mehmet Ince: preparar una consulta que guarda un valor de un tipo compuesto, cambiar después el tipo de uno de sus campos y ejecutar la consulta; el servidor sigue leyendo los bytes viejos como si fueran del tipo nuevo. Ince demostró un exploit funcional contra PostgreSQL 18.6, disparable con el rol con menos privilegios, y el código se ejecuta con los permisos del usuario del sistema que corre la base de datos.

El resto del lote no se queda en el servidor. Hay errores de memoria y confusiones de tipos en PL/Perl, PL/Tcl, la búsqueda de texto, la consulta paralela y la replicación lógica, y las herramientas de cliente también caen: un archivo manipulado puede hacer que pg_restore ejecute código en la máquina que restaura, y pg_dump tenía una inyección SQL vía nombres de restricciones. Solo un fallo no necesita ni sesión: CVE-2026-116322 permite a un cliente sin autenticar forzar el reinicio de servidores PostgreSQL 18. Eso sí, ni el proyecto ni CISA tienen constancia de explotación activa.

Parchear lleva tarea extra, y el proyecto lo avisa. La protección completa frente a CVE-2026-6460 exige reconstruir las extensiones en C: las compiladas contra versiones anteriores se siguen cargando, pero pueden no quedar protegidas. También hay que actualizar las herramientas de cliente en cada máquina, reindexar los índices GIN, pg_trgm GiST y B-tree sobre bpchar sospechosos y, si se usan copias incrementales, hacer una copia completa nueva.

Y hay una despedida: PostgreSQL 14 muere hoy. Su 14.25 es la última versión de esa rama, sin más parches: quien siga en ella necesita plan de migración, no solo de parcheo. PostgreSQL está en casi todas partes, de la base propia a la de media docena de servicios en la nube: esta es de esas actualizaciones que no esperan al lunes.

Comentarios

Sé el primero en comentar.

Los comentarios aparecen tras una breve revisión. Sin cuentas y sin rastreadores.

Sigue leyendo