skip to content

The Endpoint Nobody Owns

A name can still resolve correctly long after the thing it points at was released, so whoever claims that target next answers for it. Interviewers use it to see who owns a name after a teardown.

on this pageshow

explore

questions

4

What is a dangling DNS record, and how does it hand your subdomain to a stranger?

level: juniorimportance: must knowfreq 55%

answer

  1. the record outlives the resource
  2. two systems, two owners, one gap
  3. the target namespace is first come
  4. your name, someone else's content
  5. nothing was exploited anywhere

basics

~20 s

A dangling DNS record still resolves to a target that is no longer yours: a released storage bucket, app slot or cancelled vendor tenant. Whoever re-registers that target name is then served under your subdomain.

solid answer

~50 s

A name like `app.example.com` usually points, via a `CNAME`, at a target name inside a provider's namespace — a storage endpoint, a platform app slot, a vendor custom-hostname endpoint. When the resource is decommissioned the provider frees that target name, but the alias in your zone is a separate object in a separate system and normally survives. The record now dangles: it still resolves, and the target is registrable by anyone. An outsider creates a resource with the same target name in their own account, and from that moment your hostname serves their content. Because proving control of a name is the whole test for a domain-validated certificate, they can also get a publicly trusted certificate for your hostname, so it is served over HTTPS with no warning. Nothing was breached and no software defect was exploited — a free namespace was re-registered.

code

text · 10 lines
text
; example.com zone - untouched since the service was retired
app.example.com.    300  IN  CNAME  proj-7f21.apps.vendor-platform.example.
...

; provider side
proj-7f21.apps.vendor-platform.example.
    slot RELEASED - the name "proj-7f21" is free for any account to create

; consequence
https://app.example.com/  ->  served by whoever creates proj-7f21 next

go deeper

for a junior

Be able to say the sentence plainly: the record still resolves, the thing it points at is free, and whoever takes that thing is served under our name. Know that deleting the resource is the trigger, not the fix.

for a middle

Explain the mechanics: an alias in your zone versus a target in a shared, re-registrable provider namespace, and why the certificate for that hostname follows control of the name rather than ownership of the brand.

for a senior

Show that you know where these come from in practice — a correct decommissioning ticket that owns the resource and not the zone — and be ready to say what you would change about the teardown order rather than just naming the flaw.

for a principal

Own the framing that the organisation is publishing a pointer to something it no longer controls. That makes it a naming-lifecycle problem across teams, not an incident to be patched, and it is the framing that gets it funded.

