【Linux】vim拒绝服务安全漏洞修复

news/2024/3/28 16:34:53/文章来源:https://blog.csdn.net/cnskylee/article/details/129142702

根据国家信息安全漏洞共享平台于2023年2月19日发布的安全漏洞通知,Linux系统自带的vim编辑器存在两个高危安全漏洞(CNVD-2023-09166、CNVD-2023-09647),攻击者可以利用该漏洞发起拒绝服务攻击,并可能运行(恶意)代码。

下面就在测试环境虚拟机,为大家演示如何升级Linux系统(CentOS 7.9)中的vim组件。

首先,我们在vim的github发布页面找到最新版的源码包(v9.0.1333),这里我们下载.tar.gz的源码包。

查看系统当前的vim版本

# vim --help
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Dec 15 2020 16:44:08)

安装依赖组件

# yum install gcc gcc-c++ ncurses-devel -y

下载后上传到/usr/loca/src目录下,并解压:

# tar -xzf vim-9.0.1333.tar.gz
# cd vim-9.0.1333
# ./configure --prefix=/root
# make
# make install

安装完成后,会在/root目录下生成一个bin目录,里面有最新编译生成的二进制文件

# cd bin/
# ls -ltr
总用量 3152
-rwxr-xr-x 1 root root 3202096 2月  21 14:37 vim
-rwxr-xr-x 1 root root    2154 2月  21 14:37 vimtutor
lrwxrwxrwx 1 root root       3 2月  21 14:37 ex -> vim
lrwxrwxrwx 1 root root       3 2月  21 14:37 view -> vim
lrwxrwxrwx 1 root root       3 2月  21 14:37 rvim -> vim
lrwxrwxrwx 1 root root       3 2月  21 14:37 vimdiff -> vim
lrwxrwxrwx 1 root root       3 2月  21 14:37 rview -> vim
-rwxr-xr-x 1 root root   18864 2月  21 14:37 xxd

备份系统自带的vim组件程序

# cd /usr/bin/
# mv vim vim.20230221
# mv vimtutor vimtutor.20230221
# mv xxd xxd.20230221

用编译文件覆盖/usr/bin目录下的组件

# cd /root/bin
# mv * /usr/bin/
mv:是否覆盖"/usr/bin/ex"? y
mv:是否覆盖"/usr/bin/rview"? y
mv:是否覆盖"/usr/bin/rvim"? y
mv:是否覆盖"/usr/bin/view"? y
mv:是否覆盖"/usr/bin/vimdiff"? y

再次检查vim的版本

# vim --version
VIM - Vi IMproved 9.0 (2022 Jun 28, 编译于 Feb 21 2023 14:26:53)
包含补丁: 1-1333
编译者 root@k8s-master
巨型版本 无图形界面。  可使用(+)与不可使用(-)的功能:
+acl               +file_in_path      +mouse_urxvt       -tag_any_white
+arabic            +find_in_path      +mouse_xterm       -tcl
+autocmd           +float             +multi_byte        +termguicolors
+autochdir         +folding           +multi_lang        +terminal
-autoservername    -footer            -mzscheme          +terminfo
-balloon_eval      +fork()            +netbeans_intg     +termresponse
+balloon_eval_term +gettext           +num64             +textobjects
-browse            -hangul_input      +packages          +textprop
++builtin_terms    +iconv             +path_extra        +timers
+byte_offset       +insert_expand     -perl              +title
+channel           +ipv6              +persistent_undo   -toolbar
+cindent           +job               +popupwin          +user_commands
-clientserver      +jumplist          +postscript        +vartabs
-clipboard         +keymap            +printer           +vertsplit
+cmdline_compl     +lambda            +profile           +vim9script
+cmdline_hist      +langmap           -python            +viminfo
+cmdline_info      +libcall           -python3           +virtualedit
+comments          +linebreak         +quickfix          +visual
+conceal           +lispindent        +reltime           +visualextra
+cryptv            +listcmds          +rightleft         +vreplace
+cscope            +localmap          -ruby              +wildignore
+cursorbind        -lua               +scrollbind        +wildmenu
+cursorshape       +menu              +signs             +windows
+dialog_con        +mksession         +smartindent       +writebackup
+diff              +modify_fname      -sodium            -X11
+digraphs          +mouse             -sound             -xfontset
-dnd               -mouseshape        +spell             -xim
-ebcdic            +mouse_dec         +startuptime       -xpm
+emacs_tags        -mouse_gpm         +statusline        -xsmp
+eval              -mouse_jsbterm     -sun_workshop      -xterm_clipboard
+ex_extra          +mouse_netterm     +syntax            -xterm_save
+extra_search      +mouse_sgr         +tag_binary        
-farsi             -mouse_sysmouse    -tag_old_static    系统 vimrc 文件: "$VIM/vimrc"用户 vimrc 文件: "$HOME/.vimrc"第二用户 vimrc 文件: "~/.vim/vimrc"用户 exrc 文件: "$HOME/.exrc"defaults 文件: "$VIMRUNTIME/defaults.vim"$VIM 预设值: "/root/share/vim"
编译方式: gcc -std=gnu99 -c -I. -Iproto -DHAVE_CONFIG_H -g -O2 -D_REENTRANT -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 
链接方式: 
gcc -std=gnu99 -L/usr/local/lib -Wl,--as-needed -o vim -lm -ltinfo -lrt -ldl 

参考:

  1. https://www.cnvd.org.cn/flaw/show/CNVD-2023-09166

  1. https://www.cnvd.org.cn/flaw/show/CNVD-2023-09647

  1. https://github.com/vim/vim/releases/tag/v9.0.1333

  1. https://www.cnblogs.com/frytea/p/13411353.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_72104.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CAS 和 synchronized 优化过程

CAS: CAS相对于计算器(count)来说,count在多线程的环境下是线程不安全的,那么就必须得加锁,而加了锁性能就会大打折扣,所以就有了CAS而CAS的操作是原子的,从而会保证线程的安全。本质操作是将线…

列表推导式_Python教程

内容摘要 Python中存在一种特殊的表达式,名为推导式,它的作用是将一种数据结构作为输入,再经过过滤计算等处理,最后输出另一种数据结构。根据数据结构的不同会被分为列表推导式、 文章正文 Python中存在一种特殊的表达式&#x…

2022年网络安全政策态势分析与2023年立法趋势

近日,公安部第三研究所网络安全法律研究中心与 360 集团法务中心联合共同发布了《全球网络安全政策法律发展年度报告(2022)》。《报告》概览2022年全球网络安全形势与政策法律态势,并对2023年及后续短期内网络安全政策、立法趋势进…

TCP状态详解

TCP Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。TCP Wrappers 是一种对使用 /etc/inetd.sec 的替换方法。TCP Wrappers 提供防止主机名和主机地址欺骗的保护。欺骗是一种伪装成有效用户或主机以获得对系统进行未…

linux集群技术(二)--keepalived(高可用集群)(二)

案例1--keepalived案例2--keepalived Lvs集群1.案例1--keepalived 1.1 环境 初识keepalived,实现web服务器的高可用集群。 Server1: 192.168.26.144 Server2: 192.168.26.169 VIP: 192.168.26.190 1.2 server1 创建etc下的…

网上插画教学哪家质量好,汇总5大插画培训班

网上插画教学哪家质量好?给大家梳理了国内5家专业的插画师培训班,最新五大插画班排行榜,各有优势和特色! 一:国内知名插画培训机构排名 1、轻微课(五颗星) 主打课程有日系插画、游戏原画、古风插…

2023年测试人跳槽新功略,涨薪10K+

软件测试是如何实现涨薪的呢?很多人眼中的软件测试岗位可能是简单的,技术含量不是那么高,就是看看需求、看业务、设计文档、然后点一点功能是否实现,再稍微深入一点就是测试下安装部署时会不会出现兼容性问题,以及易用…

技术学习-消息队列

什么是消息队列 可以简单理解为存放消息的队列,数据结构模型和队列一样,都是先进先出。主要用不同线程(Thread)/进程(Process) 为什么需要消息队列 (1)不同进程之间传递消息是,因为进程的耦合度高,改动一个进程,引发…

npm 上传自己的包

mkdir demo 创建一个新的文件夹 npm init 初始化项目 生成一个package.json文件 name version description等等touch index.js 创建一个node 可执行脚本新的js 文件 #!/usr/bin/env node // 必须在文件头加如上内容指定运行环境为node console.log(hello cli)在package.json 中…

【教程】GitStats代码统计工具(附GitLab API相关)

使用GitStats进行代码统计 官方文档:GitStats - git history statistics generator GitStats是基于Git的数据统计生成器,输出格式为HTML,可直接在浏览器打开查看,展现为图表形式的可视化数据,内容包括: 常…

图像识别技术解析:手写数字识别(一)

本文通过构建一个手写数字识别的程序来解析来自机器学习与深度学习的不同算法的特点,以及如何对识别效果进行改进。 一、如何构建一个手写数字识别程序 首先可以考虑构建一个简单的页面用于用户输入,也就是前端;接下来需要准备一个后端用于…

mac 好用的类似Xshell工具

下载royal TSX 5.1.1 http://share.uleshi.com/f/9490615-685692355-33bf1e修改mac的etc/hosts文件权限访达(鼠标右键) -> 前往文件夹 ->输入/private --> 打开etc/hosts --> 显示简洁(鼠标右键) --> 权限改成读和写hosts文件写入如下内容:# Royal T…

空间直线方程及其与面线的夹角

一、空间直线的方程 1.1 空间直线的一般方程 空间直线 LLL 可以看做是两个平面 Π1\Pi_1Π1​ 和 Π2\Pi_2Π2​ 的交线,那么就可以用两个平面方程来表示这个直线: {A1xB1yC1zD10A2xB2yC2zD20(1)\left\{ \begin{aligned} A_1xB_1yC_1zD_10\\ A_2xB_2yC…

卷起来了,2023金三银四自动化测试面试题精选【字节二面】

面试一般分为技术面和hr面,形式的话很少有群面,少部分企业可能会有一个交叉面,不过总的来说,技术面基本就是考察你的专业技术水平的,hr面的话主要是看这个人的综合素质以及家庭情况符不符合公司要求,一般来…

Office 365 备份与恢复

Microsoft Office 365中的不同服务几乎可以随时访问,这要归功于Microsoft的99.9%正常运行时间记录。但是,Office 365步履蹒跚的一个方面是提供了一种从意外数据丢失中恢复的方法。Microsoft 提供的数据保留功能并非适用于所有数据丢失情况的可行解决方案…

简述操作系统的文件系统

前言 文件系统是操作系统中负责管理持久数据的子系统,将用户的文件保存在硬盘等硬件设备中,即使断电了数据也不会丢失。 对于用户而言,文件是存储的最小单位,再少的数据也需要以文件的形式存储在外部存储器中。以硬盘为例&#…

FLV-初学总结

FLV-初学总结 从零开始仅学习了一下午的总结,本文非常稚嫩… 本文为纯初学者的学习记录,为了方便理解,内容未必严谨,可以用作纯新手的入门了解篇。本文主要的参考链接如下⬇️ 详细了解FLV:FLV官方文档(Ve…

论文解读 | [CVPR2019] 基于自适应文本区域表示的任意形状场景文本检测

目录 1 研究背景及意义 2 总体设计 3 方法论 3.1 自适应文本区域表示 3.2 文本建议 3.3 建议改进 4 损失函数 5 实验及结果 1 研究背景及意义 现有的场景文本检测方法使用固定点数的多边形来 表示文本区域。例如,水平文本使用2个点(左上/右下)表示文本区域&…

VR全景带你打卡《狂飙》经典取景地!

热度“狂飙”!电视剧《狂飙》的取景地——江门墟顶老街人气火爆,720VR全景带您了解,这个具有新活力的老街区,蛙色3DVR提供技术支持!通过航拍VR全景,全方位展示江门历史文化街区,720浏览&#xf…

【Java基础】反射

概述 引入 package ref;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.lang.reflect.Constructor;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.r…