Dangling CNAME and subdomain takeover
Which name this alias points at. An alias whose target resolves to nothing can be claimed by whoever registers it at that provider, and then serves this domain.
A CNAME record makes one name an alias of another: www.example.com CNAME example.netlify.app means "ask that name instead". Aliases are how sites are attached to CDNs, hosting platforms, shop builders and landing-page tools.
The danger is the dangling CNAME. When the service at the target is cancelled but the alias stays in DNS, the target stops resolving — and on many platforms anyone can then create an account and claim that same name. From then on they serve whatever they like on your subdomain, with your cookies in scope and your domain in the address bar. This is called subdomain takeover.
How SiteScan checks
The scan checks whether www of the registrable domain is a CNAME. If it is not, the row does not appear. If it is, the row shows the target and SiteScan looks up the target's A record: when it resolves, the row is green; when it returns nothing, the alias is dangling and the row turns red. The check is skipped on zones with a wildcard, where every name resolves anyway.
How to fix it
Either reconnect the target (reclaim the name at the provider, restore the project) or delete the CNAME. Make removing DNS records part of decommissioning any external service, and review other aliases in the zone the same way.
See this check on your own site
Run a free scan: the report shows this row for your domain along with the other checks of the site audit.
More in “DNS & email”
What SiteScan checks
TLS certificate
- TLS certificate expiry
- Outdated TLS versions (TLS 1.0/1.1)
- TLS certificate chain
- TLS certificate issuer
- Certificate signature algorithm
Domain registration
- Domain registration expiry
- Registered domain name
- Domain registrar
- Domain registration date
- Domain last updated date
- Domain status codes (EPP)
- Domain transfer lock
- Registrar abuse contact
- RDAP and WHOIS data source
Indexing
- robots.txt file
- CSS and JS blocked in robots.txt
- XML sitemap
- Sitemap index file
- Off-domain URLs in the sitemap
- Sitemap lastmod dates
- Broken URLs in the sitemap
- RSS and Atom feed
Addresses & redirects
Security headers
- HTTP security headers and grade
- Strict-Transport-Security (HSTS) header
- Content-Security-Policy (CSP) header
- X-Content-Type-Options: nosniff
- X-Frame-Options and clickjacking
- Referrer-Policy header
- Permissions-Policy header
- HSTS preload list
- CORS and cross-origin reads
- HTTP TRACE method
Delivery & reputation
- Cache-Control header for HTML
- ETag and Last-Modified revalidation
- HTTP/3 and QUIC support
- Server version disclosure in headers
- DNS blocklist (DNSBL) check
Internal links
Exposure
- Exposed sensitive files (.env, .git, backups)
- Directory listing enabled
- Public JavaScript source maps
- Exposed WordPress endpoints
Well-known files
- security.txt file
- llms.txt for AI assistants
- llms-full.txt file
- ads.txt authorized sellers file
- humans.txt file
- Well-known change-password URL
DNS & email
- MX records (mail servers)
- SPF record
- DMARC record and policy
- DNSSEC signing
- CAA record
- Nameserver redundancy
- IPv6 support (AAAA record)
- MTA-STS policy
- TLS-RPT reporting record
- BIMI record (brand logo in email)
- Wildcard DNS record
- Dangling CNAME and subdomain takeover
Privacy & consent
- Analytics and tracking scripts
- Cookie consent banner
- Privacy policy link
- Terms of service link
- Imprint (Impressum)
- Accessibility statement
Core Web Vitals
- Lighthouse performance score
- Largest Contentful Paint (LCP)
- Cumulative Layout Shift (CLS)
- Interaction to Next Paint (INP)
- CrUX field data vs lab data