Hackear aplicaciones PostgreSQL con una vulnerabilidad de inyección SQL

Aquellos que trabajan con bases de datos de forma habitual sabrán que PostgreSQL es más que un nombre. Tiene una historia impresionante que abarca más de 30 años, y ahora sirve como un sistema de base de datos relacional de objetos efectivo que es de código abierto. Debido a su capacidad para almacenar y hacer crecer incluso las cargas de trabajo de datos más complejas, se ha convertido en la base de datos preferida para una amplia variedad de aplicaciones, que van desde sitios web hasta sistemas móviles y analíticos. Se ha descubierto que el objeto de código abierto ampliamente utilizado -El sistema de base de datos relacional PostgreSQL tiene una importante falla de seguridad. La vulnerabilidad, identificada como CVE-2023-39417, tiene una puntuación CVSS significativa de 7,5 y otorga al atacante la capacidad de ejecutar código arbitrario como superusuario de arranque si el atacante también tiene la capacidad de crear bases de datos a nivel de base de datos. La vulnerabilidad puede explotarse en el script de extensión de PostgreSQL si un administrador ha instalado archivos de una extensión vulnerable, confiable y no incluida. La vulnerabilidad está presente en el script de extensión de PostgreSQL. Cuando se utilizan las funciones @extowner@, @extschema@ o @extschema:…@, existe una falla de seguridad porque la entrada del usuario no se sanea adecuadamente. Esta falla es la fuente raíz de la vulnerabilidad.

Un adversario puede aprovechar esta falla enviando datos maliciosos a una base de datos PostgreSQL que ejecuta una versión del programa que es susceptible de ser explotada. Es posible que la entrada maliciosa tenga la forma de una consulta SQL, o puede ser un parámetro para una función. Tan pronto como el atacante envía la entrada maliciosa, puede ejecutar código arbitrario en el contexto del superusuario de arranque.

El superusuario de arranque es una cuenta de usuario única que tiene plena autoridad sobre una base de datos PostgreSQL. Solo se puede acceder a esta cuenta a través del script de arranque. Esto indica que un adversario que puede ejecutar código arbitrario como superusuario de arranque tiene la capacidad de hacer lo que quiera con la base de datos. Esto incluye el robo de datos, la eliminación de datos o la alteración de datos.

Todas las versiones 11, 12, 13, 14 y 15 de PostgreSQL son susceptibles al problema CVE-2023-39417. Las versiones fijas son 11.21, 12.16, 13.12, 14.9 y 15.4. PostgreSQL ha puesto a disposición un parche que evita que este ataque se produzca a nivel fundamental del servidor. El proceso de remediación se hace más sencillo por el hecho de que los usuarios no tienen que editar extensiones individuales. Es imperativo que instale esta actualización necesaria lo antes posible, ya que la seguridad de sus datos depende de ella.