Vulnerabilidades en ADOdb para PostgreSQL

SeguridadVirus

ADOdb es un componente muy popular para proporcionar conectividad a bases de datos mediante lenguajes PHP y Python.

Se ha descubierto un problema en el conector ADOdb para bases de datos de tipo PostgreSQL, que podría implicar un riesgo moderadamente crítico en sistemas que contengan el componente afectado.

ADOdb es un componente muy popular para proporcionar conectividad a bases de datos mediante lenguajes PHP y Python. Entre los muchos formatos de base de datos con drivers ADObd están MySQL, Interbase, Oracle, MS SQL, DB2, SAP DB, LDAP, bases genéricas ODBC y ODBTP, y la base de datos sujeta a la vulnerabilidad que documentamos, PostgreSQL.

Afortunadamente, la vulnerabilidad sólo se ha diagnosticado en los entornos PostgreSQL con conectividad vía ADOdb, no constando noticia alguna de que otras versiones para otros tipos de base de datos estén afectadas. Este factor, sin duda, mitiga gran parte del riesgo. ADOdb Database Abstraction Library for PHP (and Python) está especialmente pensada para obtener consultas ágiles, ya que en opinión de muchos usuarios, se trata de la librería de abstracción más rápida existente en la actualidad para PHP. ADOdb es código abierto, y tiene un mantenimiento muy exhaustivo, además de una amplia comunidad de usuarios que ofrece soporte continuo e innovación a sus funcionalidades.

Los problemas detectados por Andy Staudacher podrían facilitar la inyección de código SQL en los sistemas afectados, con el consiguiente riesgo de manipulación remota de datos. Se han corregido algunos fallos en las conexiones DSN, especialmente cuando se emplean nombres con guiones bajos, guiones bajos que además provocaban ciertos problemas en la versión 5 de PHP, los cuales se han corregido aprovechando el lanzamiento de la versión no vulnerable. Se consideran afectadas todas las versiones anteriores 4.x anteriores a 4.71

Otros problemas menores son la correcta implementación del flag de hora y fecha, presente en la matriz ADORecordset_array, correcciones de compatibilidad en la función GetInsertSQL(), y correcciones en la función qstr() y adodb_getdriver(). Además de los problemas corregidos, se ha introducido soporte para las conexiones tipo PDO DSN en la función NewADOConnection(), así como un nuevo parámetro de base de datos en la función PDO::Connect().

La nueva versión añade compatibilidad para PHP 5 también en el registro de cierre session_write_close del fichero adodb-session.inc.php, fichero que sin duda conocerán los administradores de sistemas de gestión de contenido como Postnuke, cuando se opta por su empleo con ADOdb y PostgreSQL. La solución al problema pasa por la actualización a la versión 4.71