加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 服务器 > 安全 > 正文

Windows IPv6 协议栈内的安全漏洞

发布时间:2022-08-04 11:20:29 所属栏目:安全 来源:互联网
导读:微软在10月的补丁日修复了87个安全漏洞,其中一个是Windows IPv6 协议栈中的安全漏洞。漏洞CVE编号为cve-2020-16898,CVSS评分为9.0分。攻击者可以利用恶意伪造的包在远程系统上执行任意代码。 由于Windows TCP/IP 栈不当处理使用Option Type 25 (Recursive
   微软在10月的补丁日修复了87个安全漏洞,其中一个是Windows IPv6 协议栈中的安全漏洞。漏洞CVE编号为cve-2020-16898,CVSS评分为9.0分。攻击者可以利用恶意伪造的包在远程系统上执行任意代码。
 
  由于Windows TCP/IP 栈不当处理使用Option Type 25 (Recursive DNS Server Option) 和length 域为偶数的ICMPv6 Router Advertisement 包,会引发该漏洞。在该option 中,length 的计数是递增8字节,所以length为3时,总的长度应该是24字节。该option本身含有5个域:Type, Length, Reserved, Lifetime, Addresses of IPv6 Recursive DNS Servers。前4个域总共只有8个字节,而最后一个域含有IPv6 地址数目的变量,每个IPv6 地址为16字节。根据RFC 8106,length 域是大于等于3的奇数:
 
  当IPv6 主机通过RA 消息接收DNS option时,会按照如下规则处理相关的option:
 
  DNS option的有效性通过length 域来检查。RDNSS option 中的Length field的值大于等于最小值3,并满足(Length - 1) % 2 == 0。
 
  如果是一个偶数的length 值,Windows TCP/IP 栈就会错误地按8字节增加网络缓存。这是因为栈内部是以16字节递增的,无法处理不符合RFC 标准的length值。栈中错误匹配结果会将当前option 的最后8字节作为第二个option 的开始,引发栈溢出和潜在的远程代码执行。
 
  该漏洞比较大的影响是Windows 10用户,因为启用了IPv6的服务器还比较少。
 
  目前,微软已经发布了补丁,如果无法安装补丁,那么比较好的办法就是禁用IPv6。此外,还可以在网络边界拦截或丢弃ICMPv6 Router Advertisements。从PoC的情况来看,Windows Defender和Windows防火墙无法拦截PoC。目前还不清楚攻击在使用6to4 或 Teredo 这样的技术的网络中是否可以成功。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读