Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessGain read access to Terraform state
-
DeliveryLocate ctfd_team resource entries
-
ExploitRead plaintext password attribute
-
ExecutionAuthenticate to CTFd as the team
-
ImpactAccess or tamper with team data
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V6 - Authentication Credential protection in transit/storage
|
| Exploitation Conditions | Requires that the attacker can already read the Terraform state produced by the CTFd provider (versions 0.1.5 through before 2.8.2) for configurations that define ctfd_team resources with a password attribute - e.g. a local terraform.tfstate on a shared/compromised host, a state file committed to version control or leaked in CI logs, or a misconfigured/exposed remote backend. Because the password is stored as a non-sensitive value, no state-decryption password or additional step is needed to read it. The exploitation-limiting factors are: the attacker must have prior access to the state (PR:L, not an anonymous remote read), only team passwords are exposed, and the vendor states there is no workaround other than restricting who can access state and upgrading to 2.8.2; local-only state makes the vector effectively local rather than network. |
| Impact | This is a credential-exposure flaw (CWE-522) with moderate, access-gated real-world risk rather than a wormable emergency. The only CVSS vector supplied is CVSS 4.0 (7.1, AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SI:L); PR:L correctly signals that exploitation is not possible without some level of authorized access - specifically access to the Terraform state. The high confidentiality rating (VC:H) is appropriate because recovered team passwords are reusable credentials, but the AV:N rating is only meaningful where state is kept in a network-reachable backend; for purely local state the effective vector is local. No EPSS score was provided and the CVE is not on the CISA KEV list, so there is no signal of active or widespread exploitation. No SSVC exploitation/automatable fields were supplied beyond the vuln.today priority of 'this_week', which, combined with an available vendor patch and the lack of KEV/EPSS, is consistent with a prompt-but-not-emergency remediation. The key missing data points are EPSS and any independent exploitation telemetry; the key limiting factor - prior access to Terraform state - is confirmed by the vendor advisory and is the dominant risk modifier here. |
| Exploit ScenarioDerived | An attacker who can read a team's Terraform state (for example a CI job with state access, a state file accidentally committed to a repository, or an exposed/misconfigured remote backend such as an S3 bucket) opens the state and reads the ctfd_team.password value directly, because it is stored as a non-sensitive attribute requiring no decryption. They then reuse that plaintext password to log into CTFd as the affected team. No public working exploit is needed, since the value is plainly readable in the state file. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 28, 2026
The CTFd Terraform Provider (ctfer-io/terraform-provider-ctfd) writes the ctfd_team.password attribute into Terraform state as a non-sensitive value in versions 0.1.5 through 2.8.1, so anyone who can read that state file obtains the CTFd team password directly, without needing the state encryption password or any further decryption step. The exposure is access-gated rather than anonymous: the attacker must already be able to read the state (a shared or compromised host, a state file committed to version control or leaked through CI logs, or an exposed remote backend), which is reflected in the assessed vector CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N and a confidentiality-only impact limited to team passwords. The vendor addressed it in v2.8.2 by marking the schema attribute Sensitive, states that no workaround exists, and no public exploit code has been identified at time of analysis.
RemediationAI
Vendor-released patch: v2.8.2, which sets Sensitive: true on the ctfd_team.password schema attribute (commit b4acaef1df23ea3ca36936fc2d8ef8d157a58e04, pull request https://github.com/ctfer-io/terraform-provider-ctfd/pull/376, release https://github.com/ctfer-io/terraform-provider-ctfd/releases/tag/v2.8.2); upgrade the provider constraint to 2.8.2 or later, and note that the Go metadata records no fixed version for the v1 module line (0.1.5 through 1.1.0), so users on v1 should move to the v2 provider. The vendor states no workaround exists and recommends keeping state in safe environments with a limited set of users who can access it; in practice that means tightening who and what can read the state backend, removing state files from version control and CI artifacts, and ensuring backend encryption at rest is enabled - with the trade-off that these only reduce exposure and do not stop the plaintext value from being present in state written by affected versions. Because state written before the upgrade still contains the password value, treat any previously written or distributed state as exposed and rotate the affected CTFd team passwords; the vendor advisory does not explicitly call for rotation, so treat this as a consequence of the plaintext storage rather than a documented vendor step.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 3 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
Terraform providers declare resource attributes in a schema, and Terraform uses schema flags to decide how values are handled and rendered. In this provider the team resource's password attribute was declared without the Sensitive flag, so the plaintext password was persisted in Terraform state as an ordinary value; the upstream fix in pull request #376 is a single-line schema change adding Sensitive: true to provider/team_resource.go. The root cause class is CWE-522 (Insufficiently Protected Credentials): a secret is stored in a location protected only by whatever access controls and at-rest encryption the state backend provides, so the secret is readable with no additional barrier once the state is obtained. The practical consequence is that state, which is routinely copied to CI runners, artifact stores, S3/GCS backends and developer machines, becomes a credential store for CTFd team accounts. The Go module data distinguishes two lines: go/github.com/ctfer-io/terraform-provider-ctfd (v1, vulnerable >= 0.1.5, <= 1.1.0) is listed without a fixed version, while go/github.com/ctfer-io/terraform-provider-ctfd/v2 is fixed in 2.8.2; only configurations that actually define ctfd_team resources with a password attribute produce the exposed value.
Know when Terraform Provider Ctfd 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
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:L/SA:N
Exploitation requires authorized access to the Terraform state (PR:L) but no further steps once obtained (AC:L); impact is disclosure of reusable team credentials (C:H) with no direct integrity or availability loss.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
CTFer.io's CTFd Terraform Provider manages CTFd resources as code. From 0.1.5 until 2.8.2, ctfd_team.password is stored as a non-sensitive value in Terraform state. A local or remote user with access to that state can read the team password without an additional decryption step. This issue is fixed in 2.8.2.
Technical POC Analysis
CWE-522, Insufficiently Protected Credentials.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
The CTFd Terraform Provider (ctfer-io) versions 0.1.5 through 2.8.1 store CTFd team passwords as plaintext in Terraform state, exposing them to anyone with read access to that state. This affects organizations using this provider for capture-the-flag infrastructure management, particularly where state files are shared, committed to version control, or stored in remote backends. Leadership should care because leaked team passwords could allow unauthorized access to CTFd instances, potentially compromising competition integrity or sensitive team data.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-111358
GHSA-vg84-c5mg-76xh
NVD
CVE.org
EPSS
Exploit-DB