ForescoutResearchLab和JFrog安全研究人员发现了14个影响NicheStackTCP/IP协议栈的安全漏洞,这14个安全漏洞被命名为INFRA:HALT。攻击者利用这些漏洞可以实现远程代码执行、DoS、信息泄露、TCP欺骗和DNS缓存中毒。NicheStack是许多关键基础设施单元中的常见OT设备,因此大多数OT设备供应商都受到这些漏洞的影响。INFRA:HALTVulnerabilities这14个漏洞包括远程代码执行漏洞、DoS、信息泄露、TCP欺骗等,影响DNSv4、HTTP、TCP、ICMP等模块,其中2个CVSS评分超过9分.(1)CVE-2020-25928该漏洞是在分析DNS响应时不检查单个DNS应答时不检查响应数据长度(responsedatalength)字段导致的安全漏洞,可能导致OOB-R/W,从而是一个远程代码执行漏洞,影响DNSv4模块,CVSS评分为9.8。(2)CVE-2021-31226该漏洞是在分析HTTPPOST请求时,未进行大小验证导致的堆缓冲区溢出漏洞。这是一个远程代码执行漏洞,影响HTTP模块。CVSS评分为9.1。(3)CVE-2020-25767该漏洞是在解析DNS域名时,没有检查压缩指针是否在数据包边界内,可能导致OOB-R,最终导致DoS攻击和信息泄露。此漏洞的CVSS评分为7.5,影响DNSv4模块。(4)CVE-2020-25927该漏洞是在解析DNS响应时,没有检查数据包头中的具体查询或响应编号是否与DNS数据包中的查询或响应一致而导致的安全问题,可能导致拒绝服务攻击。CVSS评分为8.2。(5)CVE-2021-31227该漏洞是在分析HTTPPOST请求时,签名整数比较不正确导致的缓冲区溢出漏洞,可能导致DoS攻击,影响HTTP模块。CVSS评分为7.5。(6)CVE-2021-31400TCP带外应急数据处理函数会在带外应急数据的结束指针指向TCP包外的数据时调用panic函数。如果panic函数没有解除trap调用,就会触发无限循环,最终导致DoS攻击。该漏洞影响TCP模块,CVSS评分为7.5。(7)CVE-2021-31401TCP头处理代码不处理IP长度(头+数据)的长度。如果攻击者伪造一个IP数据包,可能会出现整数溢出,因为IP数据的长度是用整个IP数据包的长度减去头部的长度计算出来的。该漏洞影响TCP模块,CVSS评分为7.5。(8)CVE-2020-35683处理ICMP数据包的代码依赖于IP负载的大小来计算ICMP校验和,但不检查IP负载的大小。当IPpayloadsize的设定值小于IPheader的大小时,ICMPchecksum的计算函数可能会读出越界,造成DoS攻击。该漏洞影响ICMP模块,CVSS评分为7.5。(9)CVE-2020-35684处理TCP数据包的代码依赖于IP负载的大小来计算TCP负载的长度。当IPpayloadsize的设定值小于IPheader的大小时,ICMPchecksum的计算函数可能会读出越界,造成DoS攻击。该漏洞影响TCP模块,CVSS评分为7.5。(10)CVE-2020-3568此漏洞是由于TCPISN生成是以可预测的方式生成的。该漏洞可能导致TCP欺骗并影响TCP模块,CVSS评分为7.5。(11)CVE-2021-27565在收到未知的HTTP请求时出现混乱。该漏洞可能导致DoS攻击,该漏洞影响HTTP模块,CVSS评分为7.5。(12)CVE-2021-36762TFTP报文处理函数无法保证文件名是否为非终结符,之后调用strlen()可能会导致协议报文缓存越界,造成DoS攻击。该漏洞影响TFTP模块,CVSS评分为7.5。(13)CVE-2020-25926该漏洞是由于DNS客户端没有设置足够多的随机事务ID导致的,可能导致DNS缓存中毒攻击。该漏洞影响DNSv4模块,CVSS评分为4。(14)CVE-2021-31228攻击者可以预测DNS查询的源端口,因此可以将伪造的DNS请求包作为有效的发送给DNS客户端响应请求,这可能会触发DNS缓存中毒攻击。该漏洞影响DNSv4模块,CVSS评分为4分。该漏洞影响NicheStack4.3之前的所有版本,包括NicheLite。全球大多数工业自动化公司都使用NicheStackTCP/IP协议栈,因此有200多家设备制造商受到影响。研究人员查询了Shodan,发现了6,400多个运行NicheStack协议栈的设备实例。其中6360运行HTTP服务器,其他大部分运行FTP、SSH或Telnet。图1Shodan查询结果从行业来看,受影响最大的是流程制造业,其次是零售业和装配制造业。图2运行NicheStack的设备行业分布
