CVE-2021-3960漏洞修复后服务异常重启问题分析
问题背景
近期在对Linux内核进行安全更新时,我们为系统打上了CVE-2021-3960的补丁。该漏洞涉及内核中的一个权限提升漏洞,攻击者可利用此漏洞获取root权限。在完成安全补丁安装后,部分关键服务出现异常重启现象。
问题复现步骤
- 环境准备:使用Ubuntu 20.04系统,内核版本为5.4.0-73-generic
- 漏洞检测:通过以下命令检查是否存在该漏洞:
grep -i "CVE-2021-3960" /var/log/kern.log - 打补丁操作:
sudo apt update && sudo apt install linux-image-generic - 重启验证:
sudo reboot
异常现象
服务重启后,nginx和mysql服务出现频繁自动重启。通过检查系统日志发现大量如下错误信息:
Jul 15 10:30:12 server kernel: [12345.6789] nginx[1234]: segfault at 0 ip 0000000000000000 sp 00007fff12345678 error 0 in nginx[456789+1000]
Jul 15 10:30:15 server systemd[1]: mysql.service: Main process exited, code=exited, status=255/EXCEPTION
根本原因分析
通过深入分析,问题并非直接由补丁引起,而是由于系统在更新后某些内核模块加载顺序发生了变化。具体来说,aufs文件系统模块在新版本内核中与overlayfs存在冲突,在特定条件下会导致服务进程异常终止。
解决方案
- 临时修复:
sudo modprobe -r aufs sudo modprobe overlay - 永久配置:在
/etc/modprobe.d/blacklist.conf中添加:blacklist aufs - 服务监控:
sudo systemctl enable nginx.service mysql.service
验证测试
重启系统后,通过以下命令验证修复效果:
systemctl status nginx.service
systemctl status mysql.service
journalctl -u nginx.service --since "10 minutes ago"
建议在生产环境中部署此类补丁前,务必先在测试环境进行充分验证,确保不会影响现有服务的稳定性。

讨论