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

Aberta Para iniciantes
#37 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
62/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
security

Direção de pesquisa

A crate vulnerável é quinn-proto na versão 0.11.17, e a correção é chegar à versão 0.11.19 ou posterior. Verifique em Cargo.lock a versão travada e execute cargo tree -i quinn-proto para ver qual dependência a puxa. Depois execute cargo update -p quinn-proto (ou atualize a crate pai se ela estiver fixada) e recompile. Está pronto quando o lockfile mostra 0.11.19 ou superior e cargo build e cargo test passam.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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.

Linguagem predominante
Rust
Estrelas
0
Forks
2
Merge médio
14d 2h
PRs com merge (30d)
1

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de stackabletech/postgresql-trino-gateway

Todas as issues de stackabletech/postgresql-trino-gateway

Issues semelhantes

Mais issues de Rust

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.