Skip to content

Security: hivecommons.dev has no SPF or DMARC — the domain is trivially spoofable (free fix inside) #7819

Description

@p32929

Hi — not a code issue, sorry. This is about the domain in this repo's homepage, and I thought you would rather know than not.

What I found

hivecommons.dev publishes no SPF record and no DMARC record at all.

Right now anyone on the internet can send email with From: <anything>@hivecommons.dev and it will arrive looking legitimate — there is nothing published for a receiving server to check it against. Your domain accepts mail (MX: mail.hivecommons.dev), so it is a live brand, which is exactly what makes it worth spoofing.

Verify it yourself in one line:

dig +short TXT _dmarc.hivecommons.dev
dig +short TXT hivecommons.dev | grep spf1

The fix — free, no strings

Add this TXT record and you go from nothing to full visibility immediately, with zero risk of losing real mail (p=none does not affect delivery):

Host: @        TXT
Value: v=spf1 include:<your mail provider's include> -all

(for Google Workspace that include is _spf.google.com, for Microsoft 365 it is spf.protection.outlook.com)

Host:  _dmarc.hivecommons.dev
Type:  TXT
Value: v=DMARC1; p=none; rua=mailto:dmarc@hivecommons.dev; fo=1

That is genuinely the whole first step. Point rua at a mailbox you read, wait a week, and the aggregate reports will show you every system sending as hivecommons.dev — usually a couple you forgot about (a billing tool, a CRM, an old marketing platform). Once those are all passing, you move to p=quarantine and then p=reject, and spoofing stops working.

If you would rather not run that project

The record above is easy. The part that eats time is the middle bit — reading the XML aggregate reports, hunting down every legitimate sender, getting SPF and DKIM aligned for each one, and stepping the policy up without silently dropping your own invoices or password resets. That is the part people start and abandon at p=none for years.

I do that as a fixed-scope job: $90, about two weeks, and you end at p=reject with a one-page sender inventory. No retainer, no subscription — you pay when it is done and enforcing. If it turns out your setup is trivial I will say so and you can finish it yourself for free.

Either way, please add the record. Reply here if you want the paid version or if anything above does not match what you see.

— Fayaz Bin Salam (@p32929)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions