CVE-2026-33721MapServer是一个用于开发基于Web的GIS应用程序的系统。在4.2版本至8.6.1之前的版本中,其SLD(样式图层描述符)解析器存在堆缓冲区溢出写入漏洞。未经身份认证的远程攻击者可以通过发送包含ColorMap/Categorize结构中超过100个Threshold元素的特制SLD请求(通常通过WMS GetMap的SLD_BODY参数),导致MapServer进程崩溃,从而引发拒绝服务。
该漏洞源于MapServer在解析SLD文档时,对ColorMap或Categorize结构内部的Threshold元素数量缺乏严格的限制。当解析器处理超过100个此类元素时,会触发堆缓冲区溢出写入。攻击者无需用户交互或身份认证,只需构造一个恶意的WMS GetMap请求,并在SLD_BODY参数中嵌入包含大量Threshold元素的XML数据。由于校验缺失,程序在写入缓冲区时会覆盖相邻内存区域,最终导致服务进程异常终止(DoS)。虽然该漏洞主要影响可用性,但堆溢出在特定条件下理论上存在代码执行风险,目前主要表现为服务崩溃。