news 2026/4/3 14:00:49

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/3/25 9:01:14

langgraph搭建智能体各个组件使用与总结

LangGraph 技术学习总结 基于 leaning_langgraph.py 的 LangGraph 学习笔记与实践总结 📚 目录 环境配置核心概念Agent 创建记忆机制MCP 集成Graph 图结构高级特性 1. 环境配置 1.1 基础依赖 import os import pickle from datetime import datetime from langch…

作者头像 李华
网站建设 2026/3/31 8:41:01

粉料自动包装机

第2章 设计任务简介 2.1 设计题目 粉料立式包装机整体及传动系统设计 粉料包装机是针对粉状物料而实现自动包装而设计的单辊筒多配置的包装机械。可实现三边封口的包装。 要设计完成的包装膜供给装置采用倾斜方式。被包装的物料通过计量装置的精密计量后落入下料嘴,…

作者头像 李华
网站建设 2026/4/3 4:18:31

CF650G国宾车车架设计

第2章 总体方案确定 2.1 国内外车架概况 摇篮式车架:其特点是摩托车发动机的安装状态犹如婴儿被放在框架的摇篮中一样,所以称为摇篮式车架.这些空间结构的车架在强度和刚性方面都要好的多,所以大功率摩托车.高速竞赛车广泛地采用这种车架. 摇篮式车架又可细分为 ⑴双排管摇篮式…

作者头像 李华
网站建设 2026/3/30 18:03:52

Slim-Neck 特征融合在 YOLOv11 中的应用:高效检测器架构优化方法

文章目录 《YOLOv11进阶:Slim-Neck特征融合实战教程——让你轻松掌握高效检测器架构优化》 一、Slim-Neck技术背景:为什么要优化特征融合? 二、Slim-Neck核心原理:GSCConv与高效特征融合 三、代码实战:手把手带你搭建Slim-Neck 步骤一:创建Slim-Neck核心模块代码 步骤二:…

作者头像 李华
网站建设 2026/3/27 3:27:19

在吴忠,一位国家二级运动员的教练如何用科技与专业重塑羽毛球学习

清晨的阳光透过吴忠码上羽毛球俱乐部的玻璃窗,洒在整洁的球场上。国家二级运动员韩宁波教练正与一位学员进行多球训练,他每一次喂球都精准地落在学员最舒适的回击位置。01 专业教练团队,国家二级运动员领衔教学韩宁波教练作为国家二级运动员&…

作者头像 李华
网站建设 2026/3/13 10:54:50

Java AI 开发核心:工程化先行,而非仅接入大模型

在AI技术席卷各行各业的当下,不少Java技术团队投身于AI应用开发浪潮。很多团队认为,接入通义千问等主流大模型、调用API完成基础交互,便算搭建好AI应用。但实际开发中,代码耦合、成本失控、服务不稳定等问题接踵而至,让…

作者头像 李华