Описание
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 ofClientSession
(e.g. directly inTCPConnector
) - 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
tossl
parameter inClientSession
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 usecodecov
. - Replaced all
tmpdir
fixtures withtmp_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 ofApplication
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
andmax_field_size
. - Added
auto_decompress
parameter toClientSession.request
to overrideClientSession._auto_decompress
. - Changed
raise_for_status
to allow a coroutine. - Added client brotli compression support (optional with runtime check).
- Added
client_max_size
toBaseRequest.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 inweb.run_app()
to accept apathlib.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 inCookieJar
. - 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 toTrue
. -- 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 withasyncio.timeout()
on newer releases). - Added support for
brotlicffi
as an alternative tobrotli
(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__
toEmptyStreamReader
to avoidAttributeError
. - Fixed bug when using
TCPConnector
withttl_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 toNone
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 fromcomethod
tomethod
. - Added information on behavior of base_url parameter in
ClientSession
. - Completed
trust_env
parameter description to honorwss_proxy
,ws_proxy
orno_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 inrun_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
withhttp.HTTPStatus
. - Fixed annotation of
ssl
parameter to disallowTrue
.
update to 3.8.6 (bsc#1217181, CVE-2023-47627):
- Security bugfixes
- https://github.com/aio-libs/aiohttp/security/advisories/GHSA- pjjw-qhg8-p2p9.
- https://github.com/aio-libs/aiohttp/security/advisories/GHSA- gfw2-4jvh-wgfg.
- Added
fallback_charset_resolver
parameter inClientSession
to allow a user-supplied character set detection function. Character set detection will no longer be included in 3.9 as a default. If this feature is needed, please use `fallback_charset_resolver the client - Fixed
PermissionError
when.netrc
is unreadable due to permissions. - Fixed output of parsing errors
- Fixed sorting in
filter_cookies
to use cookie with longest path.
Release 3.8.0 (2021-10-31) (bsc#1217174, CVE-2023-47641)
Список пакетов
Image SLES15-SP4-BYOS-Azure
Image SLES15-SP4-HPC-BYOS
Image SLES15-SP4-HPC-BYOS-Azure
Image SLES15-SP4-Hardened-BYOS-Azure
Image SLES15-SP4-SAP
Image SLES15-SP4-SAP-Azure
Image SLES15-SP4-SAP-BYOS-Azure
Image SLES15-SP4-SAP-Hardened
Image SLES15-SP4-SAP-Hardened-Azure
Image SLES15-SP4-SAP-Hardened-BYOS-Azure
Image SLES15-SP4-SAPCAL
Image SLES15-SP4-SAPCAL-Azure
Image SLES15-SP5-Azure-3P
Image SLES15-SP5-Azure-Basic
Image SLES15-SP5-Azure-Standard
Image SLES15-SP5-BYOS-Azure
Image SLES15-SP5-HPC-Azure
Image SLES15-SP5-HPC-BYOS-Azure
Image SLES15-SP5-Hardened-BYOS-Azure
Image SLES15-SP5-SAP-Azure-3P
Image SLES15-SP5-SAP-BYOS-Azure
Image SLES15-SP5-SAP-Hardened-Azure
Image SLES15-SP5-SAP-Hardened-BYOS-Azure
Image SLES15-SP5-SAPCAL-Azure
Image SLES15-SP6-Azure-Basic
Image SLES15-SP6-Azure-Standard
Image SLES15-SP6-BYOS-Azure
Image SLES15-SP6-HPC
Image SLES15-SP6-HPC-Azure
Image SLES15-SP6-HPC-BYOS-Azure
Image SLES15-SP6-Hardened-BYOS-Azure
Image SLES15-SP6-SAP-Azure
Image SLES15-SP6-SAP-BYOS-Azure
Image SLES15-SP6-SAP-Hardened
Image SLES15-SP6-SAP-Hardened-Azure
Image SLES15-SP6-SAP-Hardened-BYOS-Azure
Image SLES15-SP6-SAPCAL-Azure
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS
SUSE Linux Enterprise Module for Python 3 15 SP5
SUSE Linux Enterprise Server 15 SP4-LTSS
SUSE Linux Enterprise Server for SAP Applications 15 SP4
openSUSE Leap 15.5
Ссылки
- Link for SUSE-SU-2024:0577-1
- E-Mail link for SUSE-SU-2024:0577-1
- SUSE Security Ratings
- SUSE Bug 1217174
- SUSE Bug 1217181
- SUSE Bug 1217782
- SUSE Bug 1219341
- SUSE Bug 1219342
- SUSE CVE CVE-2023-47627 page
- SUSE CVE CVE-2023-47641 page
- SUSE CVE CVE-2024-23334 page
- SUSE CVE CVE-2024-23829 page
Описание
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.
Затронутые продукты
Ссылки
- CVE-2023-47627
- SUSE Bug 1217181
- SUSE Bug 1219342
Описание
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.
Затронутые продукты
Ссылки
- CVE-2023-47641
- SUSE Bug 1217174
Описание
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.
Затронутые продукты
Ссылки
- CVE-2024-23334
- SUSE Bug 1219341
Описание
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.
Затронутые продукты
Ссылки
- CVE-2024-23829
- SUSE Bug 1219342