psqlODBC 18.00.0005 ya está disponible con una corrección de seguridad para CVE-2026-109448
El equipo de psqlODBC ha lanzado la versión 18.00.0005 del controlador ODBC oficial de PostgreSQL. Esta actualización soluciona una vulnerabilidad de seguridad y corrige dos errores. Se recomienda a todos los usuarios actualizar a esta versión.
Problema de seguridad
CVE-2026-109448: corrupción de memoria en el heap al enlazar más de 32767 parámetros
Puntuación base de CVSS 3.1: 5,9 (Media)
Versiones afectadas: de la 08.01.0102 a la 18.00.0004.
psqlODBC almacenaba en un campo con signo de 16 bits la cantidad de parámetros enlazados a una sentencia. Si una aplicación enlazaba más de 32768 parámetros en una misma sentencia, el controlador escribía ceros fuera de la región de memoria reservada para almacenar los enlaces de esos parámetros. Como consecuencia, la aplicación podría sufrir una caída o seguir funcionando con la memoria corrompida. La vulnerabilidad afecta a las aplicaciones que permiten que datos no confiables determinen el número de parámetros que se van a enlazar. Esto puede ocurrir, por ejemplo, al generar una lista IN (?, ?, ...) a partir de valores proporcionados por el usuario.
SQLBindParameter ahora rechaza los números de parámetro superiores a 32767 y devuelve el código SQLSTATE 07009. ODBC no admite más de 32767 parámetros, porque SQLNumParams y SQL_DESC_COUNT utilizan valores de 16 bits. Las versiones anteriores tampoco podían ejecutar sentencias con más de 32767 parámetros, por lo que este cambio no afecta a las aplicaciones que ya funcionaban correctamente..
Si no es posible actualizar de inmediato, se recomienda limitar el número de parámetros que la aplicación construye a partir de entradas externas o transmitir listas extensas de valores como un único parámetro de tipo array; por ejemplo, mediante la expresión = ANY(?).
El equipo de psqlODBC agradece a Richard Kuesters por reportar este problema.
Para consultar información adicional, véase el aviso de seguridad GHSA-cmfx-rm3r-p2jr.
Corrección de errores
- Las sentencias preparadas en el servidor que contenían 1000 parámetros o más podían fallar con errores como
type "timestam" does not exist. El problema se debía a que, a partir del parámetro 1000, el controlador truncaba el nombre del tipo asociado a cada parámetro para adaptarlo a un búfer de tamaño fijo. - A partir de la versión 18.00.0003, los parámetros
byteaprovocaban el error «Type is invalid» al utilizarse mediante el proveedor OLE DB para ODBC de Microsoft (MSDASQL), por ejemplo, desde aplicaciones que emplean ADO.
Los paquetes de Windows se compilan ahora con OpenSSL 3.5.9.
Descarga
Los instaladores para Windows y los módulos de combinación correspondientes a las arquitecturas x86, x64 y ARM64 pueden descargarse desde el sitio de descargas de PostgreSQL o desde la página de lanzamientos en GitHub. El código fuente del proyecto está disponible en GitHub.
La lista completa de los cambios incluidos está disponible en las notas de la versión.
Si encuentran algún error, pueden reportarlo a través del sistema de seguimiento de incidencias de psqlODBC o comunicarlo a través de la lista de correo pgsql-odbc.

