fecgov / fec-cms

The content management system (CMS) for the new Federal Election Commission website.
https://www.fec.gov
Other
92 stars 38 forks source link

6208-upgrade gunicorn #6254

Closed cnlucas closed 2 months ago

cnlucas commented 2 months ago

Summary (required)

Upgrades gunicorn to remove snyk vulnerability

Breaking changes: V. 22 minimum version is Python 3.7 the limitations on valid characters in the HTTP method have been bounded to Internet Standards requests specifying unsupported transfer coding (order) are refused by default (rare) HTTP methods are no longer casefolded by default (IANA method registry contains none affected) HTTP methods containing the number sign (#) are no longer accepted by default (rare) HTTP versions < 1.0 or >= 2.0 are no longer accepted by default (rare, only HTTP/1.1 is supported) HTTP versions consisting of multiple digits or containing a prefix/suffix are no longer accepted HTTP header field names Gunicorn cannot safely map to variables are silently dropped, as in other software HTTP headers with empty field name are refused by default (no legitimate use cases, used in exploits) requests with both Transfer-Encoding and Content-Length are refused by default (such a message might indicate an attempt to perform request smuggling) empty transfer codings are no longer permitted (reportedly seen with really old & broken proxies) V.21 We made this release major to start our new release cycle. More info will be provided on our discussion forum. V.20 minimum version is Python 3.5 Remove version from the Server header Removed gaiohttp worker Drop support for Python 2.x Drop support for EOL Python 3.2 and 3.3 Drop support for Paste Deploy server blocks

Required reviewers

2-3 devs, I couldn't find any breaking issues that would effect us, but this several major versions upgraded.

Impacted areas of the application

General components of the application that this PR will affect:

How to test

(Include any information that may be helpful to the reviewer(s). This might include links to sample pages to test or any local environmental setup that is unusual such as environment variable (never credentials), API version to point to, etc)

I couldn't get running gunicorn locally to work ---if anyone has done that successfully please let me know.