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

Abierto Apto para principiantes
#37 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
1/5
Tiempo estimado
Menos de una hora
Aptitud para principiantes
62/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
rust
Área
security

Línea de trabajo

La crate vulnerable es quinn-proto en la versión 0.11.17, y la corrección consiste en llegar a la 0.11.19 o posterior. Revisa Cargo.lock para ver la versión bloqueada y ejecuta cargo tree -i quinn-proto para ver qué dependencia la trae. Luego ejecuta cargo update -p quinn-proto (o sube la versión de la crate padre si está fijada) y vuelve a compilar. Está listo cuando el lockfile muestra 0.11.19 o superior y cargo build y cargo test pasan.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Rust
Estrellas
0
Forks
2
Merge medio
14 d 2 h
PR fusionados (30 d)
1

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de stackabletech/postgresql-trino-gateway

Todos los issues de stackabletech/postgresql-trino-gateway

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.