Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Update Rust crate tokio to v1.38.2 [SECURITY] by renovate[bot] · Pull Request #37 · codehearts/remembear · GitHub
Skip to content

Update Rust crate tokio to v1.38.2 [SECURITY] - #37

Open
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability
Open

Update Rust crate tokio to v1.38.2 [SECURITY]#37
renovate[bot] wants to merge 1 commit into
masterfrom
renovate/crate-tokio-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Feb 3, 2023

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

PackageTypeUpdateChange
tokio (source)dependenciesminor1.23.01.38.2

Tokio 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_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:

  • 1.23.1
  • 1.20.3
  • 1.18.4

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:

letmut 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

Severity

  • CVSS Score: 5.4 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


tokio::io::ReadHalf<T>::unsplit is Unsound

GHSA-4q83-7cq4-p6wg

More information

Details

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.

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 Sync

GHSA-rr8g-9fpq-6wmg

More information

Details

The broadcast channel internally calls clone on the stored value when receiving it, and only requires T:Send. This means that using the broadcast channel with values that are Send but not Sync can trigger unsoundness if the clone implementation makes use of the value being !Sync.

Thank you to Austin Bonander for finding and reporting this issue.

Severity

  • CVSS Score: 2.7 / 10 (Low)
  • Vector String: 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:U

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

tokio-rs/tokio (tokio)

v1.38.2: Tokio v1.38.2

Compare Source

This release fixes a soundness issue in the broadcast channel. The channel accepts values that are Send but !Sync. Previously, the channel called clone() on these values without synchronizing. This release fixes the channel by synchronizing calls to .clone() (Thanks Austin Bonander for finding and reporting the issue).

