深入解析MS11-083漏洞利用性评估:TCP/IP堆栈中的引用计数器问题

本文详细分析了MS11-083漏洞的技术细节,包括TCP/IP堆栈中引用计数器的不平衡问题、整数溢出导致的四种可能场景,以及微软对该漏洞利用性的评估和Exploitability Index的分配。

评估MS11-083的利用性

本月我们发布了MS11-083,以解决TCP/IP堆栈中一个外部发现的引用计数器问题。在此,我们想进一步提供有关此漏洞利用性的信息。

漏洞详情

该漏洞出现在特定场景中,攻击者可以向一个随机端口发送大量特制的UDP数据包,该端口没有服务监听。在处理这些网络数据包时,观察到某些使用的结构被引用但未正确解除引用。这种不平衡的引用计数最终可能导致引用计数器的整数溢出。

引用计数环绕的影响

通过上述漏洞,当系统被网络数据包淹没时,结构中的引用计数器将不断递增并最终环绕。

如果在计数器环绕到零后立即发生解除引用,该结构将被释放。根据时间条件,可能出现四种情况:

  • 内存仍然映射并包含旧数据。不会导致崩溃,系统正常工作。
  • 内存未映射,系统在引用时崩溃。这导致系统拒绝服务。
  • 内存被重新分配用于相同的结构。不会导致崩溃,系统正常工作。
  • 内存被重新分配用于不同的结构。这可能导致系统崩溃,或者如果存在攻击者控制的数据,可能导致内存损坏或远程代码执行。

利用性评估

虽然最后一种情况理论上可能导致远程代码执行(RCE),但我们认为利用此漏洞实现RCE是困难的,考虑到所需的网络数据包类型通常在边界被过滤,结构释放和下一次访问之间的时间窗口很小,并且需要大量数据包才能完成攻击。因此,我们为此漏洞分配了“2”的利用性指数。

作者:MSRC工程的Ali Rahbar、Mark Wodrich,以及IDC的Gangadhara Swamy。

特别感谢MSRC的Jeremy Tinder。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计