tiangolo / uvicorn-gunicorn-fastapi-docker

Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python with performance auto-tuning.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Uvicorn 0.11.3 is vulnerable to CVE-2020-7695 and CVE-2020-7694

weltonrodrigo opened this issue · comments

Uvicorn on docker image tiangolo/uvicorn-gunicorn-fastapi:python3.8 is uvicorn 0.11.3 with CPython 3.8.2 on Linux

This version is affected by two CVES: CVE-2020-7695 and CVE-2020-7694

Output of pipenv check on this image:

Checking PEP 508 requirements...  Passed!  Checking installed package
safety...  38664: uvicorn <0.11.7 resolved (0.11.3 installed)!  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).
See: CVE-2020-7694.

38665: uvicorn <0.11.7 resolved (0.11.3 installed)!  Uvicorn before
0.11.7 is vulnerable to HTTP response splitting. CRLF sequences are
not escaped in the value of HTTP headers. Attackers can exploit
this to add arbitrary headers to HTTP responses, or even return an
arbitrary response body, whenever crafted input is used to construct
HTTP headers. See: CVE-2020-7695.

The solution will be probably to update the upstream images.

Thanks! I recently upgraded the dependencies and released new versions of the images, also setting up weekly rebuilds and Dependabot to help me keep everything up to date. 🤓

Sorry for the long delay! 🙈 I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.

Assuming the original issue was solved, it will be automatically closed now. But feel free to add more comments or create new issues.