PT-2024-35460 · Ngtcp2 · Ngtcp2

Tatsuhiro-T

·

Publicado

2024-11-25

·

Atualizado

2025-02-11

·

CVE-2024-52811

CVSS v2.0

8.5

Alta

VetorAV: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

BDU:2025-02261
CVE-2024-52811
GHSA-4GMV-GF46-R4G5
OPENSUSE-SU-2025:14766-1

Produtos afetados

Ngtcp2