IPBUF安全漏洞报告
English
CVE-2026-45803 CVSS 3.5 低危

CVE-2026-45803 GitHub CLI终端转义序列注入漏洞

披露日期: 2026-05-15

漏洞信息

漏洞编号
CVE-2026-45803
漏洞类型
终端转义序列注入
CVSS评分
3.5 低危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
GitHub CLI (gh)

相关标签

终端注入GitHub CLICVE-2026-45803转义序列RCEGitHub Actions

漏洞概述

GitHub CLI(gh)在1.6.0至2.92.0之前的版本中存在安全漏洞,涉及终端转义序列注入。当用户使用特定命令查看 GitHub Actions 工作流日志时,由于未对原始日志输出进行清理,攻击者可利用控制日志内容的机会注入恶意转义序列。受害者查看日志时,其终端可能受影响,导致窗口标题更改、屏幕内容被操纵,或在特定环境下执行任意命令。

技术细节

该漏洞主要源于 GitHub CLI 在处理 GitHub Actions 原始日志输出时的输入验证缺失。具体而言,`gh run view --log` 和 `gh run view --log-failed` 命令直接将工作流日志行流式传输到标准输出(stdout)或配置的分页器,且未对其中包含的终端控制序列进行有效的过滤或清理。攻击者可以通过创建包含恶意内容的 Pull Request 来触发工作流,从而在日志中嵌入特定的 ANSI 转义序列。一旦受害者使用受影响的 CLI 版本查看这些日志,嵌入的恶意序列便会被受害者的终端模拟器解析并执行。根据终端类型的不同,攻击后果可能包括更改窗口标题以显示虚假信息、覆盖屏幕上的关键日志内容以隐藏攻击痕迹,或者利用某些终端模拟器(如 screen)的功能执行任意系统命令,从而导致系统被进一步入侵。

攻击链分析

STEP 1
步骤1:制作恶意内容
攻击者创建一个恶意的 Pull Request 或提交代码,其中包含能够触发 GitHub Actions 工作流的逻辑。
STEP 2
步骤2:注入转义序列
在工作流执行过程中,攻击者控制的脚本向日志中输出包含 ANSI 转义序列的恶意字符串。
STEP 3
步骤3:诱导受害者查看
受害者(如项目维护者)本地安装了存在漏洞的 GitHub CLI 版本,并使用 `gh run view --log` 命令查看该工作流的运行日志。
STEP 4
步骤4:执行攻击载荷
GitHub CLI 将未经过滤的日志输出到终端,终端模拟器解析其中的转义序列,执行更改标题、覆盖显示或执行命令等恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Malicious GitHub Actions Workflow to demonstrate escape sequence injection name: POC-CVE-2026-45803 on: [pull_request] jobs: test: runs-on: ubuntu-latest steps: - name: Inject Escape Sequence run: | # This injects an escape sequence to change the window title # \033 is ESC, ]0; sets window title, \007 is BEL (terminator) echo -e "\033]0;VULNERABLE_SYSTEM\007" # This injects a sequence to hide text (example) echo -e "\033[8m"

影响范围

GitHub CLI >= 1.6.0, < 2.92.0

防御指南

临时缓解措施
如果无法立即升级,建议避免使用 `gh run view --log` 或 `--log-failed` 命令查看来自不受信任来源(如陌生 PR)的日志,改为在 GitHub 网页端查看,或确保终端模拟器不受此类转义序列影响。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表