CVE漏洞中文网

0DayBank一个专门收集整理全球互联网漏洞的公开发布网站
  1. 首页
  2. CVE
  3. 正文

CVE-2024-52811丨记录到 qlog 之前未验证 Acks 导致 ngtcp2 中的缓冲区溢出

2024年11月26日 196点热度 0人点赞 0条评论
记录到 qlog 之前未验证 Acks 导致 ngtcp2 中的缓冲区溢出 (CVE-2024-52811)

CVE编号

CVE-2024-52811

利用情况

暂无

补丁情况

N/A

披露时间

2024-11-26
漏洞描述
ngtcp2项目是一个在C语言中实现IETF QUIC协议的努力。在受影响的版本中,ACK在写入qlog之前没有经过验证,这导致了缓冲区溢出的问题。在`ngtcp2_conn::conn_recv_pkt`的ACK处理中,如果ACK已经在负载中被处理过,新加入的逻辑会跳过`conn_recv_ack`。然而,这导致我们也跳过了`ngtcp2_pkt_validate_ack`。被跳过的ACK仍然会被写入qlog。漏洞出现在`ngtcp2_qlog::write_ack_frame`中。现在有可能使用无效的ACK来触发这段代码,假设`largest_ack=0`且`first_ack_range=15`。执行`largest_ack - first_ack_range`会导致整数溢出,溢出长度为20个字符。然而,ngtcp2的qlog代码假定写入的数字是有符号整数,只考虑了19个字符的额外空间(参见`NGTCP2_QLOG_ACK_FRAME_RANGE_OVERHEAD`)。因此,我们会覆盖缓冲区,导致堆溢出。这是一个高优先级的漏洞,如果启用qlog,可能会影响到许多用户。默认情况下,qlog是禁用的。由于其开销较大,它主要用于调试目的,但实际使用情况未知。ngtcp2 v1.9.1修复了此漏洞,建议用户进行升级。无法升级的用户不应启用qlog。
解决建议
建议您更新当前系统或软件至最新版,完成漏洞的修复。
参考链接
 https://access.redhat.com/security/cve/CVE-2024-52811
 https://github.com/ngtcp2/ngtcp2/commit/44b662bd139c23fee1703bf256c13349e2e624a1
 https://github.com/ngtcp2/ngtcp2/commit/e550c1a414318d0f3f01fca1a621ae0b0428ca15
 https://github.com/ngtcp2/ngtcp2/security/advisories/GHSA-4gmv-gf46-r4g5
标签: 暂无
最后更新:2024年11月26日

小助手

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

COPYRIGHT © 2024 www.pdr.cn CVE漏洞中文网. ALL RIGHTS RESERVED.

鲁ICP备2022031030号

联系邮箱:wpbgssyubnmsxxxkkk@proton.me