LEGAL DISCLAIMER: This platform is for authorized security research and educational purposes only. Scanning assets without permission is illegal.
Back to Research Hub
Security Threat Study

Dangling DNS Assets: Measuring the Prevalence of Subdomain Takeover Vectors

Published: 2026-06-04 (Updated: 2026-06-05)

Executive Summary

Subdomain takeover remains a high-severity threat. Attackers hijacking trust structures can execute phishing campaigns or steal session cookies scoped to root domains.

Key Telemetry Findings

2.4%
Dangling CNAME Rate

More than 2% of corporate DNS zones contain orphan third-party host points.

55.0%
S3 Target Vector Dominance

Amazon S3 remains the most common service vector for orphaned points.

30.0%
GitHub Pages Hijacking Risk

Unassigned GitHub Pages host CNAMEs allow immediate hijack.

// Subdomain Takeover Host Target Distribution

Data Metrics
Amazon S3
55%
GitHub Pages
30%
Heroku/Other SaaS
15%

Introduction: When Your Domain Becomes the Attacker's Asset

A subdomain takeover occurs when a valid DNS record points to a third-party service that no longer exists or is no longer controlled by the organization. An attacker who discovers this orphaned configuration can register the decommissioned service, gaining full control over content served under the organization's own domain. This is not a theoretical attack — it is trivially executable, requires no exploitation of any vulnerability, and provides attackers with an organizational trust anchor they can weaponize for phishing, session hijacking, and CSP bypass.

This threat report quantifies the prevalence of subdomain takeover vulnerabilities across 1,000 corporate domain namespaces and documents the specific attack chains they enable.

Research Methodology

For each organization in our sample, we performed passive subdomain enumeration via Certificate Transparency logs, followed by active DNS resolution to identify live CNAME chains. Each CNAME endpoint was queried to determine whether the pointed-to third-party service was actively claimed. Services returning characteristic "unclaimed" response bodies (e.g., AWS S3 "NoSuchBucket", GitHub Pages "There isn't a GitHub Pages site here", Heroku "No such app") were flagged as takeover-vulnerable.

Data was collected between May 1–June 4, 2026. No takeovers were performed or demonstrated during this research.

Prevalence Findings

Dangling CNAME Rate

2.4% of all corporate DNS zones analyzed contained at least one dangling CNAME record pointing to a decommissioned third-party service. For an organization with 100 subdomains, this equates to approximately 2–3 actively exploitable takeover vectors at any given time.

Third-Party Service Vulnerability Distribution

| Service Platform | Proportion of Dangling CNAMEs | Takeover Difficulty |

|---|---|---|

| Amazon S3 (s3.amazonaws.com) | 55.0% | Easy — register bucket with same name |

| GitHub Pages (github.io) | 30.0% | Easy — create repo with matching username/project |

| Heroku / Render / Railway | 8.0% | Medium — create app with matching subdomain |

| Zendesk / Freshdesk | 4.0% | Medium — register tenant with matching subdomain |

| Azure / Netlify / Vercel | 3.0% | Easy to Medium |

Amazon S3 dominates the takeover vector landscape because organizations frequently provision S3 buckets for static site hosting, marketing pages, or document storage, then delete the bucket when the project ends without removing the corresponding CNAME record from their DNS zone.

Attack Chain Analysis

Attack Chain 1: Amazon S3 Subdomain Takeover → Phishing

1. Attacker discovers docs.example.com CNAME example-docs.s3-website-us-east-1.amazonaws.com

2. Querying docs.example.com returns: NoSuchBucket — The specified bucket does not exist

3. Attacker creates S3 bucket named example-docs in any AWS account.

4. Attacker uploads a realistic phishing page mimicking docs.example.com.

5. docs.example.com now serves the attacker's content under the victim organization's trusted domain.

6. Attackers distribute phishing links using the legitimate subdomain. Victims and spam filters trust the domain.

Credential Yield: High. Users familiar with docs.example.com as a legitimate internal resource will enter credentials without suspicion.

Attack Chain 2: GitHub Pages Takeover → Cookie Theft

1. Attacker discovers blog.example.com CNAME examplecorp.github.io with GitHub returning "There isn't a GitHub Pages site here."

2. Attacker creates a GitHub account named examplecorp (if available) and enables GitHub Pages.

3. Attacker serves a JavaScript payload that harvests cookies scoped to .example.com.

4. Any user visiting any page on example.com and then navigating to blog.example.com will have their cookies forwarded to the attacker's server.

5. Session cookies allow full account takeover without any credential knowledge.

Severity: Critical. Parent-domain scoped cookies are the most valuable short-term takeover target.

Attack Chain 3: CSP Bypass via Hijacked Subdomain

Many organizations configure permissive Content Security Policies that trust all subdomains: Content-Security-Policy: script-src 'self' *.example.com;. An attacker who controls any subdomain under example.com can serve arbitrary JavaScript that executes within the security policy boundary of the main site — enabling cross-site scripting without any vulnerability in the main application codebase.

Vulnerable Service Detection Signatures

The following response body patterns indicate a takeover-vulnerable service:

| Service | Detection String |

|---|---|

| AWS S3 | NoSuchBucket or The specified bucket does not exist |

| GitHub Pages | There isn't a GitHub Pages site here |

| Heroku | No such app |

| Netlify | Not Found - Request ID: |

| Zendesk | Help Center Closed |

| Azure Blob | BlobNotFound or The specified resource does not exist |

| Fastly | Fastly error: unknown domain |

Remediation Framework

Immediate: DNS Audit and Dangling Record Removal

1. Export your complete DNS zone file.

2. For every CNAME record, resolve the target and verify the pointed-to service is actively claimed and owned.

3. Remove CNAME records for any decommissioned service immediately.

4. Prioritize records pointing to cloud storage (S3, GCS, Azure Blob) and static hosting platforms.

Process: Integrate DNS Cleanup into Decommissioning Workflows

Establish a mandatory checklist for decommissioning any cloud resource that has a corresponding DNS record:

  • [ ] Identify all DNS records pointing to this resource
  • [ ] Remove DNS records from zone configuration
  • [ ] Verify DNS propagation confirms record removal
  • [ ] Then proceed with resource deletion

Never delete the cloud resource first. The window between resource deletion and DNS record removal is the takeover window.

Continuous: Automated Dangling CNAME Monitoring

Deploy automated tools that continuously query all CNAME endpoints and alert on takeover signatures. Open-source tools like subjack and can-i-take-over-xyz maintain up-to-date signatures for vulnerable service responses.

Compliance Implications

A successful subdomain takeover that results in phishing or data theft may trigger compliance reporting obligations:

| Regulation | Implication |

|---|---|

| GDPR / DPDPA | Data breach notification required within 72 hours if personal data is compromised |

| PCI-DSS 4.0 | Cardholder data environment integrity violation |

| SOC 2 Type II | Availability and confidentiality control failure |

| HIPAA | Breach notification requirement if PHI is exposed |

Conclusion

Subdomain takeover vulnerabilities are among the highest-return, lowest-effort attacks available to threat actors. With a dangling CNAME rate of 2.4% across corporate DNS zones, and S3 bucket registration available to any AWS account holder within minutes, the barrier to exploitation is effectively zero. Organizations must treat DNS hygiene as a continuous security discipline, implementing automated monitoring for orphaned records and enforcing DNS cleanup as a mandatory step in all cloud resource decommissioning workflows. The cost of a single successful takeover — in terms of phishing damage, session hijacking, and regulatory notification — vastly exceeds the operational investment required to prevent it.

Technical Subdomain Takeover and Hijacking Vectors

Subdomain takeovers are high-severity vulnerabilities that exploit the relationship between DNS configurations and third-party cloud hosting providers. A takeover occurs when a DNS CNAME record points a subdomain to a external resource that has been decommissioned or deleted, but the DNS pointer is left active.

The attack surface covers several service categories:

  • Cloud Storage Buckets (AWS S3, Azure Blob): If a CNAME points to bucketname.s3.amazonaws.com and the bucket is deleted, anyone can create an AWS bucket with the same name and serve content under the subdomain.
  • Static Site Hosting (GitHub Pages, Netlify): If a subdomain points to username.github.io and the GitHub repository is deleted or renamed, an attacker can link their repository to the subdomain.
  • Customer Support Portals (Zendesk): Orphaned pointers to ticket portals allow attackers to claim the tenant name and intercept support communication.

Attack Verification Signatures and Proof-of-Concept

To verify if a dangling CNAME is vulnerable to takeover, inspect the HTTP response headers and body. Each cloud provider returns distinct signatures for unclaimed resources:

  • Amazon S3: Returns HTTP status 404 with the XML body containing <Code>NoSuchBucket</Code>.
  • GitHub Pages: Returns HTTP status 404 with the text There isn't a GitHub Pages site here.
  • Heroku: Returns a custom error page with the text No such app.

Automation tool for dangling CNAME detection

To audit your DNS records for dangling entries, run this Python script:

`python

# SECURE AUDIT: Auditing subdomains for takeover signatures

import requests

SIGNATURES = {

"NoSuchBucket": "Amazon S3 Takeover Possible",

"There isn't a GitHub Pages site here": "GitHub Pages Takeover Possible",

"No such app": "Heroku Takeover Possible",

"Help Center Closed": "Zendesk Takeover Possible"

}

def check_takeover(url):

try:

response = requests.get(url, timeout=10)

content = response.text

for sig, msg in SIGNATURES.items():

if sig in content:

print(f"[!] DANGER: {url} matches '{sig}' -> {msg}")

return True

print(f"[+] Safe: {url} returned {response.status_code}")

except requests.exceptions.RequestException as e:

print(f"[-] Connection failed for {url}: {e}")

return False

if __name__ == "__main__":

test_subdomains = [

"http://docs.reconshield.in",

"http://blog.reconshield.in"

]

for sub in test_subdomains:

check_takeover(sub)

`

Remediation Workflows and Governance

Preventing subdomain takeovers requires integrating DNS management into your asset lifecycle:

1. Audit DNS Zones: Extract your DNS zone files and resolve all CNAME records. Verify that each target service is active and claimed.

2. Remove Orphaned Records: Delete the CNAME or ALIAS records for any service that is no longer in use.

3. Decommission in Order: When deprecating a service, remove the DNS record first, wait for propagation to complete, and only then delete the cloud provider resource.

Technical Deep-Dive and Administrative Guidance

From an architectural perspective, deploying secure and resilient Subdomain Takeover & CNAME Hijacking Threat Report configurations requires a deep understanding of the underlying network topologies. Enterprise networks must separate public-facing entry points from internal resources. This is typically achieved using a Demilitarized Zone (DMZ) bounded by multi-tiered firewall configurations. Each layer of the architecture should enforce strict access controls, minimizing the propagation of network traffic between segments.

Web applications operating over HTTP rely on secure Subdomain Takeover & CNAME Hijacking Threat Report transport layer configurations. The introduction of modern RESTful architectures has simplified data exchange but expanded the API attack surface. Automated API gateways must handle rate limiting, request validation, and identity federation. Standardizing on JSON payloads and structured error codes helps prevent parser exploits and ensures consistent error handling.

System architectures must be designed to withstand high-volume distributed attacks. By distributing traffic across multiple geographic regions using Anycast routing and Content Delivery Networks (CDNs), organizations can absorb large traffic spikes. Dynamic routing protocols like BGP coordinate path selections, while local load balancers distribute traffic across cluster instances to ensure high availability.

Threat modeling is essential for identifying architectural weaknesses. Security teams must model attacks against authentication mechanisms, data storage, and external API integrations. Mitigating transport-layer threats requires mandatory encryption, disabling legacy protocols, and enforcing strict cryptographic configurations.

Data integrity and confidentiality must be protected throughout the data lifecycle. Encrypting data at rest using AES-256 and data in transit using TLS 1.3 is the standard for modern enterprises. Cryptographic key rotation schedules, secure key storage (such as hardware security modules), and tokenization help mitigate the risk of data compromise.

Active Subdomain Takeover & CNAME Hijacking Threat Report security controls must be deployed to monitor and block unauthorized actions. Web Application Firewalls (WAFs) inspect incoming HTTP traffic for signature patterns matching known vulnerabilities. Intrusion Detection Systems (IDS) analyze low-level packet flows for network anomalies, alerting security operations when unexpected scans or access attempts are detected.

Remediation workflows must be standardized and automated to minimize exposure. When a security gap is identified, administrators must apply pre-approved configuration patches and update dependencies. Regularly running Subdomain Takeover & CNAME Hijacking Threat Report audits tools ensures that new deployments are audited for configuration drift and outdated components.

Hardening server operating systems involves disabling unused services, closing unnecessary ports, and removing legacy packages. Web servers like Nginx and Apache should be configured with minimal privileges, running under dedicated, non-root user accounts. Applying permissions structures prevents attackers from accessing sensitive system files.

Patch management policies must enforce timely deployment of security updates. Critical updates should be applied within 72 hours of release, while medium-severity patches should be deployed during regular maintenance cycles. Maintaining an up-to-date asset inventory is crucial for identifying which servers require patching during security releases.

Compliance frameworks provide a structured roadmap for security governance. Standards like PCI-DSS 4.0 dictate strict rules for Subdomain Takeover & CNAME Hijacking Threat Report data protection, access monitoring, and Subdomain Takeover & CNAME Hijacking Threat Report audits. Organizations must perform regular external scanning and remediate any vulnerabilities that yield high CVSS scores.

SOC 2 Type II audits evaluate an organization's Subdomain Takeover & CNAME Hijacking Threat Report security controls over time. The trust services criteria cover security, availability, processing integrity, confidentiality, and privacy. Maintaining comprehensive access logs, configuration change records, and incident response plans is required to demonstrate compliance to auditors.

NIST Special Publication 800-53 offers guidelines for securing federal information systems. It defines security control baselines covering access control, risk assessment, system protection, and incident response. Aligning corporate security policies with the NIST framework helps build a mature, defensible security posture.

Continuous monitoring is the foundation of proactive threat detection. Security teams must aggregate log data from firewalls, web servers, and identity providers into a centralized SIEM platform. Analyzing these logs in real-time allows SOC analysts to detect and respond to security incidents before they cause damage.

Automated alerting systems should be configured to notify engineers when system metrics deviate from normal baselines. Monitoring certificate expiration parameters, port exposure changes, and DNS record updates helps detect operational failures early. Setting up external health checks provides visibility into service availability from the user's perspective.

Security operations must integrate external threat intelligence feeds to identify emerging threats. Threat intelligence provides context on active campaigns, indicators of compromise (IoCs), and attacker methodologies. Using this intelligence to update firewall rules and security policies helps organizations defend against sophisticated adversaries.

From an architectural perspective, deploying secure and resilient Subdomain Takeover & CNAME Hijacking Threat Report configurations requires a deep understanding of the underlying network topologies. Enterprise networks must separate public-facing entry points from internal resources. This is typically achieved using a Demilitarized Zone (DMZ) bounded by multi-tiered firewall configurations. Each layer of the architecture should enforce strict access controls, minimizing the propagation of network traffic between segments.

Web applications operating over HTTP rely on secure Subdomain Takeover & CNAME Hijacking Threat Report transport layer configurations. The introduction of modern RESTful architectures has simplified data exchange but expanded the API attack surface. Automated API gateways must handle rate limiting, request validation, and identity federation. Standardizing on JSON payloads and structured error codes helps prevent parser exploits and ensures consistent error handling.

System architectures must be designed to withstand high-volume distributed attacks. By distributing traffic across multiple geographic regions using Anycast routing and Content Delivery Networks (CDNs), organizations can absorb large traffic spikes. Dynamic routing protocols like BGP coordinate path selections, while local load balancers distribute traffic across cluster instances to ensure high availability.

Threat modeling is essential for identifying architectural weaknesses. Security teams must model attacks against authentication mechanisms, data storage, and external API integrations. Mitigating transport-layer threats requires mandatory encryption, disabling legacy protocols, and enforcing strict cryptographic configurations.

Data integrity and confidentiality must be protected throughout the data lifecycle. Encrypting data at rest using AES-256 and data in transit using TLS 1.3 is the standard for modern enterprises. Cryptographic key rotation schedules, secure key storage (such as hardware security modules), and tokenization help mitigate the risk of data compromise.

Active Subdomain Takeover & CNAME Hijacking Threat Report security controls must be deployed to monitor and block unauthorized actions. Web Application Firewalls (WAFs) inspect incoming HTTP traffic for signature patterns matching known vulnerabilities. Intrusion Detection Systems (IDS) analyze low-level packet flows for network anomalies, alerting security operations when unexpected scans or access attempts are detected.

Remediation workflows must be standardized and automated to minimize exposure. When a security gap is identified, administrators must apply pre-approved configuration patches and update dependencies. Regularly running Subdomain Takeover & CNAME Hijacking Threat Report audits tools ensures that new deployments are audited for configuration drift and outdated components.

Study Methodology

Queried active CNAME pointers against known third-party host response headers (S3, GitHub Pages, Zendesk, etc.) to check for unassigned configurations.

Data Sources & Telemetry Scope

ReconShield Active DNS telemetry and external host state analysis.

How to Cite this Study

ReconShield Threat Research. "Subdomain Takeover & CNAME Hijacking Threat Report." June 2026. Available at https://reconshield.in/research/subdomain-takeover-report.