High priorityDisclosed

Advisory · CVE-2026-101045

Fleet's Homebrew cask scripts ran attacker-crafted metadata as root

Fleet-maintained macOS install and uninstall scripts generated from Homebrew cask metadata failed to escape shell metacharacters at every site, allowing root command execution via upstream cask content.

Vendor
fleetdm
Product
Fleet
Identifier / CWE
CVE-2026-101045
CWE-78
Action timing
Immediate
ELI5

Explain it like I’m five

Fleet wrote installation recipes by copying text from a public cookbook, but forgot to sanitize some of the copied lines. A prankster who slipped a booby-trapped line into the cookbook got their instructions executed as the boss of every managed Mac that cooked the recipe.

SIMPLIFIED_ATTACK_PATH04 STEPS
  1. 01Scripts from cask metadata

    Fleet-maintained app install and uninstall scripts for macOS were generated from Homebrew cask metadata.

  2. 02Incomplete escaping

    In manifests generated before 2026-08-19, the script generator escaped this metadata at some interpolation sites but not all of them.

  3. 03Crafted metadata lands

    Cask metadata containing shell metacharacters, for example $(...) command substitution, could be carried into the generated scripts if it passed upstream Homebrew cask review and Fleet's review of the automated ingestion pull request.

  4. 04Root execution

    The resulting scripts execute as root on managed macOS hosts that install or uninstall the affected Fleet-maintained app.

What happened

Fleet-maintained app install and uninstall scripts for macOS were generated from Homebrew cask metadata. In manifests generated before 2026-08-19, the script generator escaped this metadata at some interpolation sites but not all of them, so cask metadata containing shell metacharacters (for example $(…) command substitution) could be carried into scripts that execute as root on managed macOS hosts. An attacker who could land crafted metadata in an upstream Homebrew cask, without needing any Fleet credentials, could achieve arbitrary command execution as root on managed macOS hosts that install or uninstall the affected Fleet-maintained app; exploitation required the crafted metadata to pass both upstream Homebrew cask review and Fleet’s review of the automated ingestion pull request.

The fix landed in Fleet’s ingestion pipeline on 2026-08-19 so that all manifests generated on or after that date escape cask metadata at every interpolation site. Because manifests are generated centrally and distributed as pre-built content, remediation applied to all deployments with no customer action, and the code fix is included in Fleet v4.92.0.

What to do

  1. Confirm the Fleet server is running v4.92.0 or later so the pipeline fix is in place.
  2. Identify managed macOS hosts that installed or uninstalled Fleet-maintained apps from manifests generated before 2026-08-19.
  3. Review those hosts for anomalous root activity around install and uninstall events, including unexpected processes, persistence, and outbound connections.
  4. Treat any confirmed anomaly as a host compromise: reimage the host and rotate credentials that were present on it.

Management note

The trust boundary here extended beyond Fleet itself into upstream Homebrew content, which is an unusual and instructive shape for a device-management platform. The remediation was centrally applied, so the remaining work is forensic: the question is not whether to patch but whether any crafted metadata made it through the two review gates before August 19.