news 2026/6/15 6:53:50

Logstash修复漏洞:Jackson-core 安全漏洞(CVE-2025-52999)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Logstash修复漏洞:Jackson-core 安全漏洞(CVE-2025-52999)

背景:

项目使用的logstash版本为:7.16.1,先存在漏洞需要修复,Jackson-core 安全漏洞(CVE-2025-52999)。但通过直接替换Jar包,服务启动失败,故无法通过替换jar包方式修复。

思路:

1、查阅资料,了解到:由于 Logstash 是一个打包好的应用程序,直接替换其中的 Jar 包可能会导致兼容性问题,因此需要根据部署方式采取不同的措施。

2、目前项目在使用,故我们不通过官网升级,这样配置需要重新调整,耗时。

3、采用Logstash 的“覆盖 Jar”机制,未解决。

  • 原理:
    Logstash 的类加载机制会优先加载logstash-core/lib/logstash-overrides目录下的 Jar 包。
  • 操作步骤:
    1. 下载修复版 Jar:去 Maven 中央仓库下载对应版本的jackson-corejackson-databindjackson-annotationsJar 包(通常需要保持 Jackson 系列版本一致)。
      • *注意:必须确保下载的 Jackson 版本与 Logstash 内部使用的 Java 版本兼容,且 API 变化不会导致 Logstash 核心崩溃。*
    2. 放置文件:将下载的 Jar 包复制到 Logstash 安装目录下的logstash-core/lib/logstash-overrides/文件夹中(如果该文件夹不存在,请手动创建)。
    3. 重启 Logstash:重启服务使更改生效。
    4. 验证:通过日志或进程检查加载的 Jar 版本是否已更新。

4、狸猫换太子,解决。

开干1:

1、创建覆盖目录(如果不存在),并复制新 Jar 包

[root@pbase1 lib]# mkdir logstash-overrides [root@pbase1 lib]# cd logstash-overrides/ [root@pbase1 logstash-overrides]# cp /data/soft/jackson-core-2.15.0.jar ./ [root@pbase1 logstash-overrides]# ls jackson-core-2.15.0.jar [root@pbase1 logstash-overrides]# cp /data/soft/jarbak/jackson-annotations-2.15.0.jar ./ [root@pbase1 logstash-overrides]# cp /data/soft/jarbak/jackson-databind-2.15.0.jar ./ [root@pbase1 logstash-overrides]# ll total 2192 -rw-r----- 1 root root 75564 Jan 22 15:35 jackson-annotations-2.15.0.jar -rw-r----- 1 root root 542635 Jan 22 15:34 jackson-core-2.15.0.jar -rw-r----- 1 root root 1619579 Jan 22 15:36 jackson-databind-2.15.0.jar

2、重启 Logstash

[root@pbase1 logstash-overrides]# systemctl restart logstash.service [root@pbase1 ~]# journalctl -u logstash.service -f Jan 22 15:37:35 pbase1 systemd[1]: Stopping logstash... Jan 22 15:37:36 pbase1 logstash[2958863]: warning: thread "Ruby-0-Thread-76: :1" terminated with exception (report_on_exception is true): Jan 22 15:37:36 pbase1 logstash[2958863]: IOError: stream closed in another thread Jan 22 15:37:36 pbase1 logstash[2958863]: accept at org/jruby/ext/socket/RubyTCPServer.java:153 Jan 22 15:37:36 pbase1 logstash[2958863]: tcp_listener at /usr/local/logstash-7.16.1/vendor/bundle/jruby/2.5.0/gems/logstash-input-gelf-3.3.0/lib/logstash/inputs/gelf.rb:127 Jan 22 15:37:36 pbase1 logstash[2958863]: run at /usr/local/logstash-7.16.1/vendor/bundle/jruby/2.5.0/gems/logstash-input-gelf-3.3.0/lib/logstash/inputs/gelf.rb:76 Jan 22 15:37:36 pbase1 systemd[1]: logstash.service: Main process exited, code=exited, status=1/FAILURE Jan 22 15:37:36 pbase1 systemd[1]: logstash.service: Failed with result 'exit-code'. Jan 22 15:37:36 pbase1 systemd[1]: Stopped logstash. Jan 22 15:37:36 pbase1 systemd[1]: Started logstash. Jan 22 15:37:36 pbase1 logstash[3272989]: Using JAVA_HOME defined java: /usr/local/logstash-7.16.1/jdk Jan 22 15:37:36 pbase1 logstash[3272989]: WARNING: Using JAVA_HOME while Logstash distribution comes with a bundled JDK. Jan 22 15:37:36 pbase1 logstash[3272989]: DEPRECATION: The use of JAVA_HOME is now deprecated and will be removed starting from 8.0. Please configure LS_JAVA_HOME instead. Jan 22 15:37:58 pbase1 logstash[3272989]: Sending Logstash logs to /data/logstash/logs which is now configured via log4j2.properties

