Spring Framework 4.3.16/5.0.5 STOMP 漏洞:正则表达式输入验证导致拒绝服务攻击
Spring Framework 是一个开源的 Java 应用程序框架,用于构建企业级应用程序。STOMP (Simple Text Oriented Messaging Protocol) 是一种基于文本的消息传递协议,常用于实现实时通信功能。
在 Spring Framework 版本 4.3.16 和 5.0.5 中,存在一个 STOMP Regular Expression 输入验证漏洞。该漏洞允许攻击者通过发送恶意的 STOMP 消息来触发一个正则表达式,导致应用程序消耗大量 CPU 资源,造成拒绝服务 (DoS) 攻击。
具体来说,当 Spring Framework 在处理 STOMP 消息时,会使用一个正则表达式来验证消息的头部信息,以确保其格式正确。然而,恶意攻击者可以构造一个特定的 STOMP 消息,其中的头部信息包含一系列重复的字符,以触发正则表达式的回溯 (backtracking) 机制。由于回溯的复杂度是指数级的,这将导致应用程序消耗大量 CPU 资源,并可能导致服务不可用。
为了解决这个漏洞,Spring Framework 的开发者在后续的版本中更新了正则表达式的模式,以防止回溯攻击。因此,如果你使用的是受影响的 Spring Framework 版本,建议升级到最新的版本,以修复该漏洞。同时,你还可以考虑限制 STOMP 消息的大小和复杂度,以减少受到攻击的风险。
原文地址: https://www.cveoy.top/t/topic/qm3p 著作权归作者所有。请勿转载和采集!