Bug 1223213

Summary: VUL-0: CVE-2024-32650: atuin: rust-rustls: Infinite loop in rustls:conn:ConnectionCommon:complete_io() with proper client input
Product: [Novell Products] SUSE Security Incidents Reporter: Carlos López <carlos.lopez>
Component: IncidentsAssignee: Soc Virnyl Estela <uncomfy+openbuildservice>
Status: CONFIRMED --- QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: carlos.lopez, filippo.bonazzi
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/402742/
Whiteboard: CVSSv3.1:SUSE:CVE-2024-32650:7.5:(AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H)
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Bug Depends on:    
Bug Blocks: 1223211    

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?