netfilter 是 Linux 内核中的一个子系统,允许实现各种网络相关操作,如数据包过滤、网络地址转换 (NAT) 和端口转换。而 nf_tables 是 netfilter 的一部分,用于定义和管理防火墙规则。
2024年1月,各Linux发行版官方发布漏洞公告,修复了一个 netfilter:nf_tables 模块中的释放后重用漏洞(CVE-2024-1086)。鉴于该漏洞易于利用,并且允许本地攻击者提升至root权限,建议所有使用受影响Linux版本的企业尽快修复该漏洞。
漏洞描述
Description
0****1
漏洞成因
漏洞成因是在 nft_verdict_init() 函数的错误处理导致 nf_hook_slow() 函数在 NF_DROP 的分支的时候以 NF_ACCEPT 返回,进而在 NF_HOOK() 函数产生释放后重用漏洞。
该漏洞可以被本地攻击者利用,从普通用户提升到 root 用户权限。
处置优先级:高
漏洞类型:释放后重用(Use-After-Free)
漏洞危害等级:高
触发方式:本地
权限认证要求:需要本地权限
系统配置要求:默认配置可利用
用户交互要求:无需用户交互
利用成熟度:POC/EXP 已公开
批量可利用性:可使用通用原理 POC/EXP 进行检测/利用
修复复杂度:中,官方提供临时、升级修复方案
影响版本
Affects
02
3.15 <= Linux Kernel < 6.1.76
6.2 <= Linux Kernel < 6.6.15
6.7 <= Linux Kernel < 6.7.3
Linux Kernel = 6.8-rc1
请注意,不包括以下分支修补版本:v5.10.209、v5.15.149、v6.1.76、v6.6.15。
该漏洞不影响大部分默认配置的容器环境,即使在受影响的 Linux Kernel 版本中运行的容器也不会受到此漏洞的影响。
解决方案
Solution
03
RedHat/CentOS系:
# echo 'blacklist nf_tables' >> /etc/modprobe.d/blacklist-nf_tables.conf
Debian/Ubuntu系:
# sudo echo 'blacklist nf_tables' >> /etc/modprobe.d/blacklist-nf_tables.conf
RedHat/CentOS系:
# echo "user.max_user_namespaces=0" > /etc/sysctl.d/userns.conf
Debian/Ubuntu系:
如果不需要,可禁用非特权用户创建命名空间的能力。临时禁用执行以下命令:
# sudo sysctl -w kernel.unprivileged_userns_clone=0
重启后仍然禁用:
# echo kernel.unprivileged_userns_clone=0 | sudo tee /etc/sysctl.d/99-disable-unpriv-userns.conf
相关发行版本已发布漏洞公告,可参考漏洞公告升级对应的Linux内核。
Ubuntu公告:
https://ubuntu.com/security/CVE-2024-1086
CentOS漏洞公告:
https://lists.centos.org/pipermail/centos-announce/2024-March/099235.html
RedHat漏洞公告:
https://access.redhat.com/security/cve/cve-2024-1086
Debian漏洞公告:
https://security-tracker.debian.org/tracker/CVE-2024-1086
统信漏洞公告:
https://src.uniontech.com/#/security\_advisory\_detail?utsa\_id=UTSA-2024-000633
麒麟漏洞公告:
https://kylinos.cn/support/loophole/patch/5561.html
漏洞复现
Reproduction
04
时间线
Timeline
05
1月31日 漏洞在互联网披露
3月26日 漏洞细节在互联网公开
6月5日 长亭安全应急响应中心发布漏洞通告
参考资料:
长亭应急响应服务
全力进行产品升级
及时将风险提示预案发送给客户
检测业务是否收到此次漏洞影响
请联系长亭应急服务团队
7*24小时,守护您的安全
第一时间找到我们:
应急响应热线:4000-327-707