Update Rust crate tokio to v1.38.2 [SECURITY]#251
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
33e6d69 to
185fc1e
Compare
185fc1e to
d82be2f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.21.0→1.38.2Tokio reject_remote_clients configuration may get dropped when creating a Windows named pipe
CVE-2023-22466 / GHSA-7rrj-xr53-82p7
More information
Details
Impact
When configuring a Windows named pipe server, setting
pipe_modewill resetreject_remote_clientstofalse. If the application has previously configuredreject_remote_clientstotrue, this effectively undoes the configuration. This also applies ifreject_remote_clientsis not explicitly set as this is the default configuration and is cleared by callingpipe_mode.Remote clients may only access the named pipe if the named pipe's associated path is accessible via a publically shared folder (SMB).
Patches
The following versions have been patched:
The fix will also be present in all releases starting from version 1.24.0.
Named pipes were introduced to Tokio in version 1.7.0, so releases older than 1.7.0 are not affected.
Workarounds
Ensure that
pipe_modeis set first after initializing aServerOptions. For example:References
https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea#pipe_reject_remote_clients
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:LReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
tokio::io::ReadHalf<T>::unsplitis UnsoundGHSA-4q83-7cq4-p6wg
More information
Details
tokio::io::ReadHalf<T>::unsplitcan violate thePincontractThe soundness issue is described in the tokio/issues#5372
Specific set of conditions needed to trigger an issue (a !Unpin type in ReadHalf)
is unusual, combined with the difficulty of making any arbitrary use-after-free
exploitable in Rust without doing a lot of careful alignment of data types in
the surrounding code.
The
tokiofeatureio-utilis also required to be enabled to trigger thissoundness issue.
Thanks to zachs18 reporting the issue to Tokio team responsibly and taiki-e
and carllerche appropriately responding and fixing the soundness bug.
Tokio before 0.2.0 used
futures0.1 that did not havePin, so it is notaffected by this issue.
Severity
Low
References
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Tokio broadcast channel calls clone in parallel, but does not require
SyncGHSA-rr8g-9fpq-6wmg
More information
Details
The broadcast channel internally calls
cloneon the stored value when receiving it, and only requiresT:Send. This means that using the broadcast channel with values that areSendbut notSynccan trigger unsoundness if thecloneimplementation makes use of the value being!Sync.Thank you to Austin Bonander for finding and reporting this issue.
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:UReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.