This affects all versions of package uvicorn. The request logger provided by the package is vulnerable to ASNI escape sequence injection. Whenever any HTTP request is received, the default behaviour of uvicorn is to log its details to either the console or a log file. When attackers request crafted URLs with percent-encoded escape sequences, the logging component will log the URL after it's been processed with urllib.parse.unquote, therefore converting any percent-encoded characters into their single-character equivalent, which can have special meaning in terminal emulators. By requesting URLs with crafted paths, attackers can: * Pollute uvicorn's access logs, therefore jeopardising the integrity of such files. * Use ANSI sequence codes to attempt to interact with the terminal emulator that's displaying the logs (either in real time or from a file).
Esto afecta a todas las versiones del paquete uvicorn. El registrador de peticiones proporcionado por el paquete es vulnerable a una inyección de secuencia de escape ASNI. Cada vez que es recibida una petición HTTP, el comportamiento predeterminado de uvicorn es registrar sus detalles en la consola o en un archivo de registro. Cuando los atacantes solicitan las URL diseñadas con secuencias de escape codificadas en porcentaje, el componente logging registrará la URL después de que hayan sido procesada con urllib.parse.unquote, por lo tanto, convertirá cualquier carácter codificado en porcentaje en su equivalente de un solo carácter, que puede tener un significado especial en emuladores de terminal. Al solicitar las URL con rutas diseñadas, unos atacantes pueden: * Contaminar los registros de acceso de uvicorn, poniendo en peligro la integridad de dichos archivos. * Usar los códigos de secuencia ANSI para intentar interactuar con el emulador de terminal que muestra los registros (ya sea en tiempo real o desde un archivo)