Search
Find a vulnerability
Search criteria
4 vulnerabilities by gruntwork-io
CVE-2026-64672 (GCVE-0-2026-64672)
Vulnerability from nvd – Published: 2026-11-03 20:44 – Updated: 2026-11-03 20:44
VLAI
EPSS
VEX
Title
Terragrunt catalog predictable temp symlink clobber
Summary
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.1.1, the terragrunt catalog command derives a predictable per-repository catalog clone root under the shared system temporary directory and follows a symlink already placed at that path. A local attacker who can write to the temporary directory and predict the cataloged repository can redirect cleanup and cloning outside the intended root, causing an existing repository-named directory to be deleted and replaced in the victim's security context. The attack requires the victim to run terragrunt catalog on a shared host while the symlink is present, and it is not remotely exploitable. This issue is fixed in version 1.1.1.
Severity
CWE
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/gruntwork-io/terragrunt/securi… | x_refsource_CONFIRM |
| https://github.com/gruntwork-io/terragrunt/pull/6438 | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/commit… | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/releas… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| gruntwork-io | terragrunt |
Affected:
< 1.1.1
|
{
"containers": {
"cna": {
"affected": [
{
"product": "terragrunt",
"vendor": "gruntwork-io",
"versions": [
{
"status": "affected",
"version": "\u003c 1.1.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.1.1, the terragrunt catalog command derives a predictable per-repository catalog clone root under the shared system temporary directory and follows a symlink already placed at that path. A local attacker who can write to the temporary directory and predict the cataloged repository can redirect cleanup and cloning outside the intended root, causing an existing repository-named directory to be deleted and replaced in the victim\u0027s security context. The attack requires the victim to run terragrunt catalog on a shared host while the symlink is present, and it is not remotely exploitable. This issue is fixed in version 1.1.1."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "LOCAL",
"baseScore": 4.4,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-59",
"description": "CWE-59: Improper Link Resolution Before File Access (\u0027Link Following\u0027)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-377",
"description": "CWE-377: Insecure Temporary File",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-03T20:44:04.616Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-wv6g-x823-wx9m",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-wv6g-x823-wx9m"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/pull/6438",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/pull/6438"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/commit/668891c5a2ad2996f134bb8b00098754674ea94a",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/commit/668891c5a2ad2996f134bb8b00098754674ea94a"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.1"
}
],
"source": {
"advisory": "GHSA-wv6g-x823-wx9m",
"discovery": "UNKNOWN"
},
"title": "Terragrunt catalog predictable temp symlink clobber"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-64672",
"datePublished": "2026-11-03T20:44:04.616Z",
"dateReserved": "2026-07-20T17:12:12.891Z",
"dateUpdated": "2026-11-03T20:44:04.616Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45099 (GCVE-0-2026-45099)
Vulnerability from nvd – Published: 2026-08-21 20:07 – Updated: 2026-08-25 14:23
VLAI
EPSS
VEX
Title
Terragrunt: Arbitrary File Deletion via Malicious Module Manifest
Summary
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.0.4, Terragrunt trusts paths decoded from a downloaded module's .terragrunt-module-manifest during fileManifest.Clean() in internal/util/file.go. A malicious or compromised external module can place absolute or traversal paths in the manifest, causing cleanup to delete files outside the module cache that are accessible to the Terragrunt process before OpenTofu or Terraform executes. This deletion-only primitive can remove local source code or configuration and disrupt CI/CD pipelines. This issue is fixed in version 1.0.4.
Severity
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-25 14:23 UTC
CWE
- CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/gruntwork-io/terragrunt/securi… | x_refsource_CONFIRM |
| https://github.com/gruntwork-io/terragrunt/pull/6032 | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/commit… | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/releas… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| gruntwork-io | terragrunt |
Affected:
< 1.0.4
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-45099",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-08-25T14:23:03.914445Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T14:23:16.006Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "terragrunt",
"vendor": "gruntwork-io",
"versions": [
{
"status": "affected",
"version": "\u003c 1.0.4"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.0.4, Terragrunt trusts paths decoded from a downloaded module\u0027s .terragrunt-module-manifest during fileManifest.Clean() in internal/util/file.go. A malicious or compromised external module can place absolute or traversal paths in the manifest, causing cleanup to delete files outside the module cache that are accessible to the Terragrunt process before OpenTofu or Terraform executes. This deletion-only primitive can remove local source code or configuration and disrupt CI/CD pipelines. This issue is fixed in version 1.0.4."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "LOW"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-21T20:07:33.195Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-8394-6f8r-whxg",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-8394-6f8r-whxg"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/pull/6032",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/pull/6032"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/commit/3d6f10d6bccc851c6506a307a0b8675e0346e65e",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/commit/3d6f10d6bccc851c6506a307a0b8675e0346e65e"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4"
}
],
"source": {
"advisory": "GHSA-8394-6f8r-whxg",
"discovery": "UNKNOWN"
},
"title": "Terragrunt: Arbitrary File Deletion via Malicious Module Manifest"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-45099",
"datePublished": "2026-08-21T20:07:33.195Z",
"dateReserved": "2026-05-08T19:27:26.698Z",
"dateUpdated": "2026-08-25T14:23:16.006Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-64672 (GCVE-0-2026-64672)
Vulnerability from cvelistv5 – Published: 2026-11-03 20:44 – Updated: 2026-11-03 20:44
VLAI
EPSS
VEX
Title
Terragrunt catalog predictable temp symlink clobber
Summary
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.1.1, the terragrunt catalog command derives a predictable per-repository catalog clone root under the shared system temporary directory and follows a symlink already placed at that path. A local attacker who can write to the temporary directory and predict the cataloged repository can redirect cleanup and cloning outside the intended root, causing an existing repository-named directory to be deleted and replaced in the victim's security context. The attack requires the victim to run terragrunt catalog on a shared host while the symlink is present, and it is not remotely exploitable. This issue is fixed in version 1.1.1.
Severity
CWE
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/gruntwork-io/terragrunt/securi… | x_refsource_CONFIRM |
| https://github.com/gruntwork-io/terragrunt/pull/6438 | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/commit… | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/releas… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| gruntwork-io | terragrunt |
Affected:
< 1.1.1
|
{
"containers": {
"cna": {
"affected": [
{
"product": "terragrunt",
"vendor": "gruntwork-io",
"versions": [
{
"status": "affected",
"version": "\u003c 1.1.1"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.1.1, the terragrunt catalog command derives a predictable per-repository catalog clone root under the shared system temporary directory and follows a symlink already placed at that path. A local attacker who can write to the temporary directory and predict the cataloged repository can redirect cleanup and cloning outside the intended root, causing an existing repository-named directory to be deleted and replaced in the victim\u0027s security context. The attack requires the victim to run terragrunt catalog on a shared host while the symlink is present, and it is not remotely exploitable. This issue is fixed in version 1.1.1."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "PRESENT",
"attackVector": "LOCAL",
"baseScore": 4.4,
"baseSeverity": "MEDIUM",
"privilegesRequired": "LOW",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "PASSIVE",
"vectorString": "CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:P/VC:N/VI:H/VA:H/SC:N/SI:N/SA:N",
"version": "4.0",
"vulnAvailabilityImpact": "HIGH",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "HIGH"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-59",
"description": "CWE-59: Improper Link Resolution Before File Access (\u0027Link Following\u0027)",
"lang": "en",
"type": "CWE"
}
]
},
{
"descriptions": [
{
"cweId": "CWE-377",
"description": "CWE-377: Insecure Temporary File",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-11-03T20:44:04.616Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-wv6g-x823-wx9m",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-wv6g-x823-wx9m"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/pull/6438",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/pull/6438"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/commit/668891c5a2ad2996f134bb8b00098754674ea94a",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/commit/668891c5a2ad2996f134bb8b00098754674ea94a"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.1",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.1.1"
}
],
"source": {
"advisory": "GHSA-wv6g-x823-wx9m",
"discovery": "UNKNOWN"
},
"title": "Terragrunt catalog predictable temp symlink clobber"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-64672",
"datePublished": "2026-11-03T20:44:04.616Z",
"dateReserved": "2026-07-20T17:12:12.891Z",
"dateUpdated": "2026-11-03T20:44:04.616Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}
CVE-2026-45099 (GCVE-0-2026-45099)
Vulnerability from cvelistv5 – Published: 2026-08-21 20:07 – Updated: 2026-08-25 14:23
VLAI
EPSS
VEX
Title
Terragrunt: Arbitrary File Deletion via Malicious Module Manifest
Summary
Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.0.4, Terragrunt trusts paths decoded from a downloaded module's .terragrunt-module-manifest during fileManifest.Clean() in internal/util/file.go. A malicious or compromised external module can place absolute or traversal paths in the manifest, causing cleanup to delete files outside the module cache that are accessible to the Terragrunt process before OpenTofu or Terraform executes. This deletion-only primitive can remove local source code or configuration and disrupt CI/CD pipelines. This issue is fixed in version 1.0.4.
Severity
SSVC
Exploitation: none
Automatable: yes
Technical Impact: partial
CISA Coordinator · CISA-ADP (v2.0.3)
Decision recorded 2026-08-25 14:23 UTC
CWE
- CWE-22 - Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')
Assigner
References
4 references
| URL | Tags |
|---|---|
| https://github.com/gruntwork-io/terragrunt/securi… | x_refsource_CONFIRM |
| https://github.com/gruntwork-io/terragrunt/pull/6032 | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/commit… | x_refsource_MISC |
| https://github.com/gruntwork-io/terragrunt/releas… | x_refsource_MISC |
Impacted products
1 product
| Vendor | Product | Version | |
|---|---|---|---|
| gruntwork-io | terragrunt |
Affected:
< 1.0.4
|
{
"containers": {
"adp": [
{
"metrics": [
{
"other": {
"content": {
"id": "CVE-2026-45099",
"options": [
{
"Exploitation": "none"
},
{
"Automatable": "yes"
},
{
"Technical Impact": "partial"
}
],
"role": "CISA Coordinator",
"timestamp": "2026-08-25T14:23:03.914445Z",
"version": "2.0.3"
},
"type": "ssvc"
}
}
],
"providerMetadata": {
"dateUpdated": "2026-08-25T14:23:16.006Z",
"orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"shortName": "CISA-ADP"
},
"title": "CISA ADP Vulnrichment"
}
],
"cna": {
"affected": [
{
"product": "terragrunt",
"vendor": "gruntwork-io",
"versions": [
{
"status": "affected",
"version": "\u003c 1.0.4"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu or Terraform to scale. Prior to 1.0.4, Terragrunt trusts paths decoded from a downloaded module\u0027s .terragrunt-module-manifest during fileManifest.Clean() in internal/util/file.go. A malicious or compromised external module can place absolute or traversal paths in the manifest, causing cleanup to delete files outside the module cache that are accessible to the Terragrunt process before OpenTofu or Terraform executes. This deletion-only primitive can remove local source code or configuration and disrupt CI/CD pipelines. This issue is fixed in version 1.0.4."
}
],
"metrics": [
{
"cvssV4_0": {
"attackComplexity": "LOW",
"attackRequirements": "NONE",
"attackVector": "NETWORK",
"baseScore": 6.9,
"baseSeverity": "MEDIUM",
"privilegesRequired": "NONE",
"subAvailabilityImpact": "NONE",
"subConfidentialityImpact": "NONE",
"subIntegrityImpact": "NONE",
"userInteraction": "NONE",
"vectorString": "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",
"version": "4.0",
"vulnAvailabilityImpact": "NONE",
"vulnConfidentialityImpact": "NONE",
"vulnIntegrityImpact": "LOW"
}
}
],
"problemTypes": [
{
"descriptions": [
{
"cweId": "CWE-22",
"description": "CWE-22: Improper Limitation of a Pathname to a Restricted Directory (\u0027Path Traversal\u0027)",
"lang": "en",
"type": "CWE"
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-08-21T20:07:33.195Z",
"orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"shortName": "GitHub_M"
},
"references": [
{
"name": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-8394-6f8r-whxg",
"tags": [
"x_refsource_CONFIRM"
],
"url": "https://github.com/gruntwork-io/terragrunt/security/advisories/GHSA-8394-6f8r-whxg"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/pull/6032",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/pull/6032"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/commit/3d6f10d6bccc851c6506a307a0b8675e0346e65e",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/commit/3d6f10d6bccc851c6506a307a0b8675e0346e65e"
},
{
"name": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4",
"tags": [
"x_refsource_MISC"
],
"url": "https://github.com/gruntwork-io/terragrunt/releases/tag/v1.0.4"
}
],
"source": {
"advisory": "GHSA-8394-6f8r-whxg",
"discovery": "UNKNOWN"
},
"title": "Terragrunt: Arbitrary File Deletion via Malicious Module Manifest"
}
},
"cveMetadata": {
"assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
"assignerShortName": "GitHub_M",
"cveId": "CVE-2026-45099",
"datePublished": "2026-08-21T20:07:33.195Z",
"dateReserved": "2026-05-08T19:27:26.698Z",
"dateUpdated": "2026-08-25T14:23:16.006Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2"
}