GNU Screen 曝多漏洞:本地提权与终端劫持风险浮现

SUSE安全团队全面审计发现,广泛使用的终端复用工具GNU Screen存在一系列严重漏洞,包括可导致本地提权至root权限的缺陷。这些问题同时影响最新的Screen 5.0.0版本和更普遍部署的Screen 4.9.x版本,具体影响范围取决于发行版配置。

尽管GNU Screen是类UNIX系统中管理终端会话的核心工具,但研究显示其存在重大风险------特别是当Screen以setuid-root权限安装以支持多用户功能时。

关键漏洞分析

CVE-2025-23395:logfile_reopen()函数本地提权漏洞

最严重的漏洞允许本地权限提升。在Screen 5.0.0中,logfile_reopen()函数在重新打开用户定义的日志文件时未能正确丢弃提升的权限,使得攻击者可以向root所有的文件写入任意数据。

报告警告称:"非特权用户可以在任意位置创建root所有的文件...所有写入Screen PTY的数据都将被记录到该文件中"。该漏洞可通过操纵日志文件的链接计数强制重新打开来触发,已在采用setuid-root方式安装Screen的Arch Linux和NetBSD系统上得到确认。

CVE-2025-46802:终端重连竞争条件漏洞

另一个重大缺陷涉及多用户会话重新连接时Attach()函数中的竞争条件。当被调用时,Screen会临时将终端设备模式设置为0666,使系统上任何进程都能读写用户的TTY。

SUSE表示:"我们使用简单的Python脚本每两到三次尝试就能成功打开受影响的TTY"。虽然这种基于chmod的方法原本旨在实现会话守护进程间的通信,但却为击键拦截或命令注入创造了危险窗口。

CVE-2025-46803:默认全局可写PTY漏洞

Screen 5.0.0还将默认PTY模式改为0622,使其全局可写。这使得任何用户都能向Screen管理的PTY写入数据,重现了TTY劫持漏洞的部分特征------现在这已成为默认行为。除非明确覆盖编译时配置,否则Arch Linux和NetBSD等发行版都会受到影响。

其他安全缺陷

CVE-2025-46804:文件存在性信息泄露

通过滥用SCREENDIR环境变量,可诱骗Screen泄露root所有文件的存在及类型,揭示路径是目录、文件还是不可访问。

CVE-2025-46805:信号处理竞争条件

在对CVE-2023-24626的不完整修复中,Screen的信号发送逻辑仍存在竞争条件。攻击者可利用权限检查与实际信号发送之间的TOCTOU(检查时间/使用时间)窗口,向非目标进程发送SIGHUP或SIGCONT等信号。

strncpy()误用导致的缓冲区溢出

虽然未分配CVE编号,但Screen 5.0.0中存在一个不可利用的缓冲区溢出问题。当用户尝试向活动Screen会话发送含多个参数的命令时,可能导致崩溃。该问题源于用strncpy()不当替换strcpy()的行为,在启用FORTIFY_SOURCE保护的Arch Linux系统上已观察到崩溃现象。

受影响发行版

发行版 Screen版本 权限模型 受影响CVE
Arch Linux 5.0.0 setuid-root CVE-2025-23395, CVE-2025-46802, CVE-2025-46803, CVE-2025-46804, CVE-2025-46805, 缓冲区溢出问题
NetBSD 10.1 - setuid-root 同上
Fedora 42 5.0.0 setgid-screen CVE-2025-46802(部分), 缓冲区溢出问题
FreeBSD 14.2 4.9.1 setuid-root CVE-2025-46802, CVE-2025-46804, CVE-2025-46805
Gentoo 4.9.1/9999 setgid-utmp/setuid-root CVE-2025-46802(部分), CVE-2025-46805(setuid-root配置下)
Debian 12.10 4.9.0 默认 CVE-2025-46802(部分)
Ubuntu 24.04.2 4.9.1 默认 CVE-2025-46802(部分)

安全建议

SUSE强烈建议现阶段不要以setuid-root权限安装Screen。报告指出,许多问题源于过时的权限管理模型和5.0.0版本代码重构期间引入的退步。

SUSE建议:"Screen存在更广泛的设计问题:它始终以提升的权限运行,仅针对被认为危险的操作选择性丢弃权限。对于健壮的setuid-root程序,应该采用相反的方式:默认丢弃权限,仅在确实需要提升权限的操作时临时获取。"他们建议将多用户支持设为可选功能,可能限制为受信任组使用,并提出更广泛的架构变更以确保安全的权限处理。

相关推荐
浩浩测试一下5 小时前
渗透信息收集- Web应用漏洞与指纹信息收集以及情报收集
android·前端·安全·web安全·网络安全·安全架构
Fortinet_CHINA7 小时前
工业网络安全新范式——从风险可见性到量化防御的进化
安全·web安全
JeffersonZU8 小时前
Linux/Unix进程概念及基本操作(PID、内存布局、虚拟内存、环境变量、fork、exit、wait、exec、system)
linux·c语言·unix·gnu
网安小白的进阶之路9 小时前
A模块 系统与网络安全 第三门课 网络通信原理-3
网络·windows·安全·web安全·系统安全
HumanRisk9 小时前
HumanRisk-自动化安全意识与合规教育平台方案
网络·安全·web安全·网络安全意识教育
安全系统学习16 小时前
【网络安全】Mysql注入中锁机制
安全·web安全·网络安全·渗透测试·xss
深圳安锐科技有限公司20 小时前
深圳安锐科技发布国内首款4G 索力仪!让斜拉桥索力自动化监测更精准高效
运维·安全·自动化·自动化监测·人工监测·桥梁监测·索力监测
潘锦20 小时前
海量「免费」的 OPENAI KEY,你敢用吗?
安全·openai
冰橙子id21 小时前
linux系统安全
linux·安全·系统安全
上海锝秉工控1 天前
防爆拉线位移传感器:工业安全的“隐形守护者”
大数据·人工智能·安全