Programa: django
4 reportes publicados, del más reciente al más antiguo.
Django: inyección SQL en PostgreSQL con alias de FilteredRelation que usan cadenas con dólar ($tag$)
El filtro de alias de Django no bloqueaba el símbolo $. En PostgreSQL, un alias controlado por el usuario en annotate() con FilteredRelation permitía inyectar SQL y, en la prueba, leer /etc/passwd del servidor de base de datos.
3 min
Django: la caché de páginas confunde una cabecera ausente con una vacía y puede servir la respuesta equivocada con Vary
El middleware de caché de Django generaba la misma clave para una petición sin la cabecera indicada en Vary y para otra con esa cabecera vacía, de modo que una respuesta privada podía servirse a quien no debía.
3 min
Django delataba qué usuarios existen: ataque de tiempos en la autenticación de Apache con mod_wsgi
check_password en el manejador mod_wsgi de Django contestaba al instante si el usuario no existía y tardaba cientos de milisegundos si existía. Midiendo esa diferencia, un atacante podía descubrir cuentas válidas.
4 min
Django: cabeceras repetidas en ASGIRequest disparan un consumo de CPU cuadrático y bloquean los workers ASGI
Al construir META, ASGIRequest concatenaba cada cabecera repetida copiando todo el valor acumulado. Una sola petición HTTP/2 con miles de cabeceras duplicadas costaba segundos de CPU antes de llegar a la vista.
4 min