RUSTSEC-2026-0349: Unauthenticated ServerHello can downgrade later connections to classical key exchange
還沒有人認領這個 Issue。
評估
研究方向
受影響的相依套件是 rustls,在 workspace 中固定為 0.23.45。先從 Cargo.toml 和 Cargo.lock 開始,查看 rustls 在哪裡被解析,接著檢查依賴樹中是否仍有 crate 引入存在漏洞的版本。將 rustls 升級到 0.23.46 或更高版本,執行 cargo build 和 cargo test,並確認 lock 檔案現在顯示已修補的版本。當已修補的版本成功解析且測試通過時,即完成。
由索引模型根據 Issue 內容生成。
描述
Unauthenticated ServerHello can downgrade later connections to classical key exchange
| Details | |
|---|---|
| Package | rustls |
| Version | 0.23.45 |
| URL | https://github.com/rustls/rustls/pull/3355 |
| Date | 2026-10-14 |
| Patched versions | >=0.23.46 |
The client recorded the server-selected key exchange group for each server
name when processing the ServerHello, before the server was authenticated.
This record is used to predict which key share to send in future ClientHellos
to that server name.
A network attacker can answer one connection attempt with a ServerHello
selecting X25519, and then close the connection. Later ClientHellos for that
name carry only an X25519 key share, while supported_groups still lists
X25519MLKEM768 first. If the genuine server accepts that share rather than
sending a HelloRetryRequest for its preferred hybrid group, the handshake
completes with classical-only key exchange and no error. This persists for as
long as the entry stays in the client's session store.
The impact is loss of post-quantum confidentiality for affected connections
("harvest now, decrypt later"). There is no key compromise and no
authentication bypass.
The following are not affected:
- connections to servers which send a HelloRetryRequest for their preferred group,
- clients with resumption disabled (as nothing is stored), and
- other server names.
This behaviour is discussed in
draft-ietf-tls-key-share-prediction,
so the practical impact depends largely on server policy.
See advisory page for additional details.
- 主要語言
- Rust
- 星號
- 2
- 分支
- 0
- 平均合併
- 1 天 15 小時
- 30 天內合併 PR
- 3
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
stackabletech/stackable-odbc-trino 的其他 Issue
-
難度 2/5 1-3 小時 新手友好度 67/100
-
難度 1/5 1-3 小時 新手友好度 62/100
-
難度 4/5 3-5 天 新手友好度 45/100
-
難度 3/5 1-2 天 新手友好度 20/100
-
難度 2/5 1-3 小時 新手友好度 55/100
查看 stackabletech/stackable-odbc-trino 的全部 Issue
相似的 Issue
-
area/backends bug session-analysis
難度 2/5 1-3 小時 新手友好度 69/100
維護者通常 1 天內回覆
-
docs good first issue
難度 2/5 1-3 小時 新手友好度 75/100
-
crash
難度 2/5 1-3 小時 新手友好度 65/100
維護者通常 2 天內回覆
-
難度 1/5 1 小時以內 新手友好度 65/100
aaif-goose/goose#13125 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 74/100
維護者通常 1 天內回覆