Burrito: Unauthenticated webhooks trigger unauthorized Terraform plans
Summary
Burrito, a Kubernetes operator for Terraform automation, accepts unsigned GitHub and GitLab webhook events for repositories without a configured webhookSecret. An unauthenticated attacker who can reach the burrito-server webhook endpoint and knows a tracked repository URL can forge events to create or delete TerraformPullRequest resources. This can trigger terraform plan runs with the operator's stored git and cloud credentials, and plan output may be posted to another pull request's comment thread. The vulnerability alone does not force a terraform apply, but plan-time code execution depends on the selected branch's contents.
Affected
- Burrito versions before 0.13.0
- Configurations where a TerraformRepository credential omits webhookSecret or sets it to an empty value
Fixed in
- Burrito 0.13.0 (webhooks without a non-empty webhookSecret are rejected)
- Newer releases also contain the fix; run the latest release
Workaround
- Set a non-empty webhookSecret on every TerraformRepository credential
- Restrict network access to the burrito-server webhook endpoint (allow only GitHub/GitLab source ranges)
- Review existing TerraformPullRequest resources for unexpected entries
No vendor-documented interim workaround found.
Exploitation
- Not listed in CISA KEV; no known exploitation confirmed by the sources reviewed
- A public proof of concept entry exists but is unverified
- Honeypot observations are inconclusive
Our recommendation
- Inventory all Burrito deployments and upgrade to the latest release, at least 0.13.0
- Until upgraded, restrict access to the webhook endpoint at ingress or firewall
- Confirm every TerraformRepository has a non-empty webhookSecret
- Rotate stored git and cloud credentials if an unpatched instance was reachable and logs show unexplained webhook traffic or TerraformPullRequest changes
- Review the GitHub advisory GHSA-7m68-72r6-3jx8 for the official affected range
Public exploits
PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.
Research sources
- GitHub Security Advisory GHSA-7m68-72r6-3jx8 github.com
- Fix commit 1d48432 (enforce non-empty webhook secret) github.com
- Burrito release v0.13.0 github.com
- NVD/Vulners record CVE-2026-102649 vulners.com
- VulDB entry 426556 vuldb.com
Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 30 Oct 2026, 14:53.
Original description (NVD)
Burrito is a Terraform Automation Collaboration Software (TACoS) Kubernetes operator. Prior to 0.13.0, `POST /api/webhook` accepts unsigned GitHub and GitLab events when a `TerraformRepository`'s credentials omit `webhookSecret` or set it to an empty value, including credentials configured for git authentication and polling. `Credential.WebhookSecret` is optional, and `go-playground/webhooks` skips signature or token verification when the secret is empty. Anyone who can reach `burrito-server`'s endpoint and knows a tracked repository's URL can forge events to create or delete `TerraformPullRequest` custom resources with attacker-chosen `Branch`, `Base`, and `ID` fields. For GitHub `pull_request` events, the controller fetches changed files using the real pull request number but does not cross-check the payload's branch against that pull request. Pairing a real, existing pull request number with an unrelated existing branch in the same repository can therefore cause an unauthorized `terraform plan` for affected layers using the operator's stored git and cloud credentials. Code analysis also indicates that the resulting plan can be posted to the real pull request's comment thread, exposing and misattributing another branch's infrastructure changes. Auto-apply is disabled for these temporary layers, so this vulnerability alone cannot force a `terraform apply`; plan-time provider and data-source code execution depends on the selected branch's contents. This issue is fixed in version 0.13.0.
NVD references (4)
Sources
The tracker combines official, freely usable data sources – updated continuously:
- NVD (NIST) – CVEs, rating (CVSS), affected products
- CISA KEV – vulnerabilities confirmed by CISA as actively exploited
- CISA Vulnrichment – CISA assessment (SSVC) in the official CVE record
- FIRST EPSS – probability of exploitation
- Microsoft MSRC – Patch Tuesday: vulnerabilities, severity, updates
- PoC-in-GitHub – public proof-of-concept repositories
- Metasploit (Rapid7) – modules of the Metasploit Framework
- Exploit-DB (OffSec) – archive of public exploits (links only)
- Patch days: official vendor pages (linked per vendor) (Vendor patch days)
This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.
Affected? We can help.
We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.
