RUSTSEC-2026-0524: Long Retry token can panic or exhaust memory in a QUIC client

Aperta Adatta ai principianti
#37 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
1/5
Tempo stimato
Meno di un'ora
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
rust
Ambito
security

Direzione di ricerca

La crate vulnerabile è quinn-proto alla versione 0.11.17, e la correzione consiste nel raggiungere la 0.11.19 o successiva. Controlla in Cargo.lock la versione bloccata ed esegui cargo tree -i quinn-proto per vedere quale dipendenza la include. Poi esegui cargo update -p quinn-proto (oppure aggiorna la crate padre se è bloccata) e ricompila. È fatto quando il lockfile mostra 0.11.19 o superiore e cargo build e cargo test passano.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Long Retry token can panic or exhaust memory in a QUIC client

Details
Package quinn-proto
Version 0.11.17
URL https://github.com/quinn-rs/quinn/commit/3bba467893ceff64d6cda0b3a2c51a1429e10372
Date 2026-09-30
Patched versions >=0.11.19
Unaffected versions <0.11.0

A client kept the token from a Retry packet without any length limit and put it into the header of every Initial packet it sent afterwards. Initial datagrams are 1200 bytes. When the token and connection IDs left no room for the minimum payload, PacketBuilder::new computed a minimum packet size larger than the maximum, which only a debug assertion checked. On the next poll_transmit, debug builds panic, and release builds try to allocate more than 10 GiB in one call. With longer tokens the allocation fails and the process aborts.

A matching Retry packet can be built from the client's first Initial alone. The attacker can therefore be the server being contacted, or anyone who sees that Initial and can answer before the server does. Every application that makes outgoing connections with quinn-proto is affected, including all quinn clients. Servers do not process Retry packets.

The fix closes the connection with PROTOCOL_VIOLATION when an Initial token leaves too little room for frames. That covers Retry tokens and cached address-validation tokens, since both come from the peer. It also reserves room for CONNECTION_CLOSE after large Initial headers. Both changes are in 0.11.19.

See advisory page for additional details.

Lingua principale
Rust
Stelle
0
Fork
2
Merge medio
14g 2h
PR unite (30g)
1

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di stackabletech/postgresql-trino-gateway

Tutte le issue di stackabletech/postgresql-trino-gateway

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.