English
 
查看详细details
您当前所在位置:首页 奥航智讯 行业最新动态 查看详细
行业最新动态 会员企业动态 GDPR
DEF CON 21:IP地址验证漏洞影响Go和Rust语言
文章来源:奥航智讯  作者:SCA  发布时间:2021-08-16  浏览次数:762


 


net库爆混合格式的IP地址验证漏洞,影响Go和Rust语言。


"net"库是Go和Rust语言中常用的库函数。近日,Cheng Xu等研究人员在DEF CON大会介绍了Go和Rust语言中的net模块安全漏洞。漏洞CVE编号分别为CVE-2021-29922 (Rust)和CVE-2021-29923 (Golang),漏洞产生的原因是net处理混合格式的IP地址方式上存在问题,即当数字IPv4地址中以0开头时会触发漏洞。该漏洞影响Go和Rust语言。依赖net库的应用可能会受到服务器端请求伪造(SSRF)和远程文件包含(RFI)攻击。


研究人员在GitHub上搜索关键字"import net",发现依赖该net库的GO语言程序就有超过400万个。


IP地址可以以多种形式来表示,其中包括十六进制数和整数,不过一般我们看到的IPv4地址都是整数格式的,比如104.20.59.209。如果标称八进制就是0150.0024.0073.0321。


Chrome自动补全0开头的IP地址


在net库中,所有IP地址开头的0都会被移除和丢弃。根据IETF的原始说明,如果IPv4地址的前缀有0,那么可以理解为是八进制。但是Go和rust语言的net模块都忽略了这一点,并将其作为十进制数来处理。


因此,如果开发者使用net库来验证IP地址是否属于某个特定的范围,比如访问控制列表ACL中的IP列表,结果可能就会出现错误。


Rust net模块将混合格式的IP地址以十进制处理的PoC代码


这一错误处理可能会引发应用中服务器端请求伪造(SSRF)和远程文件包含(RFI)攻击。


受影响的应用和语言


Go和Rust并不是唯二受该漏洞影响的语言。该混合格式IP地址验证漏洞之前就影响了Python的ipaddress库(CVE-2021-29921)、netmask实现(CVE-2021-28918、CVE-2021-29418)和其他库函数。


目前,golang的net模块已经在v 1.17版本中发布了该漏洞的安全补丁。Rust也在v 1.53.0版本中包含了该漏洞的安全补丁。(文章来源:嘶吼专业版)




 
奥航智讯官方微信
联系我们 | CONTACT US
  • 公司地址:上海市浦东新区 周康路26号 周浦万达E栋1016室
  • 联系电话:021-51099961
  • 企业邮箱:contact@smart-alliance.com
  • W  E  B  :  www.smart-alliance.com
在线留言 | FEEDBACK
Copyright 2012-2024 SC Alliance, All Rights Reserved        沪ICP备14020833号-1        上海奥航智能科技有限公司