GeoScene Portal 4.1 SnakeYAML安全漏洞解决方案
软件版本
GeoScene Portal版本:4.1
漏洞名称
SnakeYAML 反序列化漏洞(CVE-2022-1471)
漏洞描述
SnakeYAML 是一个将 YAML 文件与 Java 对象相互转换的开源代码库。SnakeYAML 存在安全漏洞,该漏洞源于其Constructor()类由于没有对反序列化的类型进行限制,导致攻击者提供恶意yaml内容可以实现远程代码执行。
漏洞位置
D:\GeoScene\Portal\framework\runtime\ds\framework\runtime\opensearch\lib\snakeyaml-1.31.jar
D:\GeoScene\Portal\framework\webapps\arcgis#portaladmin\WEB-INF\lib\snakeyaml-1.31.jar
D:\GeoScene\Portal\framework\webapps\arcgis#sharing\WEB-INF\lib\snakeyaml-1.33.jar
D:\GeoScene\Portal\framework\webapps\geoscene\WEB-INF\lib\snakeyaml-1.33.jar
解决方案
snakeyaml-1.31.jar是OpenSearch的一部分,升级OpenSearch到2.19.3即可。
OpenSearch下载地址:https://opensearch.org/artifacts/by-version/#release-2-19-3
1、停止GeoScene Portal服务。
2、下载后解压到C:\GeoScene\Portal\framework\runtime\ds\framework\runtime\,替换掉原来的opensearch。(修复第一个位置的漏洞)
3、opensearch自带snakeyaml-2.1.jar,把第2、3、4个位置的snakeyaml-1.xx.jar替换为snakeyaml-2.1.jar。
4、启动GeoScene Portal服务。(启动时间可能比较长,要有耐心)
说明
1、第一个位置直接升级为snakeyaml-2.x.jar会报这个错误:
"warning: no-jdk distributions that do not bundle a JDK are deprecated and will be removed in a future release"
warning: no-jdk distributions that do not bundle a JDK are deprecated and wil be removed in a future release
'Exception in thread "main" java.lang.NosuchMethodError: void org,yamlsnakeyaml,parser.Parserlmp.<init>(org.yaml.snakeyaml.reader.streamReader
at com.fasterxml.jackson.dataformat.yaml.YAMLParser.<init>(YAMLParser.java:178).yaml.YAMLFactory.
2、OpenSearch升级到3.1.0报这个错误:
OpenSearch requires Java 21; your Java version from [D:\GeoScene\Portal\framework\runtime\jre] does not meet this requirement