CVE-2025-64331Suricata是一款开源的网络入侵检测系统(IDS)、入侵防御系统(IPS)和网络安全管理(NSM)引擎,由OISF(开放信息安全基金会)开发和维护。CVE-2025-64331是一个在Suricata中发现的栈溢出漏洞,存在于处理大型HTTP文件传输的场景中。该漏洞的触发条件是用户手动增加了HTTP响应体限制(http.response.body-limit参数),并且启用了可打印HTTP体的日志记录功能(http-body-printable选项)。在同时满足这两个条件的情况下,当Suricata处理大型HTTP响应时,攻击者可以通过构造包含大量数据的HTTP响应来触发栈溢出,导致服务崩溃或潜在的代码执行风险。值得注意的是,HTTP体日志记录功能在默认配置下是禁用的,这降低了该漏洞的普遍影响范围。
该漏洞的根本原因在于Suricata处理HTTP响应体时的内存管理问题。当用户配置了较大的http.response.body-limit值并启用http-body-printable日志记录后,系统会在栈上分配固定大小的缓冲区来存储可打印的HTTP体数据。然而,在处理大型HTTP文件传输时,如果HTTP响应体的大小超过了栈缓冲区的容量,就会发生缓冲区溢出。具体来说,漏洞发生在app-layer-http.c的HTTP日志处理模块中,当调用printable_bodyline函数将HTTP响应内容复制到栈缓冲区时,缺乏充分的大小验证。攻击者可以通过构造包含大量可打印字符的HTTP响应(如大型HTML页面、JSON数据或文件内容)来触发此漏洞。成功利用此漏洞可导致Suricata进程崩溃,造成IDS/IPS功能中断,在某些情况下还可能实现代码执行。CVSS 3.1评分7.5(高危),攻击向量为网络层面,无需认证和用户交互即可利用。