Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

suse-cvrf логотип

SUSE-SU-2024:0577-1

Опубликовано: 21 фев. 2024
Источник: suse-cvrf

Описание

Security update for python-aiohttp, python-time-machine

This update for python-aiohttp, python-time-machine fixes the following issues:

python-aiohttp was updated to version 3.9.3:

  • Fixed backwards compatibility breakage (in 3.9.2) of ssl parameter when set outside of ClientSession (e.g. directly in TCPConnector)
  • Improved test suite handling of paths and temp files to consistently use pathlib and pytest fixtures.

From version 3.9.2 (bsc#1219341, CVE-2024-23334, bsc#1219342, CVE-2024-23829):

  • Fixed server-side websocket connection leak.
  • Fixed web.FileResponse doing blocking I/O in the event loop.
  • Fixed double compress when compression enabled and compressed file exists in server file responses.
  • Added runtime type check for ClientSession timeout parameter.
  • Fixed an unhandled exception in the Python HTTP parser on header lines starting with a colon.
  • Improved validation of paths for static resources requests to the server.
  • Added support for passing :py:data:True to ssl parameter in ClientSession while deprecating :py:data:None.
  • Fixed an unhandled exception in the Python HTTP parser on header lines starting with a colon.
  • Fixed examples of fallback_charset_resolver function in the :doc:client_advanced document.
  • The Sphinx setup was updated to avoid showing the empty changelog draft section in the tagged release documentation builds on Read The Docs.
  • The changelog categorization was made clearer. The contributors can now mark their fragment files more accurately.
  • Updated :ref:contributing/Tests coverage <aiohttp-contributing> section to show how we use codecov.
  • Replaced all tmpdir fixtures with tmp_path in test suite.
  • Disable broken tests with openssl 3.2 and python < 3.11 bsc#1217782

update to 3.9.1:

  • Fixed importing aiohttp under PyPy on Windows.
  • Fixed async concurrency safety in websocket compressor.
  • Fixed ClientResponse.close() releasing the connection instead of closing.
  • Fixed a regression where connection may get closed during upgrade. -- by :user:Dreamsorcerer
  • Fixed messages being reported as upgraded without an Upgrade header in Python parser. -- by :user:Dreamsorcerer

update to 3.9.0: (bsc#1217684, CVE-2023-49081, bsc#1217682, CVE-2023-49082)

  • Introduced AppKey for static typing support of Application storage.
  • Added a graceful shutdown period which allows pending tasks to complete before the application's cleanup is called.
  • Added handler_cancellation_ parameter to cancel web handler on client disconnection.
  • This (optionally) reintroduces a feature removed in a previous release.
  • Recommended for those looking for an extra level of protection against denial-of-service attacks.
  • Added support for setting response header parameters max_line_size and max_field_size.
  • Added auto_decompress parameter to ClientSession.request to override ClientSession._auto_decompress.
  • Changed raise_for_status to allow a coroutine.
  • Added client brotli compression support (optional with runtime check).
  • Added client_max_size to BaseRequest.clone() to allow overriding the request body size. -- :user:anesabml.
  • Added a middleware type alias aiohttp.typedefs.Middleware.
  • Exported HTTPMove which can be used to catch any redirection request that has a location -- :user:dreamsorcerer.
  • Changed the path parameter in web.run_app() to accept a pathlib.Path object.
  • Performance: Skipped filtering CookieJar when the jar is empty or all cookies have expired.
  • Performance: Only check origin if insecure scheme and there are origins to treat as secure, in CookieJar.filter_cookies().
  • Performance: Used timestamp instead of datetime to achieve faster cookie expiration in CookieJar.
  • Added support for passing a custom server name parameter to HTTPS connection.
  • Added support for using Basic Auth credentials from :file:.netrc file when making HTTP requests with the
  • :py:class:~aiohttp.ClientSession trust_env argument is set to True. -- by :user:yuvipanda.
  • Turned access log into no-op when the logger is disabled.
  • Added typing information to RawResponseMessage. -- by :user:Gobot1234
  • Removed async-timeout for Python 3.11+ (replaced with asyncio.timeout() on newer releases).
  • Added support for brotlicffi as an alternative to brotli (fixing Brotli support on PyPy).
  • Added WebSocketResponse.get_extra_info() to access a protocol transport's extra info.
  • Allow link argument to be set to None/empty in HTTP 451 exception.
  • Fixed client timeout not working when incoming data is always available without waiting. -- by :user:Dreamsorcerer.
  • Fixed readuntil to work with a delimiter of more than one character.
  • Added __repr__ to EmptyStreamReader to avoid AttributeError.
  • Fixed bug when using TCPConnector with ttl_dns_cache=0.
  • Fixed response returned from expect handler being thrown away. -- by :user:Dreamsorcerer
  • Avoided raising UnicodeDecodeError in multipart and in HTTP headers parsing.
  • Changed sock_read timeout to start after writing has finished, avoiding read timeouts caused by an unfinished write. -- by :user:dtrifiro
  • Fixed missing query in tracing method URLs when using yarl 1.9+.
  • Changed max 32-bit timestamp to an aware datetime object, for consistency with the non-32-bit one, and to avoid a DeprecationWarning on Python 3.12.
  • Fixed EmptyStreamReader.iter_chunks() never ending.
  • Fixed a rare RuntimeError: await wasn't used with future exception.
  • Fixed issue with insufficient HTTP method and version validation.
  • Added check to validate that absolute URIs have schemes.
  • Fixed unhandled exception when Python HTTP parser encounters unpaired Unicode surrogates.
  • Updated parser to disallow invalid characters in header field names and stop accepting LF as a request line separator.
  • Fixed Python HTTP parser not treating 204/304/1xx as an empty body.
  • Ensure empty body response for 1xx/204/304 per RFC 9112 sec 6.3.
  • Fixed an issue when a client request is closed before completing a chunked payload. -- by :user:Dreamsorcerer
  • Edge Case Handling for ResponseParser for missing reason value.
  • Fixed ClientWebSocketResponse.close_code being erroneously set to None when there are concurrent async tasks receiving data and closing the connection.
  • Added HTTP method validation.
  • Fixed arbitrary sequence types being allowed to inject values via version parameter. -- by :user:Dreamsorcerer
  • Performance: Fixed increase in latency with small messages from websocket compression changes.
  • Improved Documentation
  • Fixed the ClientResponse.release's type in the doc. Changed from comethod to method.
  • Added information on behavior of base_url parameter in ClientSession.
  • Completed trust_env parameter description to honor wss_proxy, ws_proxy or no_proxy env.
  • Dropped Python 3.6 support.
  • Dropped Python 3.7 support. -- by :user:Dreamsorcerer
  • Removed support for abandoned tokio event loop.
  • Made print argument in run_app() optional.
  • Improved performance of ceil_timeout in some cases.
  • Changed importing Gunicorn to happen on-demand, decreasing import time by ~53%. -- :user:Dreamsorcerer
  • Improved import time by replacing http.server with http.HTTPStatus.
  • Fixed annotation of ssl parameter to disallow True.

update to 3.8.6 (bsc#1217181, CVE-2023-47627):

Release 3.8.0 (2021-10-31) (bsc#1217174, CVE-2023-47641)

Список пакетов

Image SLES15-SP4-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP-Hardened
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP-Hardened-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAP-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAPCAL
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-SAPCAL-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-Azure-3P
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-Azure-Basic
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-Azure-Standard
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-HPC-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-HPC-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-SAP-Azure-3P
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-SAP-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-SAP-Hardened-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-SAP-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP5-SAPCAL-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-Azure-Basic
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-Azure-Standard
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-HPC
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-HPC-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-HPC-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAP-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAP-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAP-Hardened
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAP-Hardened-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAP-Hardened-BYOS-Azure
python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP6-SAPCAL-Azure
python311-aiohttp-3.9.3-150400.10.14.1
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS
python311-aiohttp-3.9.3-150400.10.14.1
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS
python311-aiohttp-3.9.3-150400.10.14.1
SUSE Linux Enterprise Module for Python 3 15 SP5
python311-aiohttp-3.9.3-150400.10.14.1
SUSE Linux Enterprise Server 15 SP4-LTSS
python311-aiohttp-3.9.3-150400.10.14.1
SUSE Linux Enterprise Server for SAP Applications 15 SP4
python311-aiohttp-3.9.3-150400.10.14.1
openSUSE Leap 15.5
python311-aiohttp-3.9.3-150400.10.14.1

Описание

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. The HTTP parser in AIOHTTP has numerous problems with header parsing, which could lead to request smuggling. This parser is only used when AIOHTTP_NO_EXTENSIONS is enabled (or not using a prebuilt wheel). These bugs have been addressed in commit `d5c12ba89` which has been included in release version 3.8.6. Users are advised to upgrade. There are no known workarounds for these issues.


Затронутые продукты
Image SLES15-SP4-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-Hardened-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1

Ссылки

Описание

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Affected versions of aiohttp have a security vulnerability regarding the inconsistent interpretation of the http protocol. HTTP/1.1 is a persistent protocol, if both Content-Length(CL) and Transfer-Encoding(TE) header values are present it can lead to incorrect interpretation of two entities that parse the HTTP and we can poison other sockets with this incorrect interpretation. A possible Proof-of-Concept (POC) would be a configuration with a reverse proxy(frontend) that accepts both CL and TE headers and aiohttp as backend. As aiohttp parses anything with chunked, we can pass a chunked123 as TE, the frontend entity will ignore this header and will parse Content-Length. The impact of this vulnerability is that it is possible to bypass any proxy rule, poisoning sockets to other users like passing Authentication Headers, also if it is present an Open Redirect an attacker could combine it to redirect random users to another website and log the request. This vulnerability has been addressed in release 3.8.0 of aiohttp. Users are advised to upgrade. There are no known workarounds for this vulnerability.


Затронутые продукты
Image SLES15-SP4-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-Hardened-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1

Ссылки

Описание

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. When using aiohttp as a web server and configuring static routes, it is necessary to specify the root path for static files. Additionally, the option 'follow_symlinks' can be used to determine whether to follow symbolic links outside the static root directory. When 'follow_symlinks' is set to True, there is no validation to check if reading a file is within the root directory. This can lead to directory traversal vulnerabilities, resulting in unauthorized access to arbitrary files on the system, even when symlinks are not present. Disabling follow_symlinks and using a reverse proxy are encouraged mitigations. Version 3.9.2 fixes this issue.


Затронутые продукты
Image SLES15-SP4-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-Hardened-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1

Ссылки

Описание

aiohttp is an asynchronous HTTP client/server framework for asyncio and Python. Security-sensitive parts of the Python HTTP parser retained minor differences in allowable character sets, that must trigger error handling to robustly match frame boundaries of proxies in order to protect against injection of additional requests. Additionally, validation could trigger exceptions that were not handled consistently with processing of other malformed input. Being more lenient than internet standards require could, depending on deployment environment, assist in request smuggling. The unhandled exception could cause excessive resource consumption on the application server and/or its logging facilities. This vulnerability exists due to an incomplete fix for CVE-2023-47627. Version 3.9.2 fixes this vulnerability.


Затронутые продукты
Image SLES15-SP4-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-HPC-BYOS:python311-aiohttp-3.9.3-150400.10.14.1
Image SLES15-SP4-Hardened-BYOS-Azure:python311-aiohttp-3.9.3-150400.10.14.1

Ссылки
Уязвимость SUSE-SU-2024:0577-1