Jetty 安全漏洞分析
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 安全漏洞分析相关推荐
- 安全研究 | Jenkins 任意文件读取漏洞分析
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云鼎实验室 发表于云+社区专栏 一.漏洞背景 漏洞编号:CVE-2018-1999002 漏洞等级:高危 Jenkins 7 月 18 ...
- 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...
刚打开红黑看到J8基友写的一个{易想团购系统 最新版 通杀}的文章,看他贴的代码里面有个get_client_ip()函数,哈哈,我猜没过滤,果断下了一套程序, 找到get_client_ip()函数 ...
- 公开仓库中Docker镜像的漏洞分析结果发布
Federacy的一名研究人员发布了一项报告,该报告分析了公开仓库中Docker镜像的漏洞.24%的镜像发现了明显的漏洞,其中基于Ubuntu的镜像漏洞最多,而基于Debian的镜像漏洞最少. \\ ...
- 漏洞分析技术专家聚会——博文视点OpenParty第二期
漏洞分析技术专家聚会--博文视点OpenParty第二期 与传说中的牛人面对面,与畅销书作者共话家常,与技术专家共商新概念-- 这不是天方夜谭! 2009年7月11日,好伦哥翠微店,博 ...
- Ruby on Rails路径穿越与任意文件读取漏洞分析(CVE-2019-5418)
Ruby on Rails是一个 Web 应用程序框架,是一个相对较新的 Web 应用程序框架,构建在 Ruby 语言之上.它被宣传为现有企业框架的一个替代,而它的目标,就是让 Web 开发方面的生活 ...
- cve-2019-11076 Cribl UI 1.5.0 未授权命令执行漏洞分析
Cribl是一款日志分析工具.Cribl UI是其中的一个用户界面. Cribl UI 1.5.0版本中存在安全漏洞.远程攻击者可借助未认证的Web请求利用该漏洞运行任意命令. 前言 前几天瞎逛 Gi ...
- wordpress 5.0.0 远程代码执行漏洞分析cve-2019-8943
近日,wordpress发布一个安全升级补丁,修复了一个WordPress核心中的远程代码执行漏洞.代码修改细节可以参考wordpress团队于Dec 13, 2018提交的代码.据漏洞披露者文中所介 ...
- cve-2019-1821 思科 Cisco Prime 企业局域网管理器 远程代码执行 漏洞分析
前言 不是所有目录遍历漏洞危害都相同,取决于遍历的用法以及用户交互程度.正如你将看到,本文的这个漏洞类在代码中非常难发现,但可以造成巨大的影响. 这个漏洞存在于思科Prime Infrastructu ...
- cve-2018-7600 drupal核心远程代码执行漏洞分析
0x01 漏洞介绍 Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业组织,金融机构等)使用.两周前,Drupal安全团队披露了一个非常关键的漏洞,编号CV ...
- Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞分析
0x00 前言 2020年1月15日, Oracle官方发布了CVE-2020-2551的漏洞通告,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低.影响范围为10.3.6.0.0, 12.1. ...
最新文章
- 利用循环打印杨辉三角形
- fedora常见问题和解决方案
- C++知识点35——使用智能指针的注意事项(上)
- R语言与数据分析:时间序列简单介绍
- SpringBoot 2.x 整合Mybatis一:基础
- 模块化数据中心还需精工细作
- 虚拟局域网(VLAN)的管理
- kafka是如何解决粘包拆包的
- git手动删除的文件 pul不下来了_Git工作总结
- 无线移动通信基础知识
- 最受欢迎的 Top语言及其 Top 10漏洞
- HashMap 和 currentHashMap 我们终于给你总结清楚了!
- SoapUI、Jmeter、Postman三种接口测试工具的比较分析——灰蓝
- php+ctypt+api,RSA-OAEP SHA-512 Encrypt / Decrypt from Javascriptwebcrypt api to PHP openssl?
- Python——对象
- (十)瑞芯微rk3568 中qt工程ffmpeg 拉取rtsp视频流
- 经济学基础(本)【4】
- 从零开始iOS8编程【HelloWorld】
- GEE实战3:利用GEE获取区域的长系列日均气温变化【逐日气温变化分析】
- 定额人工费调整差额的几个解决方案
热门文章
- 冯 • 诺依曼体系结构
- 呼吸系统疾病病人的护理题库【2】
- 麦肯锡 “金字塔原理”:职场人结构化思维、表达和解决问题的利器
- kotlin的代理和委托
- html将图片裁剪成圆形,zrender将一张图片裁剪为圆形
- 研究生硕士论文开题报告中的进度和安排该怎么写?
- 此加载项为计算机上的所有用户安装但只能,win7系统控件无法安装的解决方法...
- 2021-06-02使用Digispark(ATTINY85)制作一个Badusb
- Android APP安全测试
- win7网络无法连接其他计算机,Win7局域网不能访问如何解决?