Skip to main content
CRITICAL SEVERITYCVSS 3.1: 9.1Category: PAASRecord: cnameVerified: 2026-02-15

How to Prevent Heroku App CNAME Takeover: Terraform & DNS Remediation

A comprehensive, zero-hallucination security guide to detecting and purging dangling CNAME records pointing to orphaned Heroku App assets. Includes verified HTTP response signatures, CVSS attack vectors, and multi-provider Terraform fixes.

CVSS Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Command-Line Verification & Response Fingerprint

Execute this verification probe against your suspected subdomain to confirm if an orphaned Heroku App resource is currently unallocated and claimable.

Probing CommandBash / Zsh
$ curl -I -s -S https://subdomain.yourcompany.com
Queries HTTP response headers without downloading payloads to test DNS delegation state.
Authoritative Provider Signature404 Not Found
HTTP/1.1 404 Not Found
server: vegur
via: 1.1 vegur

[Response Token Match: "No such app"]
Presence of token "No such app" confirms vulnerability.

Exploitation Risk Matrix & Blast Radius

Dangling DNS records allow adversaries to provision the unclaimed Heroku App endpoint and serve arbitrary malicious content under your authoritative domain.

Session Cookie Theft

If root session cookies use Domain=.yourcompany.com, the hijacked subdomain automatically receives credentials on incoming requests, bypassing HTTP-only safeguards.

OAuth Redirect Poisoning

Permissive OAuth callback patterns (e.g. https://*.yourcompany.com/auth/callback) can be routed directly to the attacker-controlled subdomain to harvest auth codes and tokens.

Cross-Site Scripting (XSS)

Adversaries can host phishing portals, execute arbitrary JavaScript in the context of your domain origin, and bypass Content Security Policy (CSP) wildcard entries.

Remediation Provider & IaC Switcher

Authoritative DNS deletion commands and infrastructure-as-code manifests to purge dangling Heroku App records.

resource "cloudflare_record" "remediated" {
  zone_id = var.cloudflare_zone_id
  name    = "subdomain"
  type    = "CNAME"
  content = "active-service.example.com"
  proxied = true
  ttl     = 1
}

Authoritative Remediation Protocol

  1. 1Delete the dangling CNAME record referencing herokudns.com in authoritative DNS.
  2. 2If the app was migrated, bind the custom domain to the new Heroku app using `heroku domains:add`.
  3. 3Audit your team Heroku organization to confirm no orphaned domain endpoints exist.

Live Heroku App CNAME Pattern Matcher

Paste any suspicious CNAME destination to test if it resolves to an unlinked or vulnerable Heroku App endpoint.

Quick test:
Vulnerable Signature Matched: This target matches the authoritative fingerprint pattern for Heroku App. If this DNS pointer returns an orphaned HTTP response, an attacker can register the backend endpoint and hijack traffic.

RFC Citations & Technical Standards

Live Threat Detection Engine

Scan Your Attack Surface for Dangling Heroku App Records

SubDomainWatch continuously enumerates DNS zones, evaluates CNAME chains with recursive unwrap, and probes HTTP response bodies to catch orphan assets before attackers do.

Run Free 60-Second Scan