## What “dangling” means A DNS record maps a name you publish to a target. A hostname like `app.example.com` is very often a `CNAME`: an alias whose value is *another name*, usually one inside a cloud or SaaS provider's own namespace — an object-storage endpoint, a platform app slot, a vendor's custom-hostname endpoint. Your zone says, in effect, “for `app.example.com`, go and ask that other name”. The provider's namespace decides what that other name answers with. A record goes **dangling** the moment the target stops belonging to you while the record keeps resolving. The two live in different systems, owned in practice by different people: the alias is a row in your zone, the target is a resource in someone's cloud account. Deleting the resource does not touch the zone. ## The property that makes it exploitable The enabling fact is not that the record is stale — stale records are ordinary. It is that **the target name is re-registrable, first come first served**. Provider namespaces are usually flat and shared: bucket names, app slot names and tenant subdomains are handed to whichever account asks for one that is currently free. When your resource is deleted, its name goes back in the pool. Anyone who then creates a resource with that exact name inherits everything that still points at it — including your hostname. So the takeover is two ordinary operations: notice a name that resolves to a free target, and register the target. There is no exploit, no credential, no defect. The victim's own zone does all the work of directing traffic. ## What the claimant actually gets - Content served at *your* hostname, to your users, your staff and anything that trusts that name. - A publicly trusted certificate for that hostname, because control of the name is what domain validation tests — the padlock proves the holder controls the name today, never that the name is still operated by the organisation whose brand it carries. - Whatever trust anything else in your estate grants by name or by suffix. ## Common shapes - **A released object-storage bucket.** The zone aliases a hostname to a bucket endpoint; the bucket is emptied and deleted; the bucket name is free. - **A decommissioned platform app slot.** A demo or a retired service is torn down; the slot name returns to the pool. - **A cancelled vendor tenant.** A SaaS subscription lapses; the marketing hostname still aliases the vendor's endpoint, and the vendor re-issues the tenant identifier. - **An A record to a released provider IP address.** A weaker variant: the claimant needs that address reallocated to them, which is probabilistic rather than deterministic — cheap at scale, unreliable against one specific name. ## The twin that is not an attack at all The usual origin is a competent administrator following a correct checklist. A decommissioning ticket says “delete the resource”, and it is closed correctly when the resource is gone. Nothing in that checklist owns the zone, which is often administered by a different team entirely. Both halves behaved properly and the gap between them is the whole vulnerability. ## Who takes it, and why that shapes what happens next The typical claimant is not after you. Bulk squatters enumerate names that resolve to free targets across thousands of organisations, claim the cheap ones, and monetise by resale, by parking, or by borrowing the reputation of a recognisable name. That is why a taken subdomain often sits harmlessly for months before anything is served from it, and why “nobody is targeting us” is not a reason to leave one standing. ## What it is not It is not a poisoned resolver answer and not a seized registrar delegation — in both of those, someone subverts or steals the *answer path*. Here the answer path is correct and honest: your zone genuinely publishes that alias, and the resolver faithfully returns what you asked it to publish. The organisation is not being lied about; it is publishing a pointer to something it no longer owns.

  • The bucket has been deleted. Does that close it?
    No — deleting the resource is what opens it. The alias still resolves and the target name is now back in the provider's free pool, so the exposure begins at deletion and lasts until the record is removed or repointed. The fix is in the zone, not in the account that held the resource.
  • Why can the claimant serve your hostname over HTTPS with no browser warning?
    A publicly trusted certificate for a hostname is issued to whoever can demonstrate control of that hostname at issuance time. Once the alias resolves to their resource, they control it. The padlock is an honest statement about present control of the name and says nothing about who the name belongs to organisationally.
  • How does the A-record-to-a-released-IP variant differ?
    A `CNAME` to a free provider name is deterministic: register the name, done. An `A` record to an address the provider has reclaimed requires that exact address to be reallocated to the claimant, which they can only play as a numbers game across a large pool. It is a real risk in bulk and a poor way to target one organisation.

You keep a sign on the high street reading “our office is upstairs at number 12”, then move out. The sign is still yours and still accurate about where it points — but number 12 has a new tenant, and everyone following your sign now walks into their office.

saying these in an interview costs you the question

  • Thinks deleting the cloud resource removes the risk
  • Says the padlock proves the site is still the organisation's
  • Calls it a hijacked registrar or a poisoned resolver answer
  • Assumes the attacker must have broken into the cloud account
  • Believes a short TTL makes the stale record expire on its own

context

open as a page

Why is a subdomain takeover more than a DNS hygiene ticket when no defect was exploited?

level: middleimportance: should knowfreq 48%

basics

~20 s

Because the asset handed over is the organisation's own name, not the dead resource. A held subdomain inherits cookies scoped to the parent domain, any trust granted by name suffix, certificate eligibility for that host, and the name's reputation.

open as a page

Subdomain takeover needs a resolving name and a claimable target — which do you remove, and in what order?

level: seniorimportance: should knowfreq 38%

basics

~10 s

Remove either and the attack dies, so remove both: retire the record before releasing the resource, and prefer targets bound to proven domain ownership. Patching removes neither dependency.

open as a page

Your DNS zone sits with one team and cloud resources with dozens — who is accountable for names that outlive their targets?

level: principalimportance: nice to knowfreq 22%

basics

~20 s

Accountability belongs with whoever creates the record, enforced by making the record part of the resource's lifecycle. A central zone team can gate and expire records but cannot know when a resource dies, so pure centralisation fails.

open as a page