CVE-2026-45036
HighCVSS 7.0Exploitation Probability (EPSS)
Low risk3th percentile - higher than 3% of all known CVEs
Summary
In Tabby prior to 1.0.233, the application automatically confirms ZMODEM protocol detection on terminal session output and injects a fixed ZRINIT response into the PTY. When a user displays a malicious file (e.g., via `cat`), the injected bytes are interpreted by the shell as a command, leading to code execution without user interaction.
Risk Assessment
An attacker could achieve arbitrary code execution on the victim's system, for example by cloning a malicious Git repository and displaying a file, leading to full workstation compromise.
Recommendation
Upgrade Tabby to version 1.0.233 or later. Avoid displaying contents of untrusted files in the terminal until the update is applied.
Other vulnerabilities in Tabby
See all- CVE-2026-72903High
Tabby (formerly Terminus) before version 1.0.235 contains a path traversal vulnerability via a malicious SFTP server. The server can return filenames with backslashes, which are interpreted as path separators on Windows, allowing files to be created or overwritten outside the selected directory.
- CVE-2026-46709High
A vulnerability in Tabby (formerly Terminus) prior to version 1.0.234 allows code execution via command injection when dropping files. The lack of neutralization of command substitution metacharacters ($(...) and `...`) enables an attacker to execute arbitrary code after the victim presses Enter.
Original NVD description (English source)
Tabby (formerly Terminus) is a highly configurable terminal emulator. Prior to 1.0.233, Tabby before 1.0.233 automatically confirms ZMODEM protocol detection on all terminal session output without user interaction, enabling shell command execution when a user displays attacker-controlled content. The ZModemMiddleware in tabby-terminal consumes all session output through a Zmodem.Sentry, and when a ZMODEM ZRQINIT header is detected, unconditionally calls detection.confirm() and writes a fixed ZRINIT response ( **\x18B0100000023be50\r\n\x11) back into the active PTY as input. When the process that triggered the detection (e.g., cat) exits, the injected bytes are consumed by the user's shell as a command line. Under fish (default configuration), the ** prefix triggers recursive glob expansion against the current directory, allowing an attacker-placed executable at a matching nested path (e.g., d/xB0100000023be50) to be executed by relative pathname without relying on PATH. Under bash and zsh, a secondary xterm.js terminal color-query feedback (OSC 10) can be combined in the same file to inject a slash-containing command word that similarly bypasses PATH resolution. An attacker can exploit this by providing a crafted file (e.g., in a cloned Git repository) that a user displays with cat, achieving code execution with no interaction beyond viewing the file. This vulnerability is fixed in 1.0.233.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

