Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en Npgsql (CVE-2024-32655)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-89 Neutralización incorrecta de elementos especiales usados en un comando SQL (Inyección SQL)
Fecha de publicación:
14/05/2024
Última modificación:
12/12/2024

Descripción

Npgsql es el proveedor de datos .NET para PostgreSQL. El método `WriteBind()` en `src/Npgsql/Internal/NpgsqlConnector.FrontendMessages.cs` usa variables `int` para almacenar la longitud del mensaje y la suma de las longitudes de los parámetros. Ambas variables se desbordan cuando la suma de las longitudes de los parámetros se vuelve demasiado grande. Esto hace que Npgsql escriba un tamaño de mensaje demasiado pequeño al construir un mensaje de protocolo Postgres para enviarlo a través de la red a la base de datos. Al analizar el mensaje, la base de datos solo leerá una pequeña cantidad de bytes y tratará los bytes siguientes como mensajes nuevos mientras pertenezcan al mensaje anterior. Los atacantes pueden abusar de esto para inyectar mensajes arbitrarios del protocolo Postgres en la conexión, lo que lleva a la ejecución de sentencias SQL arbitrarias en nombre de la aplicación. Esta vulnerabilidad se solucionó en 4.0.14, 4.1.13, 5.0.18, 6.0.11, 7.0.7 y 8.0.3.

Referencias a soluciones, herramientas e información