CVE-2026-35368uutils coreutils中的chroot工具存在安全漏洞。当使用--userspec选项时,程序在进入chroot环境后、丢弃root权限前调用getpwnam()解析用户,导致glibc从受控的新根目录加载NSS共享库。若新根目录可写,攻击者可注入恶意库以root身份执行代码,造成容器逃逸或本地权限提升。
该漏洞源于程序执行顺序的不当设计。uutils coreutils的chroot工具在使用--userspec参数时,首先执行chroot()系统调用将根目录切换至用户指定路径(NEWROOT),随后调用getpwnam()来解析用户和组ID。在基于glibc的系统中,getpwnam()依赖名称服务交换(NSS)机制,该机制会根据配置动态加载共享库(如libnss_files.so.2等)。由于此时程序尚未调用setuid/setgid丢弃root权限,且当前根目录已切换至NEWROOT,如果攻击者对NEWROOT拥有写权限,便可在其中放置恶意的.so文件及伪造的nsswitch.conf。当getpwnam()尝试解析用户信息时,会加载攻击者提供的恶意库,并以root权限运行其中的初始化代码,从而允许攻击者执行任意命令或逃逸容器环境。