CIFS内核模块和cifs-utils工具包中存在一个CIFSwitch漏洞(尚未分配CVE编号),相关细节已披露,并发布了相应的利用程序。该漏洞允许非特权用户获得系统root权限。目前仅提供补丁修复,该补丁已于5月16日发布,并于5月19日被主线内核接受。 Linux (内核维护版本尚未发布)。
该漏洞影响支持 cifs.spnego 机制的代码,该机制用于在连接到 SMB 服务器时通过 SPNEGO(简单且受保护的 GSSAPI 协商)协议执行身份验证。当使用 cifs.spnego 确定 Kerberos/SPNEGO 密钥时,内核会调用 cifs.upcall 处理程序,该处理程序由 cifs-utils 软件包提供,并在具有 root 权限的用户空间中运行。
非特权用户可以通过发送请求来调用处理程序,该请求会请求带有伪造的“CIFS SPNEGO”描述的“cifs.spnego”密钥。cifs.upcall 处理程序不会对通过内核传递的参数执行额外的验证检查;此外,它还会将进程 ID (pid)、用户 ID (uid)、凭据 ID (creduid) 等视为无效参数。
upcall_target。激活后,cifs.upcall 处理程序会切换到发送请求的用户进程的命名空间,并在重置权限之前在系统的 NSS(名称服务切换)数据库中执行搜索。
攻击者可以在独立的挂载点命名空间中启动自己的进程,从而导致 NSS 在其上下文中被访问。要利用此漏洞,只需将自己的配置文件 /etc/nsswitch.conf 和一组虚拟库 libnss_*.so.2 放置在攻击者创建的环境中即可。cifs.upcall 处理程序执行 NSS 请求时,将以 root 权限加载这些虚拟库。
要利用此漏洞,系统必须允许用户命名空间或挂载点,并且必须安装 cifs-utils 软件包。以下发行版在其默认配置下即可利用此漏洞:
- Linux 薄荷肉桂味 21.3/22.3
- CentOS Stream 9 GNOME
- Rocky Linux 9个工作站
- 卡利 Linux
- AlmaLinux 9.7个工作站
- SUSE 15 SP7/SAP 15 SP7/SAP 16
需要 cifs-utils 软件包才能使用此漏洞利用程序的发行版:
- Ubuntu 18.04/20.04/22.04 桌面/服务器
- Pop!_OS 22.04 Intel/24.04 通用版
- Ubuntu 24.04 桌面版(精简/完整)和服务器版
- Debian 13 年 11 月 12 日 netinst 标准和 GNOME/KDE/standard/XFCE
- CentOS 流 9 Cinnamon/KDE/MATE/XFCE
- Rocky Linux 9 KDE/Workstation-Lite
- openSUSE Leap 15.6 GNOME/KDE
- openSUSE Tumbleweed GNOME/KDE
- Rocky Linux 8 通用云
- Oracle Linux 8/9 KVM
- Amazon Linux 2023KVM
具有默认配置的发行版可以阻止通过安全增强(SE)利用漏洞。Linux 或者 Apparmor,即使 cifs-utils 软件包已存在:
- Ubuntu 26.04 桌面/服务器
- Fedora 40/41/42/43/44 Workstation/Server
- CentOS Stream 10 GNOME/KDE
- Rocky Linux 10个工作站
- AlmaLinux 10.1个工作站
- Oracle Linux 10KVM
- openSUSE Tumbleweed GNOME/KDE
- openSUSE Leap 16.0 OEM GNOME/KDE/Minimal-VM
- SUSE Linux 16
作为一种变通方法,您可以阻止 cifs 内核模块的自动加载:
sh -c "printf 'install cifs /bin/false\n' > /etc/modprobe.d/cifs.conf; rmmod cifs 2>/dev/null; true"
您还可以禁用用户命名空间的使用(“sysctl -w kernel.unprivileged_userns_clone=0”),并删除或覆盖 cifs-utils 设置中的 cifs.spnego 规则:
cat >/etc/request-key.d/cifs.spnego.conf <'EOF'
创建 cifs.spnego * * /usr/sbin/keyctl negate %k 30 %S
EOF
与此同时,5月28日发布了137份内核漏洞报告。 Linux以及 5 月 27 日的 277 份报告。
来源: opennet.ru