Fixed
  • sync: synchronize clone() call in broadcast channel (#​7232)

v1.38.1: Tokio v1.38.1

Compare Source

1.38.1 (July 16th, 2024)

This release fixes the bug identified as (#​6682), which caused timers not
to fire when they should.

Fixed
  • time: update wake_up while holding all the locks of sharded time wheels (#​6683)

v1.38.0: Tokio v1.38.0

Compare Source

This release marks the beginning of stabilization for runtime metrics. It
stabilizes RuntimeMetrics::worker_count. Future releases will continue to
stabilize more metrics.

Added
  • fs: add File::create_new (#​6573)
  • io: add copy_bidirectional_with_sizes (#​6500)
  • io: implement AsyncBufRead for Join (#​6449)
  • net: add Apple visionOS support (#​6465)
  • net: implement Clone for NamedPipeInfo (#​6586)
  • net: support QNX OS (#​6421)
  • sync: add Notify::notify_last (#​6520)
  • sync: add mpsc::Receiver::{capacity,max_capacity} (#​6511)
  • sync: add split method to the semaphore permit (#​6472, #​6478)
  • task: add tokio::task::join_set::Builder::spawn_blocking (#​6578)
  • wasm: support rt-multi-thread with wasm32-wasi-preview1-threads (#​6510)
Changed
  • macros: make #[tokio::test] append #[test] at the end of the attribute list (#​6497)
  • metrics: fix blocking_threads count (#​6551)
  • metrics: stabilize RuntimeMetrics::worker_count (#​6556)
  • runtime: move task out of the lifo_slot in block_in_place (#​6596)
  • runtime: panic if global_queue_interval is zero (#​6445)
  • sync: always drop message in destructor for oneshot receiver (#​6558)
  • sync: instrument Semaphore for task dumps (#​6499)
  • sync: use FIFO ordering when waking batches of wakers (#​6521)
  • task: make LocalKey::get work with Clone types (#​6433)
  • tests: update nix and mio-aio dev-dependencies (#​6552)
  • time: clean up implementation (#​6517)
  • time: lazily init timers on first poll (#​6512)
  • time: remove the true_when field in TimerShared (#​6563)
  • time: use sharding for timer implementation (#​6534)
Fixed
  • taskdump: allow building taskdump docs on non-unix machines (#​6564)
  • time: check for overflow in Interval::poll_tick (#​6487)
  • sync: fix incorrect is_empty on mpsc block boundaries (#​6603)
Documented
  • fs: rewrite file system docs (#​6467)
  • io: fix stdin documentation (#​6581)
  • io: fix obsolete reference in ReadHalf::unsplit() documentation (#​6498)
  • macros: render more comprehensible documentation for select! (#​6468)
  • net: add missing types to module docs (#​6482)
  • net: fix misleading NamedPipeServer example (#​6590)
  • sync: add examples for SemaphorePermit, OwnedSemaphorePermit (#​6477)
  • sync: document that Barrier::wait is not cancel safe (#​6494)
  • sync: explain relation between watch::Sender::{subscribe,closed} (#​6490)
  • task: clarify that you can't abort spawn_blocking tasks (#​6571)
  • task: fix a typo in doc of LocalSet::run_until (#​6599)
  • time: fix test-util requirement for pause and resume in docs (#​6503)

v1.37.0: Tokio v1.37.0

Compare Source

1.37.0 (March 28th, 2024)

Added
  • fs: add set_max_buf_size to tokio::fs::File (#​6411)
  • io: add try_new and try_with_interest to AsyncFd (#​6345)
  • sync: add forget_permits method to semaphore (#​6331)
  • sync: add is_closed, is_empty, and len to mpsc receivers (#​6348)
  • sync: add a rwlock() method to owned RwLock guards (#​6418)
  • sync: expose strong and weak counts of mpsc sender handles (#​6405)
  • sync: implement Clone for watch::Sender (#​6388)
  • task: add TaskLocalFuture::take_value (#​6340)
  • task: implement FromIterator for JoinSet (#​6300)
Changed
  • io: make io::split use a mutex instead of a spinlock (#​6403)
Fixed
  • docs: fix docsrs build without net feature (#​6360)
  • macros: allow select with only else branch (#​6339)
  • runtime: fix leaking registration entries when os registration fails (#​6329)
Documented
  • io: document cancel safety of AsyncBufReadExt::fill_buf (#​6431)
  • io: document cancel safety of AsyncReadExt's primitive read functions (#​6337)
  • runtime: add doc link from Runtime to #[tokio::main] (#​6366)
  • runtime: make the enter example deterministic (#​6351)
  • sync: add Semaphore example for limiting the number of outgoing requests (#​6419)
  • sync: fix missing period in broadcast docs (#​6377)
  • sync: mark mpsc::Sender::downgrade with #[must_use] (#​6326)
  • sync: reorder const_new before new_with (#​6392)
  • sync: update watch channel docs (#​6395)
  • task: fix documentation links (#​6336)
Changed (unstable)
  • runtime: include task Id in taskdumps (#​6328)
  • runtime: panic if unhandled_panic is enabled when not supported (#​6410)

v1.36.0: Tokio v1.36.0

Compare Source

1.36.0 (February 2nd, 2024)

Added
  • io: add tokio::io::Join (#​6220)
  • io: implement AsyncWrite for Empty (#​6235)
  • net: add support for anonymous unix pipes (#​6127)
  • net: add UnixSocket (#​6290)
  • net: expose keepalive option on TcpSocket (#​6311)
  • sync: add {Receiver,UnboundedReceiver}::poll_recv_many (#​6236)
  • sync: add Sender::{try_,}reserve_many (#​6205)
  • sync: add watch::Receiver::mark_unchanged (#​6252)
  • task: add JoinSet::try_join_next (#​6280)
Changed
  • io: make copy cooperative (#​6265)
  • io: make repeat and sink cooperative (#​6254)
  • io: simplify check for empty slice (#​6293)
  • process: use pidfd on Linux when available (#​6152)
  • sync: use AtomicBool in broadcast channel future (#​6298)
Documented
  • io: clarify clear_ready docs (#​6304)
  • net: document that *Fd traits on TcpSocket are unix-only (#​6294)
  • sync: document FIFO behavior of tokio::sync::Mutex (#​6279)
  • chore: typographic improvements (#​6262)
  • runtime: remove obsolete comment (#​6303)
  • task: fix typo (#​6261)

v1.35.1: Tokio v1.35.1

Compare Source

1.35.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.35.0: Tokio v1.35.0

Compare Source

1.35.0 (December 8th, 2023)

Added
  • net: add Apple watchOS support (#​6176)
Changed
  • io: drop the Sized requirements from AsyncReadExt.read_buf (#​6169)
  • runtime: make Runtime unwind safe (#​6189)
  • runtime: reduce the lock contention in task spawn (#​6001)
  • tokio: update nix dependency to 0.27.1 (#​6190)
Fixed
  • chore: make --cfg docsrs work without net feature (#​6166)
  • chore: use relaxed load for unsync_load on miri (#​6179)
  • runtime: handle missing context on wake (#​6148)
  • taskdump: fix taskdump cargo config example (#​6150)
  • taskdump: skip notified tasks during taskdumps (#​6194)
  • tracing: avoid creating resource spans with current parent, use a None parent instead (#​6107)
  • tracing: make task span explicit root (#​6158)
Documented
  • io: flush in AsyncWriteExt examples (#​6149)
  • runtime: document fairness guarantees and current behavior (#​6145)
  • task: document cancel safety of LocalSet::run_until (#​6147)

v1.34.0: Tokio v1.34.0

Compare Source

Fixed
  • io: allow clear_readiness after io driver shutdown (#​6067)
  • io: fix integer overflow in take (#​6080)
  • io: fix I/O resource hang (#​6134)
  • sync: fix broadcast::channel link (#​6100)
Changed
  • macros: use ::core qualified imports instead of ::std inside tokio::test macro (#​5973)
Added
  • fs: update cfg attr in fs::read_dir to include aix (#​6075)
  • sync: add mpsc::Receiver::recv_many (#​6010)
  • tokio: added vita target support (#​6094)

v1.33.0: Tokio v1.33.0

Compare Source

1.33.0 (October 9, 2023)

Fixed
  • io: mark Interest::add with #[must_use] (#​6037)
  • runtime: fix cache line size for RISC-V (#​5994)
  • sync: prevent lock poisoning in watch::Receiver::wait_for (#​6021)
  • task: fix spawn_local source location (#​5984)
Changed
  • sync: use Acquire/Release orderings instead of SeqCst in watch (#​6018)
Added
  • fs: add vectored writes to tokio::fs::File (#​5958)
  • io: add Interest::remove method (#​5906)
  • io: add vectored writes to DuplexStream (#​5985)
  • net: add Apple tvOS support (#​6045)
  • sync: add ?Sized bound to {MutexGuard,OwnedMutexGuard}::map (#​5997)
  • sync: add watch::Receiver::mark_unseen (#​5962, #​6014, #​6017)
  • sync: add watch::Sender::new (#​5998)
  • sync: add const fn OnceCell::from_value (#​5903)
Removed
Documented
Unstable
  • taskdump: fix potential deadlock (#​6036)

v1.32.1: Tokio v1.32.1

Compare Source

1.32.1 (December 19, 2023)

This is a forward part of a change that was backported to 1.25.3.

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.32.0: Tokio v1.32.0

Compare Source

Fixed
  • sync: fix potential quadratic behavior in broadcast::Receiver (#​5925)
Added
  • process: stabilize Command::raw_arg (#​5930)
  • io: enable awaiting error readiness (#​5781)
Unstable
  • rt(alt): improve the scalability of alt runtime as the number of cores grows (#​5935)

v1.31.0: Tokio v1.31.0

Compare Source

Fixed
  • io: delegate WriteHalf::poll_write_vectored (#​5914)
Unstable
  • rt(unstable): fix memory leak in unstable next-gen scheduler prototype (#​5911)
  • rt: expose mean task poll time metric (#​5927)

v1.30.0: Tokio v1.30.0

Compare Source

1.30.0 (August 9, 2023)

This release bumps the MSRV of Tokio to 1.63. (#​5887)

Changed
  • tokio: reduce LLVM code generation (#​5859)
  • io: support --cfg mio_unsupported_force_poll_poll flag (#​5881)
  • sync: make const_new methods always available (#​5885)
  • sync: avoid false sharing in mpsc channel (#​5829)
  • rt: pop at least one task from inject queue (#​5908)
Added
  • sync: add broadcast::Sender::new (#​5824)
  • net: implement UCred for espidf (#​5868)
  • fs: add File::options() (#​5869)
  • time: implement extra reset variants for Interval (#​5878)
  • process: add {ChildStd*}::into_owned_{fd, handle} (#​5899)
Removed
  • tokio: removed unused tokio_* cfgs (#​5890)
  • remove build script to speed up compilation (#​5887)
Documented
  • sync: mention lagging in docs for broadcast::send (#​5820)
  • runtime: expand on sharing runtime docs (#​5858)
  • io: use vec in example for AsyncReadExt::read_exact (#​5863)
  • time: mark Sleep as !Unpin in docs (#​5916)
  • process: fix raw_arg not showing up in docs (#​5865)
Unstable
  • rt: add runtime ID (#​5864)
  • rt: initial implementation of new threaded runtime (#​5823)

v1.29.1: Tokio v1.29.1

Compare Source

Fixed
  • rt: fix nesting two block_in_place with a block_on between (#​5837)

v1.29.0: Tokio v1.29.0

Compare Source

Technically a breaking change, the Send implementation is removed from
runtime::EnterGuard. This change fixes a bug and should not impact most users.

Breaking
  • rt: EnterGuard should not be Send (#​5766)
Fixed
  • fs: reduce blocking ops in fs::read_dir (#​5653)
  • rt: fix possible starvation (#​5686, #​5712)
  • rt: fix stacked borrows issue in JoinSet (#​5693)
  • rt: panic if EnterGuard dropped incorrect order (#​5772)
  • time: do not overflow to signal value (#​5710)
  • fs: wait for in-flight ops before cloning File (#​5803)
Changed
  • rt: reduce time to poll tasks scheduled from outside the runtime (#​5705, #​5720)
Added
  • net: add uds doc alias for unix sockets (#​5659)
  • rt: add metric for number of tasks (#​5628)
  • sync: implement more traits for channel errors (#​5666)
  • net: add nodelay methods on TcpSocket (#​5672)
  • sync: add broadcast::Receiver::blocking_recv (#​5690)
  • process: add raw_arg method to Command (#​5704)
  • io: support PRIORITY epoll events (#​5566)
  • task: add JoinSet::poll_join_next (#​5721)
  • net: add support for Redox OS (#​5790)
Unstable

v1.28.2: Tokio v1.28.2

Compare Source

1.28.2 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.28.1: Tokio v1.28.1

Compare Source

1.28.1 (May 10th, 2023)

This release fixes a mistake in the build script that makes AsFd implementations unavailable on Rust 1.63. (#​5677)

v1.28.0: Tokio v1.28.0

Compare Source

1.28.0 (April 25th, 2023)

Added
  • io: add AsyncFd::async_io (#​5542)
  • io: impl BufMut for ReadBuf (#​5590)
  • net: add recv_buf for UdpSocket and UnixDatagram (#​5583)
  • sync: add OwnedSemaphorePermit::semaphore (#​5618)
  • sync: add same_channel to broadcast channel (#​5607)
  • sync: add watch::Receiver::wait_for (#​5611)
  • task: add JoinSet::spawn_blocking and JoinSet::spawn_blocking_on (#​5612)
Changed
  • deps: update windows-sys to 0.48 (#​5591)
  • io: make read_to_end not grow unnecessarily (#​5610)
  • macros: make entrypoints more efficient (#​5621)
  • sync: improve Debug impl for RwLock (#​5647)
  • sync: reduce contention in Notify (#​5503)
Fixed
  • net: support get_peer_cred on AIX (#​5065)
  • sync: avoid deadlocks in broadcast with custom wakers (#​5578)
Documented
  • sync: fix typo in Semaphore::MAX_PERMITS (#​5645)
  • sync: fix typo in tokio::sync::watch::Sender docs (#​5587)

v1.27.0: Tokio v1.27.0

Compare Source

1.27.0 (March 27th, 2023)

This release bumps the MSRV of Tokio to 1.56. (#​5559)

Added
  • io: add async_io helper method to sockets (#​5512)
  • io: add implementations of AsFd/AsHandle/AsSocket (#​5514, #​5540)
  • net: add UdpSocket::peek_sender() (#​5520)
  • sync: add RwLockWriteGuard::{downgrade_map, try_downgrade_map} (#​5527)
  • task: add JoinHandle::abort_handle (#​5543)
Changed
  • io: use memchr from libc (#​5558)
  • macros: accept path as crate rename in #[tokio::main] (#​5557)
  • macros: update to syn 2.0.0 (#​5572)
  • time: don't register for a wakeup when Interval returns Ready (#​5553)
Fixed
  • fs: fuse std iterator in ReadDir (#​5555)
  • tracing: fix spawn_blocking location fields (#​5573)
  • time: clean up redundant check in Wheel::poll() (#​5574)
Documented
  • macros: define cancellation safety (#​5525)
  • io: add details to docs of tokio::io::copy[_buf] (#​5575)
  • io: refer to ReaderStream and StreamReader in module docs (#​5576)

v1.26.0: Tokio v1.26.0

Compare Source

Fixed
Added
Changed
Internal Changes
Unstable
Documented

v1.25.3: Tokio v1.25.3

Compare Source

1.25.3 (December 17th, 2023)

Fixed
  • io: add budgeting to tokio::runtime::io::registration::async_io (#​6221)

v1.25.2: Tokio v1.25.2

Compare Source

1.25.2 (September 22, 2023)

Forward ports 1.20.6 changes.

Changed

v1.25.1: Tokio v1.25.1

Compare Source

1.25.1 (May 28, 2023)

Forward ports 1.18.6 changes.

Fixed
  • deps: disable default features for mio (#​5728)

v1.25.0: Tokio v1.25.0

1.25.0 (January 28, 2023)

Fixed
  • rt: fix runtime metrics reporting (#​5330)
Added
  • sync: add broadcast::Sender::len (#​5343)
Changed
  • fs: increase maximum read buffer size to 2MiB (#​5397)

v1.24.1: Tokio v1.24.1

Compare Source

This release fixes a compilation failure on targets without AtomicU64 when using rustc older than 1.63. (#​5356)

v1.24.0: Tokio v1.24.0

Compare Source

The highlight of this release is the reduction of lock contention for all I/O operations (#​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)

v1.23.1: Tokio v1.23.1

Compare Source

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).

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY] - autoclosedFeb 3, 2023
@renovaterenovateBot closed this Feb 3, 2023
@renovate
renovateBot deleted the renovate/crate-tokio-vulnerability branch February 3, 2023 23:59
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY] - autoclosedUpdate Rust crate tokio to 1.25 [SECURITY]Feb 4, 2023
@renovaterenovateBot reopened this Feb 4, 2023
@renovate
renovateBot restored the renovate/crate-tokio-vulnerability branch February 4, 2023 03:19
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 82bac3b to 49234d1CompareFebruary 4, 2023 06:27
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 4, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 49234d1 to 83ab5bdCompareFebruary 28, 2023 07:11
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.25 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 83ab5bd to 6f20fabCompareFebruary 28, 2023 12:10
@renovaterenovateBot changed the title Update Rust crate tokio to 1.25 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Feb 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6f20fab to fccc82cCompareMarch 10, 2023 11:50
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fccc82c to 6a26cb4CompareMarch 10, 2023 15:13
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 10, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 6a26cb4 to 9536fe9CompareMarch 15, 2023 16:41
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 15, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9536fe9 to 0080721CompareMarch 15, 2023 21:26
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 15, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.26 [SECURITY]Mar 24, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from c964c10 to 290e88dCompareMarch 24, 2023 21:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.26 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Mar 24, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 290e88d to bf5f18bCompareMay 28, 2023 09:09
@renovaterenovateBot changed the title Update Rust crate tokio to 1.28 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]May 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch 2 times, most recently from 025a5be to c5a34c5CompareMay 28, 2023 16:58
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.28 [SECURITY]May 28, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Jul 28, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from e616d09 to 3645bdaCompareJuly 28, 2023 12:46
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.29 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 3645bda to 5901aafCompareAugust 9, 2023 13:19
@renovaterenovateBot changed the title Update Rust crate tokio to 1.29 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5901aaf to c6e05dbCompareAugust 9, 2023 16:18
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from c6e05db to 38c1926CompareAugust 27, 2023 09:25
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Aug 27, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 38c1926 to 4ddece6CompareAugust 27, 2023 14:03
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Aug 27, 2023
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4ddece6 to 5c0a6d4CompareSeptember 19, 2023 12:55
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Sep 19, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5c0a6d4 to 5583a78CompareSeptember 19, 2023 16:49
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 5583a78 to eef4033CompareOctober 1, 2023 08:24
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from eef4033 to 617270cCompareOctober 1, 2023 10:31
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 1, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 617270c to 293665eCompareOctober 3, 2023 16:57
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 293665e to fd9f904CompareOctober 3, 2023 18:06
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 3, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from fd9f904 to 4d2acfcCompareOctober 9, 2023 07:05
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.32 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 4d2acfc to 9e92c84CompareOctober 9, 2023 10:36
@renovaterenovateBot changed the title Update Rust crate tokio to 1.32 [SECURITY]Update Rust crate tokio to 1.24 [SECURITY]Oct 9, 2023
@renovate
renovateBotforce-pushed the renovate/crate-tokio-vulnerability branch from 9e92c84 to 26629d5CompareNovember 16, 2023 12:52
@renovaterenovateBot changed the title Update Rust crate tokio to 1.24 [SECURITY]Update Rust crate tokio to 1.34 [SECURITY]Nov 16, 2023
@renovate

renovateBot commented Dec 14, 2023

Copy link
Copy Markdown
ContributorAuthor

⚠ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package tokio@1.23.0 --precise 1.24.2
error: package ID specification `tokio@1.23.0` did not match any packages
Did you mean one of these?
tokio@1.29.1

Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants