this post was submitted on 24 Feb 2026
91 points (83.2% liked)

Selfhosted

56867 readers
290 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

  1. Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.

  2. No spam posting.

  3. Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.

  4. Don't duplicate the full text of your blog or github here. Just post the link for folks to click.

  5. Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).

  6. No trolling.

  7. No low-effort posts. This is subjective and will largely be determined by the community member reports.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 2 years ago
MODERATORS
 

The Huntarr situation (score 200+ and climbing today) is getting discussed as a Huntarr problem. It's not. It's a structural problem with how we evaluate trust in self-hosted software.

Here's the actual issue:

Docker Hub tells you almost nothing useful about security.

The 'Verified Publisher' badge verifies that the namespace belongs to the organization. That's it. It says nothing about what's in the image, how it was built, or whether the code was reviewed by anyone who knows what a 403 response is.

Tags are mutable pointers. huntarr:latest today is not guaranteed to be huntarr:latest tomorrow. There's no notification when a tag gets repointed. If you're pulling by tag in production (or in your homelab), you're trusting a promise that can be silently broken.

The only actually trustworthy reference is a digest: sha256:.... Immutable, verifiable, auditable. Almost nobody uses them.

The Huntarr case specifically:

Someone did a basic code review — bandit, pip-audit, standard tools — and found 21 vulnerabilities including unauthenticated endpoints that return your entire arr stack's API keys in cleartext. The container runs as root. There's a Zip Slip. The maintainer's response was to ban the reporter.

None of this would have been caught by Docker Hub's trust signals, because Docker Hub's trust signals don't evaluate code. They evaluate namespace ownership.

What would actually help:

  • Pull by digest, not tag. Pin your compose files.
  • Check whether the image is built from a public, auditable Dockerfile. If the build process is opaque, that's a signal.
  • Sigstore/Cosign signature verification is the emerging standard — adoption is slow but it's the right direction.
  • Reproducible builds are the gold standard. Trust nothing, verify everything.

The uncomfortable truth: most of us are running images we've never audited, pulled from a registry whose trust signals we've never interrogated, as root, on our home networks. Huntarr made the news because someone did the work. Most of the time, nobody does.

top 22 comments
sorted by: hot top controversial new old
[–] SirHaxalot@nord.pub 29 points 6 hours ago (1 children)

I'm like 90% sure that this post is AI Slop, and I just love the irony.

First of all, the writing style reads a lot like AI.. but that is not the biggest problem. None of the mitigations mentioned has anything to do with the Huntarr problem. Sure, they have their uses, but the problem with Huntarr was that it was a vibe coded piece of shit. Using immutable references, image signing or checking the Dockerfile would do fuck-all about the problem that the code itself was missing authentication on some important sensitive API Endpoints.

Also, Huntarr does not appear to be a Verified Publisher at all. Did their status get revoked, or was that a hallucination to begin with?

To be fair though the last paragraph does have a point,, but for a homelab I don't think it's feasible to fully review the source code of everything you install. It would rather come down to being careful with things that are new and doesn't have an established reputation, which is especially a problem in the era of AI coding. Like the rest of the *arr stack is probably much safer because it's open source projects that have been around for a long time and had had a lot of eyes on it.

[–] aeluon@programming.dev 4 points 1 hour ago

the post is so obviously AI and OP has not responded to any comments. who is upvoting this?

[–] porkloin@lemmy.world 8 points 5 hours ago (1 children)

I know it’s not the issue here really but

the container runs as root

That’s why we need to push for more self hosted containers to support running rootless. There’s no reason for it other than laziness IMHO.

It’s wild to me how many people will jump through a bunch of other random security hoops but not blink an eye about running containers as root

[–] jonathan@piefed.social 1 points 4 hours ago

Laziness is a lazy diagnosis, complexity and ignorance are the more common causes.

[–] bdonvr@thelemmy.club 14 points 8 hours ago* (last edited 7 hours ago) (1 children)

Pinning your versions just means updating will be a pain, and you'll probably start running outdated containers that are security risks.

It's not like you're doing code audits every updates anyway. Just use containers that are established and seem trustworthy. It's all you can really do.

[–] androidul@lemmy.world 3 points 7 hours ago

sure, but Renovate can be used in such scenarios. MR is open, scan is triggered in the CI/CD pipeline and that’s how you verify

[–] Hawk@lemmy.dbzer0.com 3 points 6 hours ago

With an API that just runs unauthenticated, I'm unsure what any of these suggestions is supposed to improve here.

[–] CameronDev@programming.dev 35 points 12 hours ago (2 children)

Pull by digest just ensures that people end up running an ancient version, vulnerabilities and all long after any issues were patched, so that isn't a one-size-fits-all solution either.

Most projects are well behaved, so pulling latest makes sense, they likely have fixes that you need. In the case of an actually malicious project, the answer is to not run it at all. Huntarr showed their hand, you cannot trust any of their code.

[–] Kushan@lemmy.world 4 points 4 hours ago (1 children)

I generally agree with the sentiment but don't pull by latest, or at the very least don't expect every new version to work without issue.

Most projects are very well behaved as you say but they still need to upgrade major versions now and again that contains breaking charges.

I spebt an afternoon putting my compose files into git, setting up a simple CI pipeline and use renovate to automatically create PR's when things update. Now all my services are pinned to specific versions and when there's an update, I get a PR to make the change along with a nice change log telling me what's actually changed.

It's a little more effort but things don't suddenly break any more. Highly recommend this approach.

[–] CameronDev@programming.dev 1 points 4 hours ago

That does sound like a good approach. Are you able to share that CI pipeline? I am mostly happy to risk the occasional breakage, nothing is really critical. But something more reliable would probably save me some drama every so often when it does break.

[–] wilo108@lemmy.ml 5 points 12 hours ago (3 children)

I use digests in my docker compose files, and I update them when new versions are released (after reading the release notes) 🤷

[–] suicidaleggroll@lemmy.world 17 points 10 hours ago (2 children)

Unfortunately that approach is simply not feasible unless you have very few containers or you make it your full time job.

[–] wilo108@lemmy.ml 6 points 9 hours ago

I dunno, I've never found it all that onerous.

I have a couple of dozen (perhaps ~50) containers running across a bunch of servers, I read the release notes via RSS so I don't go hunting for news of updates or need to remember to check, and I update when I'm ready to. Security updates will probably be applied right away (unless I've read the notes and decided it's not critical for my deployment(s)), for feature updates I'll usually wait a few days (dodged a few bullets that way over the years) or longer if I'm busy, and for major releases I'll often wait until the first point release unless there's something new I really want.

Unless there are breaking changes it takes a few moments to update the docker-compose.yaml and then dcp (aliased to docker compose pull) and dcdup (aliased to docker compose down && docker compose up -d && docker compose logs -f).

I probably do spend upwards of maybe 15 or 20 minutes a week under normal circumstances, but it's really not a full time job for me 🤷.

[–] RIotingPacifist@lemmy.world 1 points 8 hours ago

Yeah this is why I use Debian instead of containers, you can read the release notes on a stable release.

[–] BradleyUffner@lemmy.world 6 points 8 hours ago* (last edited 1 hour ago)

Is manually updating based on trusting the accuracy of the release notes any more secure than just trusting "latest"?

[–] CameronDev@programming.dev 7 points 11 hours ago

You might, but I bet the majority of people set and forget.

I rely on watchtower to keep things up to date.

[–] GreenKnight23@lemmy.world 3 points 7 hours ago

I think many people just learned the first lesson of "trust but verify". 🤣

[–] MIXEDUNIVERS@discuss.tchncs.de 3 points 8 hours ago (1 children)

oh i run huntarr! is it a problem in a lokal homelab? if yes then i just nuke it

[–] Pika@sh.itjust.works 4 points 7 hours ago* (last edited 7 hours ago) (1 children)

I believe they are talking about this.

If you have it at all exposed to the internet, you should probally terminate it

As a summery: Multiple endpoints on the software don't check for authentication and an unauthenticated person can retrieve your complete settings configuration including your API keys and your password and also change your current configuration, Just by sending a simple POST request.

That's wild to me that that was something that was able to be done.

[–] MIXEDUNIVERS@discuss.tchncs.de 3 points 7 hours ago

ah yes i have googled it and found the reddit post, when i come home i remove it.it dindn 't have that many funktions i needed, but i did like that it was a controll dashboard.

[–] savvywolf@pawb.social 13 points 12 hours ago (1 children)

I don't think those are sufficient. We could prove that a given binary can be produced from a given repo commit, but that doesn't actually ensure that the code itself is safe. Malicious code is malicious code even if it's reproducible.

[–] frongt@lemmy.zip 1 points 35 minutes ago

This. So you've pinned to a specific reproducible version. Great! It's still horribly riddled with vulnerabilities.