gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications.
Gunicorn 22.0.0 has been released. This version fix the numerous security vulnerabilities. You're invited to upgrade asap your own installation.
Changes:
22.0.0 - 2024-04-17
===================
- use `utime` to notify workers liveness
- migrate setup to pyproject.toml
- fix numerous security vulnerabilities in HTTP parser (closing some request smuggling vectors)
- parsing additional requests is no longer attempted past unsupported request framing
- on HTTP versions < 1.1 support for chunked transfer is refused (only used in exploits)
- requests conflicting configured or passed SCRIPT_NAME now produce a verbose error
- Trailer fields are no longer inspected for headers indicating secure scheme
- support Python 3.12
** Breaking changes **
- 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)
** SECURITY **
- fix CVE-2024-1135
Gunicorn 21.2.0 has been released. This version fix the issue introduced in the threaded worker.
Changes:
21.2.0 - 2023-07-19
===================
fix thread worker: revert change considering connection as idle .
*** NOTE ***
This is fixing the bad file description error.
gunicorn 21.1.0 has been released. This version fix the issue introduced in the threaded worker.
Gunicorn 21 is out with miscellaneous changes. Enjoy!
We made this release major to start our new release cycle. More info will be provided on our discussion forum.
fix documentation build
support python 3.11 fix gevent and eventlet workers fix threads support (gththread): improve performance and unblock requests SSL: noaw use SSLContext object HTTP parser: miscellaneous fixes remove unecessary setuid calls fix testing improve logging miscellaneous fixes to core engine
Full Changelog: https://github.com/benoitc/gunicorn/compare/21.0.0...21.0.1
wsgi_app
--timeout = 0
$PORT
environment variablesocket.sendfile
instead of os.sendfile
InotifyError
when a file
is added to the working directory--log-dict-config
CLI flag because it never had a working format
(the logconfig_dict
setting in configuration files continues to work)** Breaking changes **
** Documentation **
** Others **
bdist_rpm
buildsocketfromfd.fromfd
when defaults are not setnote: we now warn when we load a config file without Python Extension
__file__
is now availablewsgi.input_terminated
. It is always true.__repr__
method to Config
instancesocketfromfd.fromfd
functionrequest smuggling <https://portswigger.net/research/http-desync-attacks-request-smuggling-reborn>
_RecursionError
.note this release add official support for applications loaded from a factory function as documented in Flask and other places.
fdopen
RuntimeWarning
in Python 3.8StopIteration
and KeyboardInterrupt
exceptions with same body together in Arbiter.run()setproctitle
module to extras_require
in setup.pyutil.import_module
types.SimpleNamespace
in tests utilsSourceFileLoader
instead instead of execfile_
importlib
instead of __import__
and eval`datadog <https://www.datadoghq.com>
_ tags for statsd metricsparse_address
util added testfutures
import in gthread modulewsgi.input_terminated
extensiontornado <https://www.tornadoweb.org/>
_ 5 and 6 support--bind
to open file descriptors--ssl-version
flagResourceWarning
when reading a Python config moduleInotifyReloadeder
: handle module.__file__
is None/dev/shm
as a convenient alternative to making your own tmpfs mount in fchmod FAQ--max-requests
documentationREMOTE_ADDR
on versions of Python 3 affected by
Python Issue 30205 <https://bugs.python.org/issue30205>
_
(#1755, #1796)AttributeError
when --reload
is not passed
in case of a :exc:SyntaxError
raised from the WSGI application.
(#1805, #1806)gunicorn.workers.async
was renamed to
gunicorn.workers.base_async
since async
is now a reserved word
in Python 3.7.
(#1527)