3、验证修复:

  • 检查进程:查看 Logstash Java 进程启动参数,确认 classpath 包含了logstash-overrides

  • 检查日志:观察logstash.log启动日志,确保没有出现Jackson相关的报错,重启时候已验证。
  • 检查前台是否有日志收集到。

结果,扫描器,仍然能扫到:

开干2(狸猫换太子):

1、备份旧文件

2、准备新 Jar 包

3、替换文件

[root@pbase1 jackson-core]# ls 2.15.0.bak 2.9.10 [root@pbase1 jackson-core]# cd 2.9.10/ [root@pbase1 2.9.10]# ls jackson-core-2.15.0.jarbak jackson-core-2.9.10.jar [root@pbase1 2.9.10]# mv jackson-core-2.9.10.jar jackson-core-2.9.10.jar.z [root@pbase1 2.9.10]# mv jackson-core-2.15.0.jarbak jackson-core-2.9.10.jar [root@pbase1 2.9.10]# systemctl restart logstash.service

4、检查其他 Jackson 组件(强烈建议)

通常jackson-databindjackson-annotations也在同一个版本(2.9.10)。为了防止NoSuchMethodError,建议用同样的方法替换它们:

  1. 找到它们的位置:
    • .../com/fasterxml/jackson/databind/jackson-databind/2.9.10/jackson-databind-2.9.10.jar
    • .../com/fasterxml/jackson/annotations/jackson-annotations/2.9.10/jackson-annotations-2.9.10.jar
  2. 下载对应的新版本 Jar。
  3. 重命名为2.9.10后缀。
  4. 替换原文件。

5、修复验证,和上面几乎一样。

6、使用unzip验证真实版本(给安全团队看的证据):

[root@pbase1 2.9.10]# ls jackson-core-2.9.10.jar jackson-core-2.9.10.jar.z [root@pbase1 2.9.10]# unzip -p jackson-core-2.9.10.jar META-INF/MANIFEST.MF | grep "Bundle-Version" Bundle-Version: 2.15.0

输出结果:如果显示Bundle-Version: 2.13.4(即你下载的真实版本),说明修复成功,尽管文件名还是旧的。

总结

由于 Logstash 7.x 的插件依赖锁死死地绑定了特定版本号(2.9.10),“保留旧名,替换内容” 是解决此类报错并修复漏洞的唯一可行路径。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 11:10:46

阿里云可观测 2025 年 12 月产品动态

本月可观测热文回顾 文章一览: 构建数据资产“导航地图”:详解 UModel 数据发现与全链路分析能力 基于 UModel 高效构建可观测场景统一实体搜索引擎 揭开 Java 容器“消失的内存”之谜:云监控 2.0 SysOM 诊断实践 打通可观测性的“任督二…

作者头像 李华
网站建设 2026/6/15 11:13:05

‌10亿投资换300万供电!山西电网保供硬核升级

10亿投资换300万供电!山西电网保供硬核升级近日,山西省运城至景阳220千伏线路带电运行,标志着山西电网2025年16项迎峰度冬重点电网工程全部投运,供电能力提升约300万千瓦。这一成果背后,是国网山西在电网建设与保供方面…

作者头像 李华
网站建设 2026/6/15 13:08:45

MongoDB开源mongot引擎源码,助力RAG和AI工作负载

MongoDB已在服务端公共许可证(SSPL)下发布了mongot引擎的源码。mongot是驱动MongoDB搜索和向量搜索功能的核心引擎。分析师表示,此举将帮助自管理版本数据库的开发者更好地规划AI用例的RAG系统,因为源码将提供更多的透明度、可调试…

作者头像 李华
网站建设 2026/6/15 12:12:55

Adobe推出AI生成播客功能,Acrobat迎来更多智能化特性

在过去几周内,Adobe持续推出多项AI相关更新,包括Photoshop、Acrobat和Express与ChatGPT的集成,以及Firefly对GPT-Image 1.5的支持。今天,该公司宣布了几项即将登陆Acrobat和Express的新AI功能:生成演示文稿功能上线通过…

作者头像 李华
网站建设 2026/6/15 12:13:04

德勤报告:AI并未兑现盈利承诺

赚钱并不是一切...至少在AI领域如此。专业服务公司德勤的研究显示,对大多数企业而言,采用AI工具对盈利并没有任何帮助。但研究人员仍对这项技术给予赞誉。根据德勤发布的"企业AI现状"报告,74%的组织希望其AI项目能够增加收入&#…

作者头像 李华
网站建设 2026/6/15 14:04:41

爆肝!AI Agent开发全解析:小白程序员也能秒懂的智能编程黑科技

Anthropic 将“AI Agent”(智能体)定义为由大型语言模型(LLM)驱动的系统,这些系统能够动态地指导自身的流程和工具使用,从而自主完成复杂的任务。 与仅仅遵循预定义代码路径的"工作流"(Workflows)不同,Agent(代理)能够…

作者头像 李华