TabbyにおけるOS コマンドインジェクションの脆弱性
タイトル TabbyにおけるOS コマンドインジェクションの脆弱性
概要

Tabby(旧称Terminus)は非常に高度に設定可能なターミナルエミュレーターです。1.0.233以前のバージョンでは、すべてのターミナルセッション出力に対するZMODEMプロトコルの検出がユーザーの操作なしに自動的に実行されており、攻撃者が操作するコンテンツをユーザーが表示した際にシェルコマンドを実行できる状態でした。tabby-terminalのZModemMiddlewareは、Zmodem.Sentryを通じてすべてのセッション出力を処理し、ZMODEMのZRQINITヘッダーを検出すると、無条件にdetection.confirm()を呼び出して固定のZRINIT応答(**\x18B0100000023be50\r\n\x11)をアクティブなPTYに入力として書き込みます。検出を引き起こしたプロセス(例:cat)が終了すると、注入されたバイトはユーザーのシェルによってコマンドラインとして解釈されます。fishシェル(デフォルト構成)では、**プレフィックスがカレントディレクトリに対する再帰的なグロブ展開を引き起こし、攻撃者が配置した実行可能ファイル(例:d/xB0100000023be50)をPATHを介さずに相対パス名で実行可能にします。bashやzshでは、二次的なxterm.jsの端末カラー問い合わせフィードバック(OSC 10)を同一ファイル内で併用することで、スラッシュを含むコマンド語の注入が可能となり、これもPATH解決を迂回します。攻撃者は、クローンしたGitリポジトリなどに細工したファイルを提供し、ユーザーがcatで表示するだけでコード実行を達成できるため、操作はファイル閲覧のみで済みます。この脆弱性は1.0.233で修正されました。

想定される影響 当該ソフトウェアが扱う全ての情報が外部に漏れる可能性があります。 また、当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。 さらに、当該ソフトウェアが完全に停止する可能性があります。 そして、この脆弱性を悪用した攻撃の影響は、他のソフトウェアには及びません。 
対策

正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。

公表日 2026年5月15日0:00
登録日 2026年5月21日10:55
最終更新日 2026年5月21日10:55
CVSS3.0 : 重要
スコア 7
ベクター CVSS:3.0/AV:L/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H
影響を受けるシステム
Tabby
Tabby 1.0.233 未満
CVE (情報セキュリティ 共通脆弱性識別子)
CWE (共通脆弱性タイプ一覧)
ベンダー情報
変更履歴
No 変更内容 変更日
1 [2026年05月21日]
  掲載
2026年5月21日10:55

NVD脆弱性情報
CVE-2026-45036
概要

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.

公表日 2026年5月16日2:16
登録日 2026年5月17日4:12
最終更新日 2026年5月21日2:16
影響を受けるソフトウェアの構成
構成1 以上 以下 より上 未満
cpe:2.3:a:tabby:tabby:*:*:*:*:*:*:*:* 1.0.233
関連情報、対策とツール
共通脆弱性一覧