Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2024-55950

CVE-2024-55950: Tabby Terminal Privilege Escalation Flaw

CVE-2024-55950 is a privilege escalation vulnerability in Tabby terminal emulator caused by overly permissive entitlements enabling code injection. This article covers the technical details, affected versions, and mitigation.

Published:

CVE-2024-55950 Overview

CVE-2024-55950 affects Tabby (formerly Terminus), a highly configurable cross-platform terminal emulator. Versions prior to 1.0.216 ship with overly permissive macOS entitlements that expand the application's attack surface beyond what its core functionality requires. The application declares both com.apple.security.cs.allow-dyld-environment-variables and com.apple.security.cs.disable-library-validation, a combination that enables DYLD_INSERT_LIBRARIES dylib injection against the signed binary. An attacker with local access can leverage this to load unsigned code inside the Tabby process, inheriting its permissions to the camera, microphone, and personal folders. The issue is tracked under [CWE-276: Incorrect Default Permissions] and fixed in version 1.0.216.

Critical Impact

A local attacker can inject arbitrary libraries into Tabby via DYLD_INSERT_LIBRARIES, executing code within a signed process that holds camera, microphone, and personal folder entitlements on macOS.

Affected Products

  • Tabby terminal emulator (macOS builds) prior to 1.0.216
  • Distributions signed with the vulnerable entitlements.plist
  • Environments where Tabby processes personal data through Apple Events

Discovery Timeline

  • 2024-12-26 - CVE-2024-55950 published to NVD
  • 2026-06-17 - Last updated in NVD database

Technical Details for CVE-2024-55950

Vulnerability Analysis

Tabby's macOS build declares hardened-runtime exceptions that its plugin architecture does not require. Plugins and themes execute as NodeJS modules without native libraries or frameworks. The codebase also does not consume runtime environment variables. Despite this, the application enables both dynamic linker environment variable support and library validation bypass. These entitlements combine to defeat macOS code-signing enforcement for loaded libraries at process start.

Root Cause

The root cause is incorrect default permissions in build/mac/entitlements.plist. The presence of com.apple.security.cs.allow-dyld-environment-variables permits the dynamic linker to honor DYLD_* variables that macOS otherwise strips from hardened processes. The paired com.apple.security.cs.disable-library-validation entitlement removes the requirement that loaded libraries be signed by the same Team ID or by Apple. Together they allow arbitrary unsigned dylibs to load into the Tabby process.

Attack Vector

A local attacker sets DYLD_INSERT_LIBRARIES to point at an attacker-controlled .dylib and launches Tabby. The dynamic linker maps the payload into the Tabby address space before main() executes. Because Tabby holds entitlements for camera (com.apple.security.device.camera), microphone (com.apple.security.device.microphone), and Apple Events access to personal folders, the injected code inherits those permissions without triggering a new TCC prompt.

text
     <true/>
     <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
     <true/>
-    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
-    <true/>
-    <key>com.apple.security.cs.disable-library-validation</key>
-    <true/>
     <key>com.apple.security.device.microphone</key>
     <true/>
     <key>com.apple.security.device.camera</key>

Source: GitHub Commit e1e6e1c. The patch removes both dangerous entitlements from the signed entitlements.plist.

Detection Methods for CVE-2024-55950

Indicators of Compromise

  • Presence of DYLD_INSERT_LIBRARIES in the environment of the Tabby process, observable via ps -E or endpoint telemetry.
  • Unsigned or unexpected .dylib images mapped into the Tabby process, visible with vmmap or sample.
  • Unexpected access to ~/Documents, ~/Downloads, camera, or microphone originating from the Tabby bundle identifier.

Detection Strategies

  • Inventory installed Tabby versions on macOS endpoints and flag any build below 1.0.216.
  • Inspect codesign -d --entitlements :- /Applications/Tabby.app output for the two removed keys.
  • Monitor process creation events for Tabby launches carrying DYLD_* environment variables.

Monitoring Recommendations

  • Alert on child processes spawned by Tabby that access TCC-protected resources without user interaction.
  • Baseline the set of dylibs normally loaded by Tabby and alert on deviations.
  • Correlate Apple Events targeting Finder or personal folders with the Tabby parent process.

How to Mitigate CVE-2024-55950

Immediate Actions Required

  • Upgrade Tabby to version 1.0.216 or later on all macOS endpoints.
  • Audit deployed Tabby installations with codesign -d --entitlements :- and remove older signed builds.
  • Revoke and re-issue any credentials that may have been exposed through terminal sessions if injection is suspected.

Patch Information

The fix is delivered in Tabby 1.0.216. The maintainer removed com.apple.security.cs.allow-dyld-environment-variables and com.apple.security.cs.disable-library-validation from build/mac/entitlements.plist. Details are documented in the GitHub Security Advisory GHSA-jx33-9jc7-24gc and the remediation commit.

Workarounds

  • Re-sign the local Tabby bundle with a modified entitlements.plist that omits both dangerous keys until upgrade is possible.
  • Restrict Tabby execution to trusted users and remove group or world write access to the application bundle to prevent local tampering.
  • Deny Tabby access to camera, microphone, and Full Disk Access under System Settings › Privacy & Security if those capabilities are not used.
bash
# Verify the fix is applied on a macOS endpoint
codesign -d --entitlements :- /Applications/Tabby.app 2>/dev/null | \
  grep -E 'allow-dyld-environment-variables|disable-library-validation'
# No output indicates the vulnerable entitlements are absent (1.0.216+)

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.