skip to content

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

level: middleimportance: should knowfreq 48%

answer

  1. severity from the asset, not a defect
  2. the asset is the name itself
  3. what the browser sends to a sibling host
  4. allowlists written as a suffix
  5. minutes to fix, brand to lose

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.

solid answer

~50 s

The instinct to file it as tidy-up comes from the fact that nothing is broken: no version is vulnerable, no credential leaked, nothing to patch. But severity here is not about a defect, it is about what the name is worth. A cookie set with `Domain=example.com` is sent by the browser to every host under that domain, so a held `app.example.com` receives session cookies the application never intended to expose. Allowlists written by suffix — cross-origin rules, redirect targets, internal callbacks, mail and link filters — usually trust `*.example.com` as though it were one entity. A publicly trusted certificate for the exact hostname follows control of the name. And customers and staff read the name, not the account it is hosted in. The correct classification is “we are publishing a pointer to something a stranger now owns”, and that outranks most patchable findings on the same estate.

go deeper

for a junior

Know that the value at stake is the name itself, and that cookies set for the whole domain reach any host under it. Do not reach for “nothing was hacked, so it is minor”.

for a middle

Explain the inheritance concretely: parent-domain cookie scope, suffix-shaped allowlists, certificate eligibility for the host, and reputation. Be able to name the cookie shape that is not exposed.

for a senior

Rank two dangling names against each other and justify the difference from cookie scope, published visibility and what the label implies. Blanket-critical is as weak an answer as blanket-low.

for a principal

Be ready to defend the reclassification to an owner who wants a defect to point at, and to say what the organisation would need to change so that the next one is genuinely low severity rather than argued about.

## The classification argument The common reflex — “stale record, low severity, put it on the housekeeping list” — is built on a patch-shaped view of risk: find the defective component, rate it, fix it. That view genuinely cannot see this. There is no defective component. Every system involved behaves exactly as designed: the zone publishes what its owner told it to publish, the resolver returns it, the provider allocates a free name to the account that asked for it, and the certificate authority certifies control of a hostname by the party that demonstrably controls it. Severity therefore has to be argued from **what the name carries**, and the name carries more than most people expect. ## What a held subdomain inherits **Cookies scoped to the parent domain.** A cookie set with `Domain=example.com` is attached by the browser to requests for *any* host under `example.com`. If a session, a preference token or an anti-forgery value is scoped that broadly — and it very often is, for convenience — then a page served at a hijacked `app.example.com` receives it. Same-site protections do not intervene, because the two hosts genuinely are the same site: they share a registrable domain. The one common cookie shape that is safe is a host-only cookie with no `Domain` attribute (the `__Host-` prefix enforces exactly that), which is sent only to the host that set it. **Trust granted by suffix.** Real estates are full of allowlists written as a domain suffix rather than a list of hosts: cross-origin request rules, redirect and callback allowlists, internal service policies, link and mail filters, single-sign-on return targets. All of them read `*.example.com` as “us”. A stranger holding one host under that suffix is inside every one of those lists at once, without touching any of the systems that hold them. **Certificate eligibility for that exact hostname.** Demonstrating control of a name is the whole test for domain-validated issuance, and the claimant now controls it. The result is your hostname served over HTTPS with no warning — which removes the one signal a user might otherwise have noticed. **Reputation.** The name appears in old mail, printed material, partner integrations and search results. Content served there borrows every bit of credibility the organisation spent years building, which is precisely what makes the name resaleable to someone else. ## Why “we are fully patched” is not an answer Patching addresses defects in code you run. Here the exposure is a pointer in a zone plus a namespace policy at a provider. You could be perfectly current on every package in the estate and the takeover would proceed identically. Conversely, the fix requires no patch at all — it is one record change. A finding whose cost to fix is minutes and whose loss on exploitation includes session material and brand trust is, on any honest reading, not a low-severity item. ## Where the severity genuinely varies Severity is not uniform across every dangling name, and a good answer says so rather than declaring everything critical: | Factor | Raises it | Lowers it | |---|---|---| | Cookie scope in use on the parent domain | Broad `Domain=` cookies | Host-only cookies everywhere | | Suffix-based trust anywhere in the estate | Wildcard allowlists, wildcard callbacks | Explicit host lists | | The name's visibility | Customer-facing, in mail, in documentation | Never published, random label | | What the name implies | `login.`, `pay.`, `vpn.` | `old-demo-2019.` | That table is the actual answer to “how bad is it”, and it is a better answer than a single label. ## The reviewer's line If you have to argue this in a room, the compact version is: *nothing was exploited because nothing had to be — we are the ones publishing the pointer, and what we handed over is our own name, everything the browser sends to it, and everything else in the estate that trusts it by suffix.* That sentence reclassifies the ticket without needing a defect to point at.

  • Which cookie configuration is not exposed by a hijacked sibling subdomain?
    A host-only cookie — one set with no `Domain` attribute, as the `__Host-` prefix requires. The browser returns it only to the exact host that set it. Any cookie carrying `Domain=example.com` is sent to every host under that domain, and same-site rules do not help because sibling hosts share a registrable domain and are therefore same-site.
  • Give a case where a dangling name genuinely is low severity.
    A random, never-published label pointing at a retired internal demo, in an estate with host-only cookies and no suffix-based allowlists anywhere. It still gets deleted, but honestly ranked it sits below almost anything else on the list. Being able to say which ones are minor is what makes the argument for the serious ones credible.
  • Does the takeover give the claimant anything inside your cloud account?
    No. They hold a resource in their own account that your name happens to point at. That boundary matters when scoping: the exposure runs through browsers, allowlists and reputation, not through your infrastructure. Overstating it as “they are in our cloud” costs you credibility on the parts that are true.

saying these in an interview costs you the question

  • Rates it low because no software was vulnerable
  • Thinks the attacker has access to the cloud account
  • Claims same-site cookie rules block a sibling subdomain
  • Rates every dangling name identically regardless of scope
  • Says HTTPS on the name limits the damage

context