RUSTSEC-2026-0340: Peer minimum ACK delay can panic quinn-proto when ACK_FREQUENCY transmission is enabled

Fechada
#17 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
55/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
rust
Domínio
backend, security

Direção de pesquisa

The advisory identifies AckFrequencyState::candidate_max_ack_delay and TransportConfig::ack_frequency_config, but gives no file or test path in this repository. First check how this project depends on and configures quinn-proto, then trace whether it enables ACK_FREQUENCY transmission. Done means the affected dependency behavior is addressed and a regression check covers peer minimum ACK delay exceeding the RTT-based maximum.

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

Descrição

Peer minimum ACK delay can panic quinn-proto when ACK_FREQUENCY transmission is enabled

Details
Package quinn-proto
Version 0.11.16
URL https://github.com/quinn-rs/quinn/pull/2868
Date 2026-09-14
Patched versions >=0.11.18
Unaffected versions <0.11.0

When sending ACK_FREQUENCY frames is enabled through
TransportConfig::ack_frequency_config(Some(..)), the peer's transport parameters could cause
AckFrequencyState::candidate_max_ack_delay to call Duration::clamp with a minimum greater
than its maximum, which panics.

For example, a peer advertising a min_ack_delay of 100,000 microseconds and a max_ack_delay
of 100 milliseconds passes transport parameter validation. At a 5 ms RTT, the lower bound of the
clamp becomes 100 ms while the upper bound is 25 ms, violating the precondition of clamp and
panicking while driving the connection. Both automatically derived and explicitly configured
maximum ACK delays use this calculation.

Sending ACK_FREQUENCY frames is disabled by default, so only endpoints that opt in are affected.

The flaw was corrected in 0.11.18 by computing the delay with explicit minimum and maximum bounds
instead of clamp.

Thanks to @zerox80 for reporting this issue.

See advisory page for additional details.

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

Preparar o ambiente

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/stackable-odbc-trino

Todas as issues de stackabletech/stackable-odbc-trino

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.