一、背景
某次安全漏扫,发现MySQL大量漏洞,基于Mysql之用于内网,且版本确实有点旧,考虑升级,综合漏洞分析,只能升级到最新版5.7.42和8.0.33,现场环境:Mysql 5.7.28、5.7.20和mysql:8.0.21
漏洞编号 | 漏洞描述 |
---|---|
CVE-2023-21912 | MySQL 5.7.41 版本及之前版本和 8.0.30 版本及之前版本的 Server: Security: Privileges 组件存在安全漏洞 |
CVE-2022-37434 | MySQL 5.7.41版本及之前版本和 8.0.31 版本及之前版本的 Server: InnoDB (zlib)组件存在安全漏洞 |
CVE-2022-32221 | MySQL Server 5.7.40及之前版本的Server: Packaging (cURL)组件内不正确的输入验证。 |
CVE-2023-21980 | MySQL 5.7.41 版本及之前版本和 8.0.32 版本及之前版本的 Client programs 组件存在安全漏洞; |
CVE-2022-43551 | MySQL 5.7.41 版本及之前版本和 8.0.32 版本及之前版本的 Server: Server: Packaging (cURL) 组件存在安全漏洞 |
附录:[mysql5.7和mysql8.0区别(https://www.cnblogs.com/harda/p/16497988.html)、mysql 8手册
二、升级处理
三、其他加固处理
1)可以获取到MySQL/MariaDB/Percona/TiDB Server版本信息,版本泄露,隐藏版本即可
mysql> select version();
#或
telnet mysql_server_ip 3306
#或
nmap -T4 -sC -sV -p 3306 mysql_server_ip #yum -y install wget telnet nmap net-tools
#备份mysql二进制文件
cp /usr/bin/mysql /usr/bin/mysql.bakcp /usr/sbin/mysqld /usr/sbin/mysqld.bak
#编辑修改二进制文件中版本信息;注意:版本号不可为空或删减其他信息,否则可能导致服务无法启用!
vi /usr/bin/mysql #客户端侧,搜索关键字“Linux或Linux”快速定位,修改版本号,建议改为官网最新的稳定版本
vi /usr/bin/mysqld #服务侧,搜索关键字“--language”快速定位,修改版本号
#完成后,重启服务验证
2)mysql 8.0和5.7 架构区别