Aviso de seguridad
Nivel de peligrosidad: Crítico
Descripción
La vulnerabilidad, catalogada con un puntaje CVSS v3.1 de 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N), permite que un atacante remoto explote sin privilegios ni interacción del usuario para inyectar código SQL malicioso mediante el argumento _connector que no es debidamente validado.
Recursos afectados
Las versiones del framework Django mencionadas (4.2 < 4.2.26, 5.1 < 5.1.14, 5.2 < 5.2.8) y potencialmente versiones anteriores no evaluadas (como 5.0.x, 4.1.x, 3.2.x) podrían estar expuestas. Afecta cualquier aplicación que use los métodos filter(), exclude(), get() o la clase Q() con el parámetro _connector.
Solución
Actualizar a las versiones parcheadas del framework: Django 4.2.26, Django 5.1.14 o Django 5.2.8 (o versiones superiores estables). Estas versiones contienen el parche que elimina la vulnerabilidad.
Recomendaciones
- Verificar si su aplicación utiliza Django y revisar la versión instalada.
- Realizar la actualización a la versión segura lo antes posible.
- Revisar el código que utiliza filtros dinámicos o expansión de diccionarios en los métodos filter(), exclude() y get(), para asegurar que no se acepte directamente entrada de usuario sin sanitización.
- Implementar controles de seguridad como monitoreo de consultas sospechosas, pruebas de penetración y auditoría de acceso a datos críticos.
- Considerar como medida adicional la limitación de privilegios de base de datos utilizados por la aplicación para minimizar el impacto en caso de explotación.
- Incorporar este tipo de vulnerabilidad en sus procesos de gestión de vulnerabilidades, para asegurar procesos de parcheo ágil.
Referencias