-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(deps): update security vulnerabilities [security] #7095
base: main
Are you sure you want to change the base?
Conversation
Deployment Summary
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #7095 +/- ##
==========================================
- Coverage 92.75% 92.50% -0.26%
==========================================
Files 192 185 -7
Lines 16113 15735 -378
==========================================
- Hits 14946 14555 -391
- Misses 1167 1180 +13
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
f570059
to
70b1637
Compare
ff5887d
to
17ef04f
Compare
0afe568
to
7502f3f
Compare
e930018
to
6ae1914
Compare
5a7e328
to
453026a
Compare
453026a
to
226d764
Compare
48a063e
to
d070088
Compare
6dbd2dd
to
375b38f
Compare
aede34f
to
6e049fe
Compare
6e049fe
to
67808de
Compare
67808de
to
536e8d4
Compare
This PR contains the following updates:
~=3.0.6
->~=4.0.1
==2.2.3
->==3.0.6
14.2.12
->14.2.21
==1.10.7
->==1.10.13
==2.31.0
->==2.32.2
==1.26.16
->==1.26.19
GitHub Vulnerability Alerts
CVE-2024-1681
corydolphin/flask-cors is vulnerable to log injection when the log level is set to debug. An attacker can inject fake log entries into the log file by sending a specially crafted GET request containing a CRLF sequence in the request path. This vulnerability allows attackers to corrupt log files, potentially covering tracks of other attacks, confusing log post-processing tools, and forging log entries. The issue is due to improper output neutralization for logs.
CVE-2023-46136
Werkzeug multipart data parser needs to find a boundary that may be between consecutive chunks. That's why parsing is based on looking for newline characters. Unfortunately, code looking for partial boundary in the buffer is written inefficiently, so if we upload a file that starts with CR or LF and then is followed by megabytes of data without these characters: all of these bytes are appended chunk by chunk into internal bytearray and lookup for boundary is performed on growing buffer.
This allows an attacker to cause a denial of service by sending crafted multipart data to an endpoint that will parse it. The amount of CPU time required can block worker processes from handling legitimate requests. The amount of RAM required can trigger an out of memory kill of the process. If many concurrent requests are sent continuously, this can exhaust or kill all available workers.
CVE-2024-49767
Applications using Werkzeug to parse
multipart/form-data
requests are vulnerable to resource exhaustion. A specially crafted form body can bypass theRequest.max_form_memory_size
setting.The
Request.max_content_length
setting, as well as resource limits provided by deployment software and platforms, are also available to limit the resources used during a request. This vulnerability does not affect those settings. All three types of limits should be considered and set appropriately when deploying an application.CVE-2024-49766
On Python < 3.11 on Windows,
os.path.isabs()
does not catch UNC paths like//server/share
. Werkzeug'ssafe_join()
relies on this check, and so can produce a path that is not safe, potentially allowing unintended access to data. Applications using Python >= 3.11, or not using Windows, are not vulnerable.CVE-2024-51479
Impact
If a Next.js application is performing authorization in middleware based on pathname, it was possible for this authorization to be bypassed.
Patches
This issue was patched in Next.js
14.2.15
and later.If your Next.js application is hosted on Vercel, this vulnerability has been automatically mitigated, regardless of Next.js version.
Workarounds
There are no official workarounds for this vulnerability.
Credits
We'd like to thank tyage (GMO CyberSecurity by IERAE) for responsible disclosure of this issue.
CVE-2024-56332
Impact
A Denial of Service (DoS) attack allows attackers to construct requests that leaves requests to Server Actions hanging until the hosting provider cancels the function execution.
Note: Next.js server is idle during that time and only keeps the connection open. CPU and memory footprint are low during that time.
Deployments without any protection against long running Server Action invocations are especially vulnerable. Hosting providers like Vercel or Netlify set a default maximum duration on function execution to reduce the risk of excessive billing.
This is the same issue as if the incoming HTTP request has an invalid
Content-Length
header or never closes. If the host has no other mitigations to those then this vulnerability is novel.This vulnerability affects only Next.js deployments using Server Actions.
Patches
This vulnerability was resolved in Next.js 14.2.21, 15.1.2, and 13.5.8. We recommend that users upgrade to a safe version.
Workarounds
There are no official workarounds for this vulnerability.
Credits
Thanks to the PackDraw team for responsibly disclosing this vulnerability.
CVE-2024-3772
Regular expression denial of service in Pydantic < 2.4.0, < 1.10.13 allows remote attackers to cause denial of service via a crafted email string.
CVE-2024-35195
When making requests through a Requests
Session
, if the first request is made withverify=False
to disable cert verification, all subsequent requests to the same origin will continue to ignore cert verification regardless of changes to the value ofverify
. This behavior will continue for the lifecycle of the connection in the connection pool.Remediation
Any of these options can be used to remediate the current issue, we highly recommend upgrading as the preferred mitigation.
requests>=2.32.0
.requests<2.32.0
, avoid settingverify=False
for the first request to a host while using a Requests Session.requests<2.32.0
, callclose()
onSession
objects to clear existing connections ifverify=False
is used.Related Links
CVE-2023-43804
urllib3 doesn't treat the
Cookie
HTTP header special or provide any helpers for managing cookies over HTTP, that is the responsibility of the user. However, it is possible for a user to specify aCookie
header and unknowingly leak information via HTTP redirects to a different origin if that user doesn't disable redirects explicitly.Users must handle redirects themselves instead of relying on urllib3's automatic redirects to achieve safe processing of the
Cookie
header, thus we decided to strip the header by default in order to further protect users who aren't using the correct approach.Affected usages
We believe the number of usages affected by this advisory is low. It requires all of the following to be true to be exploited:
Cookie
header on requests, which is mostly typical for impersonating a browser.Remediation
redirects=False
when sending requests.Cookie
header.CVE-2023-45803
urllib3 previously wouldn't remove the HTTP request body when an HTTP redirect response using status 303 "See Other" after the request had its method changed from one that could accept a request body (like
POST
) toGET
as is required by HTTP RFCs. Although the behavior of removing the request body is not specified in the section for redirects, it can be inferred by piecing together information from different sections and we have observed the behavior in other major HTTP client implementations like curl and web browsers.From RFC 9110 Section 9.3.1:
Affected usages
Because the vulnerability requires a previously trusted service to become compromised in order to have an impact on confidentiality we believe the exploitability of this vulnerability is low. Additionally, many users aren't putting sensitive data in HTTP request bodies, if this is the case then this vulnerability isn't exploitable.
Both of the following conditions must be true to be affected by this vulnerability:
Remediation
You can remediate this vulnerability with any of the following steps:
redirects=False
.redirects=False
and handle 303 redirects manually by stripping the HTTP request body.CVE-2024-37891
When using urllib3's proxy support with
ProxyManager
, theProxy-Authorization
header is only sent to the configured proxy, as expected.However, when sending HTTP requests without using urllib3's proxy support, it's possible to accidentally configure the
Proxy-Authorization
header even though it won't have any effect as the request is not using a forwarding proxy or a tunneling proxy. In those cases, urllib3 doesn't treat theProxy-Authorization
HTTP header as one carrying authentication material and thus doesn't strip the header on cross-origin redirects.Because this is a highly unlikely scenario, we believe the severity of this vulnerability is low for almost all users. Out of an abundance of caution urllib3 will automatically strip the
Proxy-Authorization
header during cross-origin redirects to avoid the small chance that users are doing this on accident.Users should use urllib3's proxy support or disable automatic redirects to achieve safe processing of the
Proxy-Authorization
header, but we still decided to strip the header by default in order to further protect users who aren't using the correct approach.Affected usages
We believe the number of usages affected by this advisory is low. It requires all of the following to be true to be exploited:
Proxy-Authorization
header without using urllib3's built-in proxy support.Remediation
Proxy-Authorization
header with urllib3'sProxyManager
.redirects=False
when sending requests.Proxy-Authorization
header.Release Notes
corydolphin/flask-cors (Flask-Cors)
v4.0.1
Compare Source
Security
v4.0.0
Compare Source
v3.0.10
Compare Source
Adds support for PPC64 and ARM64 builds for distribution. Thanks @sreekanth370
v3.0.9
Compare Source
Security
evaluated CORS resource matching before path expansion. E.g. "/api/../foo.txt" would incorrectly match resources for
"/api/*" whereas the path actually expands simply to "/foo.txt"
v3.0.8
Compare Source
Fixes : DeprecationWarning: Using or importing the ABCs from 'collections' in Python 3.7.
Thank you @juanmaneo and @jdevera for the contribution.
v3.0.7
Compare Source
Updated logging.warn to logging.warning (#234) Thanks Vaibhav
vercel/next.js (next)
v14.2.21
Compare Source
v14.2.20
Compare Source
v14.2.19
Compare Source
Core Changes
Misc Changes
Credits
Huge thanks to @ztanner and @ijjk for helping!
v14.2.18
Compare Source
v14.2.17
Compare Source
v14.2.16
Compare Source
v14.2.15
Compare Source
Core Changes
Credits
Huge thanks to @ztanner, @agadzik, @huozhi, @styfle, @icyJoseph and @wyattjoh for helping!
v14.2.14
Compare Source
Core Changes
Credits
Huge thanks to @styfle, @ztanner, @ijjk, @huozhi and @wyattjoh for helping!
v14.2.13
Compare Source
pydantic/pydantic (pydantic)
v1.10.13
Compare Source
pydantic.validate_email
, #7673 by @hramezaniv1.10.12
Compare Source
maxlen
property being dropped ondeque
validation. Happened only if the deque item has been typed. Changes the_validate_sequence_like
func, #6581 by @maciekglowkav1.10.11
Compare Source
v1.10.10
Compare Source
Json
field support to settings management, #6250 by @hramezaniv1.10.9
Compare Source
v1.10.8
Compare Source
Literal
usage withtyping-extension==4.6.0
, #5826 by @hramezaniAnyClassMethod
for changes in python/typeshed#9771, #5505 by @ITProKylepsf/requests (requests)
v2.32.2
Compare Source
Deprecations
To provide a more stable migration for custom HTTPAdapters impacted
by the CVE changes in 2.32.0, we've renamed
_get_connection
toa new public API,
get_connection_with_tls_context
. Existing customHTTPAdapters will need to migrate their code to use this new API.
get_connection
is considered deprecated in all versions of Requests>=2.32.0.A minimal (2-line) example has been provided in the linked PR to ease
migration, but we strongly urge users to evaluate if their custom adapter
is subject to the same issue described in CVE-2024-35195. (#6710)
v2.32.1
Compare Source
Bugfixes
v2.32.0
Compare Source
Security
verify=False
on the first request from aSession will cause subsequent requests to the same origin to also ignore
cert verification, regardless of the value of
verify
.(GHSA-9wx4-h78v-vm56)
Improvements
verify=True
now reuses a global SSLContext which should improverequest time variance between first and subsequent requests. It should
also minimize certificate load time on Windows systems when using a Python
version built with OpenSSL 3.x. (#6667)
(
chardet
orcharset_normalizer
) when repackaged or vendored.This enables
pip
and other projects to minimize their vendoringsurface area. The
Response.text()
andapparent_encoding
APIswill default to
utf-8
if neither library is present. (#6702)Bugfixes
calculated in the request content-length. (#6589)
/
(path separator) could leadurllib3 to unnecessarily reparse the request URI. (#6644)
Deprecations
Documentation
Packaging
The source files for the projects (formerly
requests
) is now locatedin
src/requests
in the Requests sdist. (#6506)using
hatchling
. This should not impact the average user, but extremely oldversions of packaging utilities may have issues with the new packaging format.
urllib3/urllib3 (urllib3)
v1.26.19
Compare Source
====================
Proxy-Authorization
header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set viaRetry.remove_headers_on_redirect
.#​3405 <https://github.com/urllib3/urllib3/issues/3405>
__)v1.26.18
Compare Source
====================
v1.26.17
Compare Source
====================
Cookie
header to the list of headers to strip from requests when redirecting to a different host. As before, different headers can be set viaRetry.remove_headers_on_redirect
. (#​3139 <https://github.com/urllib3/urllib3/pull/3139>
_)Configuration
📅 Schedule: Branch creation - "" in timezone UTC, Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.