[ SPF ]

SPF over-authorisation: audit permissions that no longer have a business owner

Remove obsolete SPF permission through an owner-led inventory, observed sending evidence and a reversible retirement plan.

By the EmailAuth research team · 3 min read

[ Key points ]

  • Tie every authorization to a business owner and actual scope.
  • Quiet reporting is not proof that a sending dependency is obsolete.
  • Retire permissions with evidence, narrow tests and a safe change plan.
On this page

An SPF policy is a permission list with dependencies. It deserves the same ownership review as a service account. An old include or broad network range may still authorise mail even after the business service that justified it has disappeared. The audit goal is to retain necessary sending paths and retire permission that no longer has a defensible purpose.

Translate syntax into business permission

Start from every domain actually used in MAIL FROM, not just the company website domain; inventory HELO policy identities separately where those checks are part of the route. Record the published policy and expand the dependencies reached through include and redirect. An include is a recursive SPF evaluation: a pass in the included policy makes the include match; the qualifier on that include determines the outer result. It is not merely a text import. For an ordinary positive include, changes in a provider's referenced policy can consequently change the addresses your domain authorises. RFC 7208 §5.2, RFC 7208 §6.1.

For each authorisation, record the application, business owner, technical owner, contract or service account, envelope domain, purpose, last verified sending evidence and retirement constraints. Flag wide CIDRs, shared-service ranges and mechanisms based on general host or MX records for explicit review. The concern is their actual permission scope, not a rule that any particular mechanism is always wrong.

Distinguish dormant from abandoned

A quiet month does not prove a sender is obsolete. Annual notices, disaster recovery, payment reminders and low-volume administrative workflows may be absent from a short observation window. Combine available authentication reports with application configuration, service inventories and owner confirmation. Aggregate reports are useful observations, not a complete inventory of every message ever sent.

Illustrative example: an include labelled “events” has no recent traffic. Marketing identifies an annual renewal campaign that still uses it. That permission remains pending review until the campaign owner verifies a test or a migration. A second include belongs to a closed trial whose account has been disabled and whose owner confirms no queued or scheduled messages. It becomes a retirement candidate.

Reduce scope without creating a hidden outage

Prepare a change containing the exact old and proposed SPF records, the services covered, test messages, monitoring window and rollback trigger. Validate that the new record is a single valid SPF policy and that representative evaluation paths remain within the DNS-query-causing term limit. Do not solve an oversized permission list by changing its final qualifier to +all, which authorises every connecting address. RFC 7208 §4.5, RFC 7208 §4.6.4, RFC 7208 §5.1.

Remove one independently understood permission at a time when practical. Check owner-approved flows after caches have had an opportunity to expire, while recognising that a single TTL does not prove every observer has the same state. Restore the saved policy only if rollback remains safe. If the old service is compromised, use an incident plan rather than reauthorising it to improve delivery statistics.

Define the audit outcome

Close an entry as retained with an owner, retired with evidence, or unresolved with a deadline. A smaller record is a by-product; the real deliverable is a traceable permission register. SPF pass authorises use of the checked identity, not every visible From address or every tenant sharing a sending platform. Retain aligned DKIM and DMARC validation as separate controls. RFC 7208 §8.3, RFC 7208 §11.2, RFC 7208 §11.3, RFC 7208 §11.4.

Use a concrete decision record

For a proposed removal, record the exact term and qualifier, affected consumers, owner decision, evidence window, queued or seasonal dependencies, proposed policy and authorized recovery condition. If an annual workflow has no test evidence, keep its retirement decision unresolved rather than treating absent reports as approval. A positive include can authorize a service’s shared infrastructure; it does not enforce tenant isolation. This is a review worksheet, not a completed permission change.

[ Takeaway ]

Tie every authorization to a business owner and actual scope. Quiet reporting is not proof that a sending dependency is obsolete. Retire permissions with evidence, narrow tests and a safe change plan.

[ By role ]

What this means for you

Choose your role for practical next steps.

IT / Mail Admin

Expand includes and record dependencies.

Keep before-and-after policies, dependency snapshots and test receipts. Treat shared includes as changing permissions that need periodic review, not static vendor names.

Next steps

  1. Expand includes and record dependencies.
  2. Test the proposed policy against legitimate routes.
  3. Save rollback values before removing permission.

CISO / SecOps

Prioritise abandoned service permissions.

Prioritise permissions attached to abandoned accounts, oversized ranges and unowned services. Document why a permission is still necessary and when that decision expires.

Next steps

  1. Prioritise abandoned service permissions.
  2. Review broad address ranges explicitly.
  3. Require expiry dates for unresolved exceptions.

Founder / Non-technical

Assign a business owner to each permission.

Give every retained sender a business owner. Allow enough evidence for seasonal workflows rather than demanding an arbitrary reduction in include count.

Next steps

  1. Assign a business owner to each permission.
  2. Check seasonal and recovery workflows.
  3. Approve documented service retirement decisions.

[ FAQs ]

Frequently asked questions

Is every old include unsafe?

Age alone proves nothing. Determine the service, current owner, permission scope and operational need.

Can I remove an include with no recent reports?

Not on that evidence alone. Check seasonal workflows, disabled reporting coverage, queued mail and disaster recovery before retirement.

Does an include authorise only my vendor account?

Not necessarily. SPF evaluates addresses in the referenced policy. Tenant restrictions depend on the service’s separate controls.

RFC 7208 §5.2 RFC 7208 §11.4

Is +all an acceptable temporary recovery?

It makes every connecting IP match with pass. Prefer a narrow, verified recovery change and document its expiry.

RFC 7208 §5.1 RFC 7208 §4.6.2

Will deleting SPF stop a retired service completely?

No. It changes an authentication signal. Disable the service account and credentials as appropriate, and consider other authentication paths and receiver behaviour.

RFC 7208 §2.6.1

Should I flatten all includes?

Not automatically. Replacing managed dependencies with address snapshots creates an update obligation. Choose a design whose changes you can maintain safely.

How do I handle an unknown owner?

Record it as unresolved, identify affected applications and escalate through your inventory process. Avoid guessing that silence means permission is unnecessary.

What makes the review complete?

Every permission has a documented owner and decision, removed paths have validation evidence, and outstanding exceptions have an accountable next step.

[ Sources ]

Sources

  1. RFC 7208

    Sections §2.6.1 · §4.5 · §4.6.2 · §4.6.4 · §5.1 · §5.2 · §6.1 · §8.3 · §11.2 · §11.3 · §11.4 · §2.4

  2. RFC 9989

    Sections §4.4

[ Glossary ]

Glossary

SPF
Authorization evaluation for a connecting IP and the relevant SMTP identity.

RFC 7208 §2.4

MAIL FROM identity
The SMTP envelope identity used by SPF, with the defined postmaster/HELO construction when the reverse path is null.

RFC 7208 §2.4

DMARC alignment
The required relationship between an authenticated identifier and the Author Domain.

RFC 9989 §4.4

SPF include
Recursive evaluation whose pass result makes the include mechanism match; the include qualifier then determines the outer result.

RFC 7208 §5.2

Enterprise provenance

Why top financial institutions and governments retired their email security dashboards.

Traditional email authentication platforms sell you a dashboard and ask your engineers to do the labour. In high-stakes environments, manual oversight means delayed enforcement, configuration drift and unmonitored shadow domains.

EmailAuth is the agentic email provenance platform. Our agents enforce p=reject, keep third-party senders aligned and move your domains to full RFC 9989 compliance, the new DMARC standard,, with human-in-the-loop auditability.

Governments Large enterprises Tier-1 financial institutions

SaaS · Dedicated tenancy · Air-gapped on-prem · BYOK encryption

Knowledge Base