Bug 1223213 - VUL-0: CVE-2024-32650: atuin: rust-rustls: Infinite loop in rustls:conn:ConnectionCommon:complete_io() with proper client input
Summary: VUL-0: CVE-2024-32650: atuin: rust-rustls: Infinite loop in rustls:conn:Conne...
Status: CONFIRMED
Alias: None
Product: SUSE Security Incidents
Classification: Novell Products
Component: Incidents (show other bugs)
Version: unspecified
Hardware: Other Other
: P3 - Medium : Normal
Target Milestone: ---
Assignee: Soc Virnyl Estela
QA Contact: Security Team bot
URL: https://smash.suse.de/issue/402742/
Whiteboard: CVSSv3.1:SUSE:CVE-2024-32650:7.5:(AV:...
Keywords:
Depends on:
Blocks: CVE-2024-32650
  Show dependency treegraph
 
Reported: 2024-04-22 11:21 UTC by Carlos López
Modified: 2024-04-22 12:15 UTC (History)
2 users (show)

See Also:
Found By: ---
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Carlos López 2024-04-22 11:21:16 UTC
atuin embeds rust-rustls:

Rustls is a modern TLS library written in Rust. `rustls::ConnectionCommon::complete_io` could fall into an infinite loop based on network input. When using a blocking rustls server, if a client send a `close_notify` message immediately after `client_hello`, the server's `complete_io` will get in an infinite loop. This vulnerability is fixed in 0.23.5, 0.22.4, and 0.21.11.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2024-32650
https://bugzilla.redhat.com/show_bug.cgi?id=2276085
https://www.cve.org/CVERecord?id=CVE-2024-32650
https://github.com/rustls/rustls/commit/2123576840aa31043a31b0770e6572136fbe0c2d
https://github.com/rustls/rustls/commit/6e938bcfe82a9da7a2e1cbf10b928c7eca26426e
https://github.com/rustls/rustls/commit/f45664fbded03d833dffd806503d3c8becd1b71e
https://github.com/rustls/rustls/security/advisories/GHSA-6g7w-8wpp-frhj
Comment 1 Filippo Bonazzi 2024-04-22 11:49:56 UTC
We are embedding affected version 0.21.10 in our vendored dependencies archive at the moment:

```Cargo.lock
[[package]]
name = "rustls"
version = "0.21.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
...
```

I will revendor and submit to Factory.
Comment 2 Filippo Bonazzi 2024-04-22 12:12:48 UTC
That doesn't work as the vulnerable rustls versions is locked in the upstream atuin tarball Cargo.lock / Cargo.toml.

Upstream already contains a fix for this in git (https://github.com/atuinsh/atuin/commit/9ee1fb809f2a83bd8b039143e5013fa89a0784bc). So either we apply this patch or we wait for a fixed upstream release.

@uncomfyhalomacro can you do this?