Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Security: utdnebula.com has SPF but no DMARC, so From:-header spoofing still works (free fix inside)

Open
#441 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
28/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active

Research direction

No repository file or test is identified. Start by running the supplied dig commands and confirm who controls the utdnebula.com DNS zone; done means a DMARC TXT record is published and the reporting mailbox and policy progression have been verified without disrupting legitimate mail.

Written by the indexing model from the issue text.

Description

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

utdnebula.com has SPF but no DMARC record. _dmarc.utdnebula.com does not exist.

This is the gap people miss: SPF authenticates the envelope sender, not the From: header your recipient actually sees. Without DMARC nothing ties the two together, so your utdnebula.com SPF record ("v=spf1 include:_spf.google.com ~all") does not stop someone putting From: [email protected] on a message. DMARC is the part that makes SPF count.

Verify it yourself in one line:

dig +short TXT _dmarc.utdnebula.com
dig +short TXT utdnebula.com | 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:  _dmarc.utdnebula.com
Type:  TXT
Value: v=DMARC1; p=none; rua=mailto:[email protected]; 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 utdnebula.com — 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)

Dominant language
Go
Stars
41
Forks
100
Avg merge
8d 20h
Merged PRs (30d)
6

Getting set up

  • No Dockerfile or Docker Compose file
  • Has a pull request template
  • No contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from UTDNebula/nebula-api

All issues in UTDNebula/nebula-api

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.