代码审计——SpringBoot SpEL 表达式注入漏洞
内容提要
SpringBoot的Whitelabel错误页面存在SpEL注入漏洞,攻击者可通过特定参数触发。受影响版本为1.1.0-1.1.12和1.2.0-1.2.7,建议升级至1.3.1及以上版本。
关键要点
-
SpringBoot的Whitelabel错误页面存在SpEL注入漏洞。
-
漏洞发生在处理报错参数时,使用了递归处理和SpEL表达式解析。
-
受影响的版本包括1.1.0-1.1.12和1.2.0-1.2.7。
-
建议用户升级至1.3.1及以上版本以修复漏洞。
-
攻击者可以通过特定的payload触发漏洞,执行任意代码。
-
漏洞的触发点在于错误页面的message占位符处理。
-
补丁通过创建NonRecursivePropertyPlaceholderHelper类来防止递归解析。
-
补丁的详细信息可以在GitHub上找到。
延伸解读
漏洞影响范围
该SpEL注入漏洞影响了多个SpringBoot版本,具体为1.1.0至1.1.12和1.2.0至1.2.7。使用这些版本的开发者需特别注意,因攻击者可通过特定参数触发漏洞,执行任意代码,可能导致严重的安全隐患。
补丁的重要性
建议用户尽快升级至1.3.1及以上版本,以修复此漏洞。补丁通过引入NonRecursivePropertyPlaceholderHelper类来防止递归解析,从而增强系统的安全性。未及时更新可能使应用程序面临被攻击的风险。
漏洞触发机制
漏洞的触发机制主要在于错误页面的message占位符处理。攻击者可以利用特定的payload输入,导致SpEL引擎解析并执行恶意代码。因此,开发者在处理用户输入时需格外谨慎,避免直接将用户输入传递给解析引擎。
延伸问答
SpringBoot的Whitelabel错误页面是什么漏洞?
这是一个SpEL注入漏洞,攻击者可以通过特定参数触发,执行任意代码。
哪些版本的SpringBoot受到此漏洞影响?
受影响的版本包括1.1.0-1.1.12和1.2.0-1.2.7。
如何修复SpringBoot的SpEL注入漏洞?
建议用户升级至1.3.1及以上版本以修复漏洞。
漏洞是如何被触发的?
漏洞通过错误页面的message占位符处理,攻击者输入特定payload触发SpEL解析。
补丁是如何防止漏洞的?
补丁创建了NonRecursivePropertyPlaceholderHelper类,防止递归解析。
可以在哪里找到补丁的详细信息?
补丁的详细信息可以在GitHub上找到。