Skip to content

Security Independently confirmed2 publishers 2 min read Published Updated

Rogue IPs added to Coder's Cloudflare pool served credential-stealing Terraform modules for 14 hours

Coder says an unidentified actor reached its Cloudflare infrastructure and pointed part of registry.coder.com at servers it controlled. Because those servers are unreachable, nobody can enumerate who downloaded what.

The Watch · Security desk

Send a correction

Illustration accompanying Rogue IPs added to Coder's Cloudflare pool served credential-stealing Terraform modules for 14 hours
Generated illustration

What happened

  • Coder says an unidentified actor got access to its Cloudflare infrastructure and added unauthorized IP addresses to the pool serving its module registry, where they hosted a copy carrying malicious code.
  • Between 07:35 UTC and 21:45 UTC on Monday, August 31, those servers delivered modified Terraform modules to a subset of users pulling components for Coder workspace templates.
  • Everything collected was sent to the lookalike domain coder-infra[.]com, which Coder now tells customers to hunt for in firewall, proxy, DNS and VPC flow logs.

Why it matters

  • Who's exposed exposure Control of the CDN account is now demonstrably a build-chain dependency: an origin pool edit put attacker code behind a hostname and TLS endpoint that every downstream pipeline already trusted.
  • What it limits constraint With the delivery logs sitting on infrastructure Coder never owned, no central list of victims will ever exist, so each operator has to prove its own exposure from retention it may not have kept for August 31.
  • Who has to decide decision Anyone who provisioned during the window has to choose between a full rotation of cloud, CI/CD, OIDC and SSH credentials and living with an unverifiable negative.
  • What it costs cost The rotation bill lands on Coder's users rather than on Coder, and its customer list includes defense contractors and U.S. government deployments that rotate platform secrets under change control.

Origin pool membership is a write operation on the CDN account, not on the origin host. Per Coder's advisory, the actor added unauthorized IP addresses to the pool Cloudflare uses for the module registry [1]. The substitution happened at the layer that decides which origin answers, so from the client side the hostname and the TLS front end were the same ones the build used yesterday, with no server compromise and no forged certificate involved [20]. Cloudflare then routed some registry requests to the attacker's servers and delivered malicious files to a subset of users [2].

The window Coder gives is 07:35 UTC to 21:45 UTC on Monday, August 31 [4]. That is 14 hours 10 minutes, or 850 minutes of build traffic [19]. Terraform modules are prepackaged instructions for creating and configuring infrastructure [15], so what matters for any one deployment is how many workspace builds and provisioner runs landed inside that band, not how many developers are on the roster.

The stealer swept eight classes of secret [16]: provisioner environment variables, cloud and AI-tooling API keys, CI/CD credentials, configuration-file secrets and terminal history, user OIDC tokens, SSH keys, one-time external authentication tokens, and, when the provisioner ran inside coderd, Coder database passwords and other configuration secrets [5]. That last condition is the one to check first. It moves the loss from a workspace's credentials to the platform's own. Collected data went to the lookalike domain coder-infra[.]com [6]. Coder says refresh tokens were never passed to the provisioner and that it has no evidence of impact to customer data it holds [18].

The evidentiary problem is harder than the technical one. The attacker's infrastructure sits outside Coder's control, so Coder has no access to the delivery logs and cannot conclusively identify every compromised deployment [12]. Verification is therefore local work: egress records from firewall, proxy, DNS and VPC flow logs checked for coder-infra[.]com [9], provisioner logs searched for data.external.telemetry with the downloaded modules identified and cached packages purged [10], and the SQL query Coder published run against cached modules and template versions [11]. A clean result only means something if the retention covers August 31.

Fixes shipped across four release branches, 2.37.0, 2.36.4, 2.35.7 and 2.34.9 [8][17]. What those releases actually change is unspecified, and upgrading a version does not undo a stolen key; Coder's own instruction is to rotate everything on the list [7]. Coder's self-hosted development environments are run by Dropbox, Palantir, Square, Mercedes-Benz, KKR, EnBW, the U.S. government and defense contractors [13][14], each of which has to do that rotation itself.

What to watch

  • Whether Coder says how the Cloudflare account access was obtained: stolen credential, API token, or hijacked session.
  • Whether any named user, including the government and defense customers, confirms coder-infra[.]com hits in its own egress logs.
  • Whether Coder documents what the 2.37.0, 2.36.4, 2.35.7 and 2.34.9 releases actually change about module fetching and verification.

Clarity's read

What the record supports and how the coverage leans. The claims behind it follow.

Reality

Evidence60
Adoption
Not scored
Hype gap+5
Incentives45
Confidence65
Why these scores

Claim ledger

Ranked by verification strength, evidence, and original report placement.

  1. [1]

    Coder's advisory states: "An unidentified malicious actor gained access to Coder's Cloudflare infrastructure and added unauthorized IP addresses to the pool used for Coder's module registry," and that those IP addresses hosted a version of Coder's registry containing artifacts with malicious code.

    Reported Supported Source: Coder advisory, via BleepingComputer
  2. [2]

    Coder's registry runs behind Cloudflare; the attacker accessed the underlying infrastructure and added unauthorized servers to the registry's pool, so Cloudflare routed some registry requests to the attacker's servers instead of Coder's, delivering malicious files to a subset of users.

    Reported Supported
  3. [3]

    Earlier this week Coder disclosed that an attacker targeted registry.coder.com, the project's package-hosting site that developers use to source components for their workspace templates.

    Reported Supported
  4. [4]

    Coder said the delivery window for the malicious artifacts was between 07:35 UTC and 21:45 UTC on Monday, August 31, during which the malicious servers delivered modified versions of Terraform modules.

    Reported Supported
  5. [5]

    Coder said the malicious modules acted as information stealers, searching for provisioner environment variables and secrets; cloud infrastructure and AI-tooling API keys; CI/CD credentials; configuration-file secrets and terminal history; user OIDC tokens; configured SSH keys; one-time external authentication tokens; and Coder database passwords and other configuration secrets when the provisioner ran within coderd.

    Reported Supported
  6. [6]

    The collected information was exfiltrated to the lookalike domain coder-infra[.]com.

    Reported Supported
  7. [7]

    Coder recommends that potentially impacted users rotate all impacted secrets on the published list as soon as possible.

    Reported Supported
  8. [8]

    The patched releases are versions 2.37.0, 2.36.4, 2.35.7 and 2.34.9.

    Reported Supported
  9. [9]

    Before upgrading to a patched release, Coder recommends users examine firewall, proxy, DNS and VPC flow logs for connections to coder-infra[.]com.

    Reported Supported
  10. [10]

    Coder tells developers to search provisioner logs for data.external.telemetry, identify modules downloaded during the exposure window, and purge potentially malicious cached packages.

    Reported Supported
  11. [11]

    Coder shared an SQL query that can identify potentially affected cached modules and template versions.

    Reported Supported
  12. [12]

    Because the attacker's infrastructure is outside the project's control, Coder does not have access to crucial logs and cannot conclusively identify every compromised deployment.

    Reported Supported
  13. [13]

    Coder is used by organizations including Dropbox, Palantir, Square, Mercedes-Benz, KKR, EnBW, the U.S. government and defense companies.

    Reported Supported
  14. [14]

    The Coder platform lets organizations give developers secure, self-hosted cloud development environments for building and deploying software, including AI applications.

    Reported Supported
  15. [15]

    Terraform modules are ready-made bundles of instructions for creating and configuring computing infrastructure.

    Reported Supported
  16. [16]

    Coder's list of targeted data covers eight distinct classes of secret.

    Derived Supported
  17. [17]

    Fixes were issued across four separate release branches.

    Derived Supported
  18. [18]

    Coder said refresh tokens were not passed to the provisioner and that there was no evidence of any impact to customer data it maintains.

    Reported Supported
  19. [19]

    The stated delivery window lasted 14 hours 10 minutes, or 850 minutes.

    Derived Supported
  20. [20]

    Because the attacker's change was to the CDN origin pool rather than to Coder's servers, clients continued to request the same registry hostname through the same Cloudflare front end while some responses came from attacker-controlled origins.

    Derived Supported

Sources

2 independent publishers whose own reporting we read for this story.

  1. bleepingcomputer.com

    2 articles · September 4, 2026

    Coder's registry infrastructure compromised to push malicious modules
  2. scworld.com

    1 article · September 4, 2026

    Coder platform targeted by attackers delivering malicious Terraform modules

Topics and entities