google / sxg-rs

A set of tools for generating signed exchanges at serve time.
Apache License 2.0
83 stars 20 forks source link

fix(deps): update rust crate tokio to v1.24.2 [security] - autoclosed #434

Closed renovate-bot closed 4 months ago

renovate-bot commented 1 year ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
tokio (source) dependencies minor 1.23.0 -> 1.24.2

GitHub Vulnerability Alerts

CVE-2023-22466

Impact

When configuring a Windows named pipe server, setting pipe_mode will reset reject_remote_clients to false. If the application has previously configured reject_remote_clients to true, this effectively undoes the configuration. This also applies if reject_remote_clients is not explicitly set as this is the default configuration and is cleared by calling pipe_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_mode is set first after initializing a ServerOptions. For example:

let mut opts = ServerOptions::new();
opts.pipe_mode(PipeMode::Message);
opts.reject_remote_clients(true);

References

https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea#pipe_reject_remote_clients

GHSA-4q83-7cq4-p6wg

tokio::io::ReadHalf<T>::unsplit can violate the Pin contract

The 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 tokio feature io-util is also required to be enabled to trigger this soundness 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 futures 0.1 that did not have Pin, so it is not affected by this issue.


Release Notes

tokio-rs/tokio (tokio) ### [`v1.24.1`](https://togithub.com/tokio-rs/tokio/releases/tag/tokio-1.24.1): Tokio v1.24.1 [Compare Source](https://togithub.com/tokio-rs/tokio/compare/tokio-1.24.0...tokio-1.24.1) This release fixes a compilation failure on targets without `AtomicU64` when using rustc older than 1.63. ([#​5356]) [#​5356]: https://togithub.com/tokio-rs/tokio/pull/5356 ### [`v1.24.0`](https://togithub.com/tokio-rs/tokio/releases/tag/tokio-1.24.0): Tokio v1.24.0 [Compare Source](https://togithub.com/tokio-rs/tokio/compare/tokio-1.23.1...tokio-1.24.0) The highlight of this release is the reduction of lock contention for all I/O operations ([#​5300](https://togithub.com/tokio-rs/tokio/issues/5300)). We have received reports of up to a 20% improvement in CPU utilization and increased throughput for real-world I/O heavy applications. ##### Fixed - rt: improve native `AtomicU64` support detection ([#​5284]) ##### Added - rt: add configuration option for max number of I/O events polled from the OS per tick ([#​5186]) - rt: add an environment variable for configuring the default number of worker threads per runtime instance ([#​4250]) ##### Changed - sync: reduce MPSC channel stack usage ([#​5294]) - io: reduce lock contention in I/O operations ([#​5300]) - fs: speed up `read_dir()` by chunking operations ([#​5309]) - rt: use internal `ThreadId` implementation ([#​5329]) - test: don't auto-advance time when a `spawn_blocking` task is running ([#​5115]) [#​5186]: https://togithub.com/tokio-rs/tokio/pull/5186 [#​5294]: https://togithub.com/tokio-rs/tokio/pull/5294 [#​5284]: https://togithub.com/tokio-rs/tokio/pull/5284 [#​4250]: https://togithub.com/tokio-rs/tokio/pull/4250 [#​5300]: https://togithub.com/tokio-rs/tokio/pull/5300 [#​5329]: https://togithub.com/tokio-rs/tokio/pull/5329 [#​5115]: https://togithub.com/tokio-rs/tokio/pull/5115 [#​5309]: https://togithub.com/tokio-rs/tokio/pull/5309 ### [`v1.23.1`](https://togithub.com/tokio-rs/tokio/releases/tag/tokio-1.23.1): Tokio v1.23.1 [Compare Source](https://togithub.com/tokio-rs/tokio/compare/tokio-1.23.0...tokio-1.23.1) This release forward ports changes from 1.18.4. ##### Fixed - net: fix Windows named pipe server builder to maintain option when toggling pipe mode ([#​5336]). [#​5336]: https://togithub.com/tokio-rs/tokio/pull/5336

Configuration

šŸ“… Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

šŸš¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.

ā™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

šŸ”• Ignore: Close this PR and you won't be reminded about this update again.



This PR has been generated by Mend Renovate. View repository job log here.

forking-renovate[bot] commented 8 months ago

āš  Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

ā™» Renovate will retry this branch, including artifacts, only when one of the following happens:

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path tools/Cargo.toml --package tokio@1.23.0 --precise 1.24.2
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/cloudflare_worker/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/fastly_compute/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?

  tokio@1.26.0
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path sxg_rs/Cargo.toml --package tokio@1.23.0 --precise 1.24.2
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/cloudflare_worker/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/fastly_compute/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?

  tokio@1.26.0
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path http_server/Cargo.toml --package tokio@1.23.0 --precise 1.24.2
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/cloudflare_worker/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/fastly_compute/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?

  tokio@1.26.0
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path fastly_compute/Cargo.toml --package tokio@1.23.0 --precise 1.24.2
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/cloudflare_worker/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/fastly_compute/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?

  tokio@1.26.0
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path distributor/Cargo.toml --package tokio@1.23.0 --precise 1.24.2
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/cloudflare_worker/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /tmp/renovate/repos/github/google/sxg-rs/fastly_compute/Cargo.toml
workspace: /tmp/renovate/repos/github/google/sxg-rs/Cargo.toml
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?

  tokio@1.26.0