Findings

CVE-2026-64672

Terragrunt catalog predictable temp symlink clobber

Published Oct 15, 2026 · updated Oct 15, 2026

### Summary Terragrunt's command clones each repository referenced in your catalog configuration into a temporary working directory. In affected versions, the clone path it derived was deterministic and sat under the shared system temporary directory, in the form . Because that path was predictable and Terragrunt followed a symlink already present there instead of rejecting it, a local attacker could plant a symlink at that path and cause Terragrunt to delete a directory and re-clone into it outside the intended temporary root. ### Impact This affected users who ran on a host they shared with other local users or processes they did not fully trust, such as a multi-user server or a shared CI runner. The attack required a local attacker: a separate local user or process able to write to the shared system temporary directory. It was not remotely exploitable, and the victim had to run while the attacker's symlink was already in place. Because the predictable path depended only on the repository URL being cataloged and the location of the system temporary directory, the attacker could compute it in advance and plant a symlink there before the victim ran the command. When the victim ran , Terragrunt followed the symlink out of the intended temporary root, deleted an existing directory under the attacker-chosen parent, and repopulated that path with the cloned repository contents. All of this happened in the security context of the user running Terragrunt. The attacker controlled the parent directory the symlink pointed to, but not the leaf name: the leaf was fixed to , derived from the repository URL the victim cataloged. The primitive was deletion of an existing directory outside the temporary root, followed by a re-clone into that same path. On a single-user machine with no hostile local processes, exposure was minimal. ### Affected Versions - Terragrunt ### Patches This vulnerability has been resolved in Terragrunt version . All users are strongly advised to upgrade. #

Code

The project this record applies to. Exploit listings stay in References.

Timeline

Detection, updates, and resolution for this record.

  1. Oct 15, 2026 · GitHub Advisory Database

    Detected

    ### Summary Terragrunt's command clones each repository referenced in your catalog configuration into a temporary working directory. In affected versions, the clone path it derived was deterministic and sat under the shared system temporary directory, in the form . Because that path was predictable and Terragrunt followed a symlink already present there instead of rejecting it, a local attacker co

  2. Oct 15, 2026 · GitHub Advisory Database

    Updated

    ### Summary Terragrunt's command clones each repository referenced in your catalog configuration into a temporary working directory. In affected versions, the clone path it derived was deterministic and sat under the shared system temporary directory, in the form . Because that path was predictable and Terragrunt followed a symlink already present there instead of rejecting it, a local attacker co

  3. Oct 15, 2026 · GitHub Advisory Database

    Fix available

    github.com/gruntwork-io/terragrunt fixed in 1.1.1

  4. Oct 15, 2026 · GitHub Advisory Database

    Fix available

    github.com/gruntwork-io/terragrunt fixed in 1.1.1

  5. Oct 15, 2026 · GitHub Advisory Database

    Updated

    ### Summary Terragrunt's command clones each repository referenced in your catalog configuration into a temporary working directory. In affected versions, the clone path it derived was deterministic and sat under the shared system temporary directory, in the form . Because that path was predictable and Terragrunt followed a symlink already present there instead of rejecting it, a local attacker co

Affected

  • Go github.com/gruntwork-io/terragrunt0 → 1.1.1
  • go github.com/gruntwork-io/terragrunt< 1.1.1

Sources

References

CVE-2026-64672 · ZeroDay Findings