The three headline issues, with the preferred fix and a cheaper fallback
Issue 1 — Email identity is unprotected High
Two separate mechanisms are meant to let a receiving mail server check that a message claiming
to be from your domain really is. Neither is working. There is no DMARC record at all, and your
SPF record requires 14 DNS lookups to evaluate against a hard limit of 10, which produces a
permanent error — receivers that hit that error treat the result as neutral, which is the same
as having published nothing. No DKIM signing key was found on any of the 17 common selector
names we tested.
Business effect
Impersonation of your reservations, accounts and management addresses is currently cheap and
reliable. The losses that follow are usually a redirected deposit, an altered supplier invoice,
or guest card details harvested through a convincing “confirm your booking” message. The
second-order cost is a data-protection incident you would have to notify within 72 hours, and a
guest-trust problem that outlasts the money.
Preferred fix
Publish DMARC at p=none with an aggregate reporting address today. Rebuild SPF into
a single evaluable record under the lookup limit, dropping unused senders and the deprecated
ptr mechanism. Enable DKIM signing in the mail platform and publish the selector
record. After two to four weeks of clean reports, move DMARC to p=quarantine and
then to p=reject, and change SPF from ~all to -all only at
that point.
Lower-cost fallback
If nobody has time for the full sequence, do the single highest-value step: publish the DMARC
record at p=none. It takes half an hour, cannot break your mail, and turns an
invisible problem into a weekly report you can act on when there is time.
Issue 2 — A second mail path outside your managed platform High
bookings.baharicourt.example publishes its own mail record pointing to a shared
hosting server, separate from the managed platform serving your main domain. That subdomain
publishes no SPF record of its own, and because there is no organisational DMARC policy at the
apex, nothing covers it by inheritance either.
Business effect
Guest correspondence may be stored somewhere outside the controls you believe apply — and
outside whatever backup and access rules you rely on. It is also the softest name to
impersonate. From a Data Protection Act standpoint, a mailbox you have forgotten about is still
personal data you are accountable for, and “we did not know it was there” is not a defence a
regulator accepts.
Preferred fix
Establish who uses that address and what is stored on it. Migrate the mailbox onto your managed
platform, remove the old mail record, and let the subdomain inherit the same protections as
everything else. Export and retain only what you have a business reason to keep.
Lower-cost fallback
If the migration cannot happen quickly, publish a restrictive SPF record for that subdomain
naming only the shared host, and set an explicit subdomain policy in your DMARC record once it
exists. That contains the impersonation risk while you plan the move — it does not address the
data-location question.
Issue 3 — Nineteen hostnames are publicly listed, and some are stale Medium
Certificate transparency is a public, append-only log of every certificate issued by a trusted
authority. Searching it for your domain returns 31 certificates covering 19 distinct hostnames —
including pms-test, staff-portal, vpn,
webmail, and a cctv name whose certificate expired in November 2024
and was never renewed. There are also two spellings of your booking host,
booking. and bookings., which suggests at least one is a leftover.
Business effect
Two effects, one immediate and one slow. Immediately, this is a targeting list: a phishing
message referencing your actual staff portal is far more convincing than a generic one. Slowly,
the stale names indicate systems nobody owns any more — the standard starting point for an
incident, because unowned systems do not get updated. We cannot tell you whether the lapsed
names are retired or simply running on expired certificates, because answering that requires
connecting to them, which we did not do.
Preferred fix
Take the list in Appendix B and mark every name live, retired or unknown. Decommission the
retired ones and remove their DNS entries. For genuinely internal systems, stop issuing public
certificates with descriptive names — use a wildcard certificate or an internal-only name so the
log stops advertising your estate. Do this once properly and keep the list.
Lower-cost fallback
Do the inventory and nothing else. Even a spreadsheet of nineteen rows with an owner’s name
against each one closes most of the practical risk, because the danger is not that the names are
public — it is that nobody knows which are still running.