PT-2024-35460 · Ngtcp2 · Ngtcp2
Tatsuhiro-T
·
Publicado
2024-11-25
·
Atualizado
2025-02-11
·
CVE-2024-52811
CVSS v2.0
8.5
Alta
| Vetor | AV:N/AC:L/Au:N/C:N/I:P/A:C |
Nome do software vulnerável e versões afetadas
Versões do ngtcp2 anteriores à 1.9.1
Descrição
O problema decorre da falta de validação dos acks antes de serem gravados no qlog, o que leva a um estouro de buffer. Isso ocorre na função
ngtcp2 conn::conn recv pkt ao lidar com um ACK, onde a nova lógica ignora conn recv ack se um ack já tiver sido processado na carga útil, mas também ignora inadvertidamente ngtcp2 pkt validate ack. Como resultado, um ack inválido pode ser gravado no qlog, causando potencialmente um underflow de inteiro quando largest ack=0 e first ack range=15. Esse underflow leva a um estouro de heap porque o código do qlog do ngtcp2 assume que o número gravado é um inteiro com sinal e considera apenas 19 caracteres de sobrecarga. A função ngtcp2 qlog::write ack frame é onde o bug se manifesta. Embora o qlog esteja desativado por padrão devido à sua sobrecarga e provavelmente seja usado para fins de depuração, o uso real é desconhecido, e isso poderia impactar muitos usuários caso eles ativem o qlog.Recomendações
Para versões anteriores à 1.9.1, atualize para a versão 1.9.1 para corrigir o bug.
Para usuários que não possam atualizar, não ative o qlog como uma solução temporária para minimizar o risco de exploração.
Exploit
Correção
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Enumeração de Fraquezas
Identificadores relacionados
Produtos afetados
Ngtcp2