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

相关文章

CentOS7更改默认SSH端口与配置指南

《CentOS7更改默认SSH端口与配置指南》SSH是Linux服务器远程管理的核心工具,其默认监听端口为22,由于端口22众所周知,这也使得服务器容易受到自动化扫描和暴力破解攻击,本文将系统性地介绍... 目录引言为什么要更改 SSH 默认端口?步骤详解:如何更改 Centos 7 的 SSH 默认端口1

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

python中各种常见文件的读写操作与类型转换详细指南

《python中各种常见文件的读写操作与类型转换详细指南》这篇文章主要为大家详细介绍了python中各种常见文件(txt,xls,csv,sql,二进制文件)的读写操作与类型转换,感兴趣的小伙伴可以跟... 目录1.文件txt读写标准用法1.1写入文件1.2读取文件2. 二进制文件读取3. 大文件读取3.1

SpringBoot中配置Redis连接池的完整指南

《SpringBoot中配置Redis连接池的完整指南》这篇文章主要为大家详细介绍了SpringBoot中配置Redis连接池的完整指南,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以... 目录一、添加依赖二、配置 Redis 连接池三、测试 Redis 操作四、完整示例代码(一)pom.

Linux内核参数配置与验证详细指南

《Linux内核参数配置与验证详细指南》在Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要,本文主要来聊聊如何配置与验证这些Linux内核参数,希望对大家有一定的帮助... 目录1. 引言2. 内核参数的作用3. 如何设置内核参数3.1 临时设置(重启失效)3.2 永久设置(重启仍生效

Python列表去重的4种核心方法与实战指南详解

《Python列表去重的4种核心方法与实战指南详解》在Python开发中,处理列表数据时经常需要去除重复元素,本文将详细介绍4种最实用的列表去重方法,有需要的小伙伴可以根据自己的需要进行选择... 目录方法1:集合(set)去重法(最快速)方法2:顺序遍历法(保持顺序)方法3:副本删除法(原地修改)方法4:

PyInstaller打包selenium-wire过程中常见问题和解决指南

《PyInstaller打包selenium-wire过程中常见问题和解决指南》常用的打包工具PyInstaller能将Python项目打包成单个可执行文件,但也会因为兼容性问题和路径管理而出现各种运... 目录前言1. 背景2. 可能遇到的问题概述3. PyInstaller 打包步骤及参数配置4. 依赖

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N