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程序,应该采用相反的方式:默认丢弃权限,仅在确实需要提升权限的操作时临时获取。"他们建议将多用户支持设为可选功能,可能限制为受信任组使用,并提出更广泛的架构变更以确保安全的权限处理。

相关推荐
☞无能盖世♛逞何英雄☜2 小时前
SSRF漏洞
安全·web安全
芯盾时代10 小时前
AI在网络安全领域的应用现状和实践
人工智能·安全·web安全·网络安全
银空飞羽12 小时前
再学学MCP间接提示词注入
安全·mcp·trae
安全系统学习16 小时前
【网络安全】漏洞分析:阿帕奇漏洞学习
java·网络·安全·web安全·系统安全
mooyuan天天20 小时前
pikachu靶场通关笔记14 XSS关卡10-XSS之js输出(五种方法渗透)
安全·web安全·xss·pikachu靶场·xss漏洞
饮长安千年月21 小时前
玄机-第六章 流量特征分析-蚂蚁爱上树
windows·计算机网络·web安全·网络安全·系统安全·安全架构
饮长安千年月1 天前
JavaSec-专题-反序列化
java·开发语言·web安全·网络安全·系统安全·可信计算技术·安全架构
conkl1 天前
Kali Linux 安全工具解析
linux·网络·安全·kali
天翼云开发者社区1 天前
网络安全自动化:最需要自动化的 12 个关键功能
安全
小格子衬衫1 天前
系统巡检常见工作
网络·安全·web安全