Jetty 安全漏洞分析

  • 1. 安全问题分析
  • 2. 升级验证
  • 3. Jetty版本不准确问题分析
  • 4. Jetty版本不准确的临时解决方案
  • 5. 应用例子
    • 案例 1:metabase
    • 案例 2:jenkins

记录日期:2021/5/21

1. 安全问题分析

在做服务器安全扫描时,有时会报出 jetty 的漏洞。

查看漏洞详情可知,低版本的 jetty 包含漏洞,升级 jetty 到新版本就可以修复这些漏洞。

漏洞 官方问题连接 修复版本
Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7656) https://bugs.eclipse.org/bugs/show_bug.cgi?id=535667 9.3.24.v20180605 9.4.11.v20180605
Eclipse Jetty 输入验证错误漏洞(CVE-2018-12545) https://bugs.eclipse.org/bugs/show_bug.cgi?id=538096 9.4.12
Eclipse Jetty 授权问题漏洞(CVE-2018-12538) https://bugs.eclipse.org/bugs/show_bug.cgi?id=536018 9.4.9.v20180320
Jetty 信息泄露漏洞(CVE-2017-9735) https://github.com/eclipse/jetty.project/issues/1556 https://github.com/gwtproject/gwt/issues/9567 9.4.6.v20170531 9.3.20.v20170531 9.2.22.v20170606
Eclipse Jetty HTTP请求走私漏洞(CVE-2017-7658) https://bugs.eclipse.org/bugs/show_bug.cgi?id=535669 9.2.25.v20180606 9.3.24.v20180605 9.4.11.v20180605
Eclipse Jetty信息泄露漏洞(CVE-2018-12536) https://bugs.eclipse.org/bugs/show_bug.cgi?id=535670 9.3.24.v20180605 9.4.11.v20180605
Eclipse Jetty 信息泄露漏洞(CVE-2019-10247) https://bugs.eclipse.org/bugs/show_bug.cgi?id=546577 9.2.28.v20190418 9.3.27.v20190418 9.4.17.v20190418
Eclipse Jetty 信息泄露漏洞(CVE-2019-10246) https://bugs.eclipse.org/bugs/show_bug.cgi?id=546576 9.2.28.v20190418 9.3.27.v20190418 9.4.17.v20190418
Eclipse Jetty跨站脚本执行漏洞(CVE-2019-10241) https://bugs.eclipse.org/bugs/show_bug.cgi?id=546121 9.2.27.v20190403 9.3.26.v20190403 9.4.16.v20190411

分析完以上漏洞,只要将 jetty 版本升级到 9.4.17 及以上,可以修复以上所有安全漏洞。

(注意:应该避免使用 v9.4.27-v9.4.29,这 3个版本含有已知的漏洞 “Eclipse Jetty 安全漏洞(CVE-2019-17638)”)

2. 升级验证

jetty 升级过程这里不做介绍。假设顺利升级至 9.4.17。

启动Jetty后,通过下面命令访问网站,检查服务器返回信息:

$ curl -I http://localhost:3000

查看服务器返回信息

发现服务器返回的 Jetty 版本是 9.4.z-SNAPSHOT,安全扫描还是会检测到版本不安全,报出漏洞。

3. Jetty版本不准确问题分析

出现上面的问题很奇怪,我们明明已经升级到了 9.4.17,为什么服务器返回的是 9.4.z。查看 Jetty 官网 Issue 发现,这是 Jetty-9.4.20 以下版本的一个 bug。https://github.com/eclipse/jetty.project/issues/3918

升级到 9.4.20 及以上版本后,服务器返回准确版本。

4. Jetty版本不准确的临时解决方案

如果想继续使用 Jetty 9.4.17(因为这个版本实际并没有安全漏洞,只是由于服务器返回版本不准确,导致安全扫描工具误报),有什么办法吗?

查看 Jetty 源码

9.4.20 之前的代码逻辑,首先尝试从 package 中获取版本号,取不到后从系统参数中取 jetty.version,如果系统参数中没有,就使用默认值 9.4.z-SNAPSHOT

因此,可以在启动 Jetty 时增加系统参数解决 jetty.version=9.4.17.v20190418

(添加系统参数的方法,可以让服务器返回指定的 Jetty 版本号。那么,回到问题的开始,如果我们不升级 jetty 版本,只是在启动 jetty 时通过添加一个假的、高的版本号,其实也可以让扫描软件不报错。)

5. 应用例子

案例 1:metabase

metabase 是一个开源报表工具,其中内嵌了 jetty。

  • Metabase v0.34.x 内嵌的 Jetty 9.4.15.v20190215
  • Metabase v0.35.x – v0.36.7 内嵌的 Jetty 9.4.27 v20200227
  • Metabase v0.36.8 – v0.39.x 内嵌 Jetty 9.4.32.v20200930

如果使用 metabase v0.36.8 及以上,不存在安全漏洞。否则,会报安全漏洞。启动时设置个假的版本号,可以避免安全扫描工具报错。

$ java -Djetty.version=9.4.30.v20200611 -jar metabase.jar

案例 2:jenkins

Jenkins 是常用的持续构建工具,内嵌了 jetty 作为应用服务器。

以 Jenkins v2.277.4 版本(内嵌的 jetty 版本是 9.4.39.v20210325)为例,启动 Jenkins

$ java -jar Jenkins.war

访问jenkins站点,查看 jetty 版本,返回 9.4.39.v20210325

启动命令中加上 jetty.version 参数后,启动

$ java -Djetty.version=9.4.17 -jar Jenkins.war

访问jenkins站点,查看 jetty 版本。

Jetty 安全漏洞分析相关推荐

  1. 安全研究 | Jenkins 任意文件读取漏洞分析

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...

  2. 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...

    刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...

  3. 公开仓库中Docker镜像的漏洞分析结果发布

    Federacy的一名研究人员发布了一项报告,该报告分析了公开仓库中Docker镜像的漏洞.24%的镜像发现了明显的漏洞,其中基于Ubuntu的镜像漏洞最多,而基于Debian的镜像漏洞最少. \\ ...

  4. 漏洞分析技术专家聚会——博文视点OpenParty第二期

    漏洞分析技术专家聚会--博文视点OpenParty第二期 与传说中的牛人面对面,与畅销书作者共话家常,与技术专家共商新概念--     这不是天方夜谭!     2009年7月11日,好伦哥翠微店,博 ...

  5. Ruby on Rails路径穿越与任意文件读取漏洞分析(CVE-2019-5418)

    Ruby on Rails是一个 Web 应用程序框架,是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上.它被宣传为现有企业框架的一个替代,而它的目标,就是让 Web 开发方面的生活 ...

  6. cve-2019-11076 Cribl UI 1.5.0 未授权命令执行漏洞分析

    Cribl是一款日志分析工具.Cribl UI是其中的一个用户界面. Cribl UI 1.5.0版本中存在安全漏洞.远程攻击者可借助未认证的Web请求利用该漏洞运行任意命令. 前言 前几天瞎逛 Gi ...

  7. wordpress 5.0.0 远程代码执行漏洞分析cve-2019-8943

    近日,wordpress发布一个安全升级补丁,修复了一个WordPress核心中的远程代码执行漏洞.代码修改细节可以参考wordpress团队于Dec 13, 2018提交的代码.据漏洞披露者文中所介 ...

  8. cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析

    前言 不是所有目录遍历漏洞危害都相同,取决于遍历的用法以及用户交互程度.正如你将看到,本文的这个漏洞类在代码中非常难发现,但可以造成巨大的影响. 这个漏洞存在于思科Prime Infrastructu ...

  9. cve-2018-7600 drupal核心远程代码执行漏洞分析

    0x01 漏洞介绍 Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用.两周前,Drupal安全团队披露了一个非常关键的漏洞,编号CV ...

  10. Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析

    0x00 前言 2020年1月15日, Oracle官方发布了CVE-2020-2551的漏洞通告,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低.影响范围为10.3.6.0.0, 12.1. ...

最新文章

  1. 利用循环打印杨辉三角形
  2. fedora常见问题和解决方案
  3. C++知识点35——使用智能指针的注意事项(上)
  4. R语言与数据分析:时间序列简单介绍
  5. SpringBoot 2.x 整合Mybatis一:基础
  6. 模块化数据中心还需精工细作
  7. 虚拟局域网(VLAN)的管理
  8. kafka是如何解决粘包拆包的
  9. git手动删除的文件 pul不下来了_Git工作总结
  10. 无线移动通信基础知识
  11. 最受欢迎的 Top语言及其 Top 10漏洞
  12. HashMap 和 currentHashMap 我们终于给你总结清楚了!
  13. SoapUI、Jmeter、Postman三种接口测试工具的比较分析——灰蓝
  14. php+ctypt+api,RSA-OAEP SHA-512 Encrypt / Decrypt from Javascriptwebcrypt api to PHP openssl?
  15. Python——对象
  16. (十)瑞芯微rk3568 中qt工程ffmpeg 拉取rtsp视频流
  17. 经济学基础(本)【4】
  18. 从零开始iOS8编程【HelloWorld】
  19. GEE实战3:利用GEE获取区域的长系列日均气温变化【逐日气温变化分析】
  20. 定额人工费调整差额的几个解决方案

热门文章

  1. 冯 • 诺依曼体系结构
  2. 呼吸系统疾病病人的护理题库【2】
  3. 麦肯锡 “金字塔原理”:职场人结构化思维、表达和解决问题的利器
  4. kotlin的代理和委托
  5. html将图片裁剪成圆形,zrender将一张图片裁剪为圆形
  6. 研究生硕士论文开题报告中的进度和安排该怎么写?
  7. 此加载项为计算机上的所有用户安装但只能,win7系统控件无法安装的解决方法...
  8. 2021-06-02使用Digispark(ATTINY85)制作一个Badusb
  9. Android APP安全测试
  10. win7网络无法连接其他计算机,Win7局域网不能访问如何解决?