CVE-2018-25282Nmap 7.70版本中存在一个拒绝服务漏洞,该漏洞源于ZenMap在处理导入的扫描结果XML文件时,未正确限制XML实体的递归扩展。本地攻击者可以利用此漏洞,通过构造包含恶意嵌套实体定义的XML文件,诱导受害者通过ZenMap导入功能打开该文件,从而触发指数级实体扩展攻击。这将导致应用程序消耗大量系统资源,最终造成程序崩溃或系统无响应。
该漏洞属于典型的XML实体扩展攻击,即“Billion Laughs Attack”。在Nmap 7.70集成的ZenMap图形界面工具中,扫描导入功能负责解析XML格式的扫描数据。由于解析器缺乏对XML内部实体递归深度和扩展总长度的安全校验,攻击者可以精心制作一个包含多层嵌套实体引用的恶意XML文件。当用户通过ZenMap导入该文件时,解析器会尝试完全展开实体。例如,定义实体层层嵌套引用,导致最终展开后的数据量呈指数级爆炸增长。这种操作会瞬间耗尽CPU周期和内存资源,导致ZenMap进程挂起或崩溃,实现拒绝服务攻击。