Flink高危漏洞 (CVE-2020-17518/17519) 修复指南

2024-09-03 11:38

本文主要是介绍Flink高危漏洞 (CVE-2020-17518/17519) 修复指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

    • 一、背景
    • 二、修复方法
    • 三、详细步骤
        • 1.准备flink源码
        • 2.找到修复的commit
        • 3.编译打包
        • 4.替换jar包
    • 四、总结

一、背景

​ 国家信息安全漏洞库(CNNVD)收到关于Apache Flink安全漏洞(CNNVD-202101-271、CVE-2020-17519)(CNNVD-202101-273、CVE-2020-17518)情况的报送。成功利用漏洞的攻击者,可在未授权的情况下,构造恶意数据执行任意文件读取或文件写入攻击,最终获取服务器敏感性信息或权限。Apache Flink 1.5.1 - 1.11.2版本均受此漏洞影响。目前,Apache官方已经发布了版本更新修复了该漏洞,建议用户及时确认产品版本,尽快采取修补措施。

Apache Flink安全漏洞(CNNVD-202101-271、CVE-2020-17519):

https://lists.apache.org/thread.html/r6843202556a6d0bce9607ebc02e303f68fc88e9038235598bde3b50d@%3Cuser.flink.apache.org%3E

Apache Flink安全漏洞(CNNVD-202101-273、CVE-2020-17518):

https://lists.apache.org/thread.html/rb43cd476419a48be89c1339b527a18116f23eec5b6df2b2acbfef261@%3Cuser.flink.apache.org%3E

上面一段话粘贴过来的,详情:https://it.cztgi.edu.cn/2021/0113/c1751a49194/page.htm

二、修复方法

  • 升级Flink版本至1.11.3及以上

  • 就地修复漏洞

    网上大多是描述有这个漏洞,只告诉你升级可以解决,很少告诉你就地解决的方法。但是某些情况下,升级的代码可能有点多,在之前的版本上做了较多的定制开发,或者环境适配比较麻烦,或者担心新版本带来未知的问题,所以,这里选择就地修复漏洞的方法,此教程也适合小白。

三、详细步骤

这里以flink1.11.1版本为例进行修复

1.准备flink源码

flink1.11.1源码:https://github.com/apache/flink/archive/release-1.11.1.zip

2.找到修复的commit

由于此次的修复比较简单,就不去下载flink的全量仓库代码来查找对应修复漏洞的pull request了,这样比较慢,对于代码量比较大的修复,还是建议clone整个仓库下来。

点开最上面的两个邮件列表链接,里面包含commit id

微信图片_20210119215135.png

两个漏洞对应的commit分别为:

b561010b0ee741543c3953306037f00d7a9f0801
a5264a6f41524afe8ceadf1d8ddc8c80f323ebc4

找到对应的commit id再到github找到对应的代码变更,根据commit id拼接得到url:

https://github.com/apache/flink/commit/b561010b0ee741543c3953306037f00d7a9f0801

https://github.com/apache/flink/commit/a5264a6f41524afe8ceadf1d8ddc8c80f323ebc4

微信图片_20210119215723.png

实际有用的代码改动就一行,其余所有的test类可以不用管,把两个url对应的commit改动到自己的flink1.11.1版本上

微信图片_20210119220034.png

3.编译打包

两个漏洞对应的修复其实就2行代码,都属于flink-runtime模块下的代码,所以,只要把这个模块重新打包后替换生产即可。这里一定要注意!flink安装包中,并没有flink-runtime-xxxx.jar,flink把核心的一些包都打在了flink-dist_2.11-1.11.1.jar中,所以,这里要编译flink-dist模块

微信图片_20210119220731.png

4.替换jar包

把最后编译生成的flink-dist_2.11-1.11.1.jar包替换到所有flink节点的$FLINK_HOME/lib目录下

四、总结

这里是给不太熟悉apache项目的同学一个简单的漏洞修复教程。中间有两个地方花了点时间,一是在找漏洞对应github仓库pr的时候,在社区jira上面有一个没搜到;二是打包的时候忙着打flink-runtime模块而不是flink-dist模块;对于这种小修改,能不升级版本就不升级,尽量最小化风险,希望能帮到你。

这篇关于Flink高危漏洞 (CVE-2020-17518/17519) 修复指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1132866

相关文章

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

电脑提示d3dx11_43.dll缺失怎么办? DLL文件丢失的多种修复教程

《电脑提示d3dx11_43.dll缺失怎么办?DLL文件丢失的多种修复教程》在使用电脑玩游戏或运行某些图形处理软件时,有时会遇到系统提示“d3dx11_43.dll缺失”的错误,下面我们就来分享超... 在计算机使用过程中,我们可能会遇到一些错误提示,其中之一就是缺失某个dll文件。其中,d3dx11_4

OpenCV在Java中的完整集成指南分享

《OpenCV在Java中的完整集成指南分享》本文详解了在Java中集成OpenCV的方法,涵盖jar包导入、dll配置、JNI路径设置及跨平台兼容性处理,提供了图像处理、特征检测、实时视频分析等应用... 目录1. OpenCV简介与应用领域1.1 OpenCV的诞生与发展1.2 OpenCV的应用领域2

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

C#解析JSON数据全攻略指南

《C#解析JSON数据全攻略指南》这篇文章主要为大家详细介绍了使用C#解析JSON数据全攻略指南,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、为什么jsON是C#开发必修课?二、四步搞定网络JSON数据1. 获取数据 - HttpClient最佳实践2. 动态解析 - 快速

SpringBoot集成MyBatis实现SQL拦截器的实战指南

《SpringBoot集成MyBatis实现SQL拦截器的实战指南》这篇文章主要为大家详细介绍了SpringBoot集成MyBatis实现SQL拦截器的相关知识,文中的示例代码讲解详细,有需要的小伙伴... 目录一、为什么需要SQL拦截器?二、MyBATis拦截器基础2.1 核心接口:Interceptor