修复ppp < 2.4.8 缓冲区溢出代码执行漏洞
阿里云报这个漏洞很久了,一直推送信息让修复,今天有时间修复一下。
漏洞编号:CVE-2020-8597
- github下载了ppp最新的源代码上传服务器
- 在软件包的根目录下运行libtoolize --automake --copy --force命令,来复制或链接./ltmain.sh文件。
- 在软件包的根目录下运行autoheader命令,来生成pppd/config.h.in文件。
- 在软件包的根目录下运行aclocal命令,来获取当前系统的环境,生成一个aclocal.m4文件。
- 在软件包的根目录下运行autoconf命令,来生成configure文件。
- 在软件包的根目录下运行automake --add-missing命令,来生成Makefile.in文件。
- 在软件包的根目录下运行./configure命令,来检查并配置编译选项。
- 在软件包的根目录下运行make命令,来编译源码。
- 在软件包的根目录下运行sudo make install命令,来安装新版本的软件包。
make后提示报错
sys-linux.c: In function ‘get_ppp_stats_sysfs’:\nsys-linux.c:1860:5:
error: ‘for’ loop initial declarations are only allowed in C99 mode\n
for (int i = 0; i < sizeof(slist) / sizeof(*slist); ++i) {\n
^\nsys-linux.c:1860:5: note: use option -std=c99 or -std=gnu99 to
compile your code
让在c99模式下编译,make加上参数后就正常了
make CFLAGS=-std=gnu99
重启服务器后,pppd --version 就显示 pppd version 2.5.0 了
暂无标签