Skip to main content

Terragrunt CVE-2026-45099

| EUVDEUVD-2026-64128 MEDIUM
Improper Input Validation (CWE-20)
2026-08-17 https://github.com/gruntwork-io/terragrunt GHSA-8394-6f8r-whxg
6.9
CVSS 4.0 · Vendor: https://github.com/gruntwork-io/terragrunt
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Reference attacker-controlled remote module in Terragrunt config
  2. Delivery
    Terragrunt fetches module over network during init
  3. Exploit
    Forged .terragrunt-module-manifest delivered with traversal paths
  4. Execution
    Cleanup function decodes manifest without boundary validation
  5. Persist
    Process deletes targeted out-of-scope files on host filesystem
  6. Impact
    Pipeline disruption or data loss achieved

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V2 - Validation and Business Logic Input validation, allowlisting
Exploitation Conditions

Exploitation requires that the victim's Terragrunt configuration references a remote module source that is either directly controlled by the attacker or has been compromised to serve a forged .terragrunt-module-manifest. The vulnerability triggers automatically during normal Terragrunt initialization - no additional user interaction is required once the Terragrunt command is invoked. File deletion is bounded by the OS-level permissions of the Terragrunt process; it cannot delete files the process user lacks access to, and it cannot escalate privileges. Exploitation is not possible when only local modules are used, or when all remote module sources are pinned to verified, immutable Git SHAs from internally controlled repositories. The flaw does not affect confidentiality (no read or exfiltration capability) and does not provide code execution. Non-default usage (consuming external, potentially untrusted module sources) is required - organizations using Terragrunt exclusively with internal, SHA-pinned modules are not exposed.

Impact

No CVSS score or EPSS probability is available from NVD or the vendor advisory, requiring defenders to perform independent assessment. The attack vector is network-delivered (a remote module must be fetched), with no required attacker privileges on the victim system, but exploitation is gated on user interaction: the victim must explicitly run a Terragrunt command that triggers module download against an attacker-controlled source. This narrows real-world risk significantly - the attack surface is limited to organizations or individuals who consume remote modules from external, potentially untrusted sources, which is not an uncommon pattern in public registry usage. The impact is limited to file deletion (no RCE, no exfiltration, per vendor confirmation), but in CI/CD pipelines this can translate to high availability and integrity impact - deletion of deployment keys, pipeline scripts, or source code. The absence of a KEV listing and lack of any known public exploit suggest exploitation has not been observed in the wild at time of analysis. The 'RCE' tag in the source metadata is inconsistent with the vendor advisory and should be treated as a mis-classification. Overall risk is meaningful in automated environments consuming third-party modules but is substantially mitigated by the prerequisite of module source trust.

Exploit ScenarioDerived

An attacker publishes a malicious Terraform module to a public registry - or compromises an existing trusted module - and embeds a crafted .terragrunt-module-manifest containing traversal paths such as ../../.ssh/authorized_keys or ../../app/deploy.sh. When a CI/CD runner or developer executes any Terragrunt command that triggers module initialization against this source, Terragrunt automatically downloads the module, reads the forged manifest during cleanup, and silently deletes the targeted out-of-scope files on the host filesystem without any further user interaction. In a pipeline environment, this could remove deployment credentials, pipeline configuration files, or source code artifacts, halting the deployment workflow and potentially requiring manual recovery.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.5% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 17, 2026

Arbitrary file deletion in Terragrunt before v1.0.4 allows an attacker who controls a remote module source to delete any file accessible to the Terragrunt process by embedding directory traversal paths in a forged .terragrunt-module-manifest file within the module. The deletion occurs automatically during the module download and initialization phase - before OpenTofu or Terraform executes - making CI/CD pipelines that consume external modules particularly exposed. No public exploit has been identified and no CISA KEV listing exists; a vendor-released patch is available in v1.0.4. Note: an 'RCE' tag in the source metadata directly contradicts the vendor advisory's explicit statement that this is a deletion-only primitive with no code execution or data exfiltration capability.

RemediationAI

Upgrade Terragrunt to v1.0.4 or later; the release is available at https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4. This version introduces a secure boundary check ensuring all paths referenced in a module's .terragrunt-module-manifest are resolved and validated to remain within the module's destination directory before any deletion is performed. If immediate upgrade is not feasible, apply the following compensating controls in order of effectiveness: first, pin all remote module references to specific, verified Git commit SHAs rather than mutable tags or branches - this prevents a compromised registry entry from substituting a malicious manifest without detection; second, restrict module sources in Terragrunt configurations exclusively to internally hosted, vetted registries or mirrors rather than public registries; third, audit all existing source URLs in Terragrunt configurations to verify they resolve to trusted, internally controlled repositories. Note that URL auditing alone is insufficient if a trusted upstream registry is itself compromised - SHA pinning provides stronger guarantees but requires a maintenance process to track and verify new upstream versions. Running Terragrunt under a process account with minimal filesystem permissions (e.g., restricted to the pipeline workspace directory) limits the blast radius of exploitation but does not remediate the underlying flaw.

Affected VersionsENISA

terragrunt < 1.0.4

Affected Packages

go github.com/gruntwork-io/terragrunt fix: 1.0.4
euvd terragrunt fix: 1.0.4

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 2 packages in go, euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Terragrunt (package: go/github.com/gruntwork-io/terragrunt) is a thin orchestration wrapper for OpenTofu and Terraform that adds module caching, remote module fetching, and lifecycle management. When downloading remote modules, Terragrunt tracks files it copies into a module's working directory by recording their paths in a .terragrunt-module-manifest file stored alongside the module. During the cleanup phase preceding each fresh OpenTofu/Terraform run, Terragrunt decodes this manifest and deletes the listed file paths to prepare a clean directory. The root cause is CWE-20 (Improper Input Validation): Terragrunt unconditionally trusted the manifest supplied by the downloaded module without verifying that the paths it contained were bounded within the module's designated destination directory. An attacker-forged manifest containing POSIX directory traversal sequences (e.g., ../../etc/ or ../../home/user/.ssh/) causes the cleanup function to resolve and delete paths entirely outside the cache, up to the limits of the process's OS-level filesystem permissions. The v1.0.4 patch introduces a boundary check that rejects any manifest path resolving outside the manifest's parent directory.

Know when Hashicorp gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (https://github.com/gruntwork-io/terragrunt) PRIMARY 6.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 8.1 HIGH

Network delivery via remote module fetch; no attacker privileges required; user must run Terragrunt command (UI:R); no confidentiality impact; high integrity and availability from arbitrary deletion.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE MEDIUM

Primary rating from Vendor (https://github.com/gruntwork-io/terragrunt).

CVSS VectorVendor: https://github.com/gruntwork-io/terragrunt

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
Low
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

1
CVSS changed
Aug 21, 2026 - 21:22 NVD
6.9 (MEDIUM)

DescriptionCVE.org

Summary

Terragrunt is vulnerable to an arbitrary file deletion flaw when downloading external modules. If a remote module contains a maliciously crafted .terragrunt-module-manifest file, Terragrunt can be tricked into deleting files anywhere on the local filesystem that the Terragrunt process has access to.

Impact

This vulnerability impacts users who download and run untrusted or compromised OpenTofu/Terraform modules. The file deletion occurs during the module download and initialization phase, meaning it happens before OpenTofu or Terraform executes.

In a CI/CD environment or automated runner, an attacker-controlled module could delete arbitrary files, causing denial of service in the deployment pipeline. In a local environment, it could lead to the loss of local source code or configuration files.

This vulnerability is a deletion-only primitive; it does not directly allow for arbitrary code execution (RCE) or data exfiltration.

Affected Versions

  • Terragrunt < v1.0.4

Patches

This vulnerability has been resolved in Terragrunt version v1.0.4.

All users are strongly advised to upgrade.

Workarounds

If users cannot upgrade immediately, they can mitigate this risk by:

  1. Strictly auditing the source URLs of all remote modules used in their Terragrunt configurations.
  2. Only consuming modules from trusted, internally vetted sources or verified registries.
  3. Pinning module versions to specific, known-safe Git commit SHAs rather than mutable tags or branches.

Technical Details

Terragrunt tracks files copied into a downloaded module's working directory using a .terragrunt-module-manifest file. During the directory cleanup process, Terragrunt decodes the entries in this manifest and removes the listed files to prepare a fresh directory for OpenTofu/Terraform runs.

Previously, Terragrunt trusted the manifest provided by the downloaded module without verifying that the paths scheduled for deletion remained within the boundaries of the module's destination directory. An attacker could forge a manifest containing directory traversal paths, causing the cleanup function to target files outside the cache. The patch introduces a secure boundary check to ensure all cleaned paths remain safely isolated inside the intended manifest folder.

Credit

Terragrunt would like to thank Francesco Sabiu (@fsabiu) for discovering and responsibly disclosing this vulnerability.

Threat Intelligence Overview

EPSS Score
0.5%
Top 57% exploitable
Prevalence
Low
niche IaC orchestration wrapper, primarily Terraform/OpenTofu power users
Threat Intel
1
1 source
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.5%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact· derived
Medium

Priority Score

35
Low Medium High Critical
KEV: 0
EPSS: +1
CVSS: +34
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Path traversal exploits occur when applications use user-controlled input to construct file system paths without proper validation.

Remote Code Execution represents the critical moment when an attacker successfully runs arbitrary code on a target system without physical access.

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

CVE-2026-45321 CRITICAL POC
9.6 May 12

Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio

CVE-2026-34976 CRITICAL POC
10.0 Apr 02

Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai

CVE-2021-30476 CRITICAL POC
9.8 Apr 22

HashiCorp Terraform’s Vault Provider (terraform-provider-vault) did not correctly configure GCE-type bound labels for Va

CVE-2019-7442 CRITICAL POC
9.8 May 08

An XML external entity (XXE) vulnerability in the Password Vault Web Access (PVWA) of CyberArk Enterprise Password Vault

CVE-2018-20371 CRITICAL POC
9.8 Dec 23

PhotoRange Photo Vault 1.2 appends the password to the URI for authorization, which makes it easier for remote attackers

CVE-2018-9843 CRITICAL POC
9.8 Apr 12

The REST API in CyberArk Password Vault Web Access before 9.9.5 and 10.x before 10.1 allows remote attackers to execute

CVE-2026-54725 CRITICAL POC
9.6 Jul 31

Server-side request forgery in bank-vaults vault-secrets-webhook (<= 1.22.2) lets a low-privileged tenant with ConfigMap

CVE-2026-60104 CRITICAL POC
9.3 Jul 08

Account takeover in self-hosted Bitwarden Server before 2026.6.0 lets a low-privileged organization member steal any oth

CVE-2021-43837 CRITICAL POC
9.1 Dec 16

vault-cli is a configurable command-line interface tool (and python library) to interact with Hashicorp Vault. Rated cri

CVE-2020-16272 CRITICAL POC
9.1 Aug 03

The SRP-6a implementation in Kee Vault KeePassRPC before 1.12.0 is missing validation for a client-provided parameter, w

CVE-2020-16271 CRITICAL POC
9.1 Aug 03

The SRP-6a implementation in Kee Vault KeePassRPC before 1.12.0 generates insufficiently random numbers, which allows re

CVE-2026-53727 HIGH POC
8.9 Jul 09

Server-side request forgery in the Ruby css_parser gem (< 3.0.0) lets a remote unauthenticated attacker force the parsin

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy