GeoScene Portal 4.1 SnakeYAML反序列化漏洞完整修复方案

2025-07-28 李腾 98 次阅读 0 次点赞
本文针对GeoScene Portal 4.1中存在的SnakeYAML反序列化漏洞(CVE-2022-1471)提供完整解决方案。通过升级OpenSearch至2.19.3版本并替换相关jar文件,可有效修复该高危漏洞。文档包含详细的漏洞位置说明、分步操作指南、日志查看方法以及常见错误解决方案,特别提醒用户注意该方案无法解决Netty安全漏洞,需参考其他文档进行完整修复。

SnakeYAML 是一个将 YAML 文件与 Java 对象相互转换的开源代码库。由于GeoScene Portal 4.1使用的opensearch版本较低,这个版本的opensearch使用了多个snakeyaml-1.31.jar,导致了该漏洞。如果直接升级snakeyaml.jar会导致GeoScene Portal无法启动问题,通过升级OpenSearch到2.19.3可以解决该漏洞。

重要提示

该文档已过期,把 OpenSearch到2.19.3虽然能解决该漏洞。但是,无法解决Netty安全漏洞。最新文档请参考GeoScene Portal 4.1 Netty安全漏洞解决方案

软件版本

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服务。(启动时间可能比较长,要有耐心)

日志文件

如果你升级OpenSearch到2.19.3后,GeoScene Portal无法启动,可以查看以下日志文件。我们将在常见问题中,对每种错误进行解释。

D:\GeoScene\Portal\framework\runtime\ds\usr\logs\WINGEOS.GISONLINE.CN\opensearchlog\out.txt

常见问题

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. 

解决方案:不要直接替换snakeyaml-1.x.jar为snakeyaml-2.x.jar,改为升级升级OpenSearch到2.19.3。

2、OpenSearch升级到3.1.0报这个错误:

OpenSearch requires Java 21; your Java version from [D:\GeoScene\Portal\framework\runtime\jre] does not meet this requirement

解决方案:OpenSearch 3.x所需JDK版本比较高,改为升级到 OpenSearch到2.19.3。

3、'opensearch' 不是内部或外部命令,也不是可运行的程序或批处理文件。

注意要下载OpenSearch v2.19.3进行替换,而不是OpenSearch Dashboard v2.19.3。

本文由人工编写,AI优化,转载请注明原文地址: GeoScene Portal 4.1 SnakeYAML安全漏洞修复指南-CVE-2022-1471解决方案

评论 (6)

登录后发表评论
陈小橙2025-11-28 16:05:47
感谢分享这个修复指南,很实用!不过文档里提到这个方法不能解决Netty漏洞,请问有没有集成所有修复步骤的最新方案?
超腾开源2025-11-28 19:52:02
有的,参考:GeoScene Portal 4.1 Netty安全漏洞解决方案
小雨点2025-11-27 17:45:45
感谢分享这份修复指南,步骤很清晰!不过文档提到已过期,还需要参考Netty漏洞的解决方案,这点提醒很关键。
克洛伊2025-11-16 08:53:10
感谢分享这份修复指南,步骤很清晰!不过文档提到已过期,请问现在是否建议直接参考 Netty 漏洞的解决方案来一并处理?
超腾开源2025-11-16 21:18:16
是的,强烈建议。
张同学Tom2025-11-14 17:55:08
感谢分享这份修复指南,步骤很清晰!不过文档提到已经过期,建议参考最新的Netty漏洞解决方案。