Remix.run Logo
▲ Sshole(sshhole.com)
240 points by josemrb an hour ago | 41 comments
▲scandinavian 15 minutes ago | parent | next [-]

Did anyone get it to work? I tried on the official alpine docker image, enabled password login for root. The shadow entry has ! as password by default, this didn't work with a > 256 character password (i also did passwd -l which also does !). I manually changed it to * and it still didn't work.

Am I doing anything wrong here?

OpenSSH_10.3p1, OpenSSL 3.5.9 29 Sep 2026

PRETTY_NAME="Alpine Linux v3.24"

▲nxobject 15 minutes ago | parent | prev | next [-]

Above all, I’m a little sad that the musl developers decided to make a lot of “well it’s convenient” changes to core crypto functions — at least without the level of auditing that would have caught this! It’s tarnished their reputation in my eyes a little.

▲rustyhancock 3 minutes ago | parent [-]

I think everyone is over fixated on AI finding complex bugs beyond a typical person's understanding either to locate or exploit.

I think for any one of those bugs there might simply be half a dozen footguns or bugs that once it's spelled out you wonder how anyone let it slide.

I think that's the case where LLMs might indentify most.

It's challenging though as the current AI audits produce so many false positives it's hard to know when it's being pedantic or when it's genuinely caught a human being a bone head

▲traceroute66 2 minutes ago | parent | prev | next [-]

To be fair, I have less than zero sympathy for anyone who runs SSH on any platform without `PasswordAuthentication=no` in 2026.

Its not asking for trouble, it is there will be trouble, not if but when.

As for the people who say "well, I run SSH on port 942329053052". Well guess what, the bots make short work on that. We tried it at $work as an experiment, multiple bots found it in less than a couple of hours.

▲neuroticnews25 28 minutes ago | parent | prev | next [-]

That's a well-made site, yet I feel nothing.

▲tasuki 10 minutes ago | parent | next [-]

Maybe that's on you though. I enjoyed it, though the discrepancy between the `*sshole` name and the `sshhole.com` domain made me twitch. How is anyone[0] obsessive enough to find this and write it up and yet not obsessive enough to make the amount of `h` consistent?

[0]: Be they human or LLM. Or an entity with any proportion of the two. I do not judge nor discriminate.

▲glibg10b 4 minutes ago | parent [-]

Look closely. The second h is behind the word and almost as dark as the background

▲cpach 25 minutes ago | parent | prev | next [-]

LLM output fatigue?

▲jonstewart 16 minutes ago | parent | prev [-]

What is dead can never die. All blueteamers are ironborn these days.

▲draxen 6 minutes ago | parent | prev | next [-]

I avoided using alpine-based containers ever since finding out a lot of Linux server software is actually Linux + SystemD software. The union set API of both Linux and SystemD seems to be the default "Linux API" today.

▲sam_lowry_ 3 minutes ago | parent [-]

I use alpine-based containers whenever I can just to keep the world safer from SystemD rotting Linux.

▲hypfer 32 minutes ago | parent | prev | next [-]

What is out there that uses musl without PAM and hosts an OpenSSH SSHd with PasswordAuthentication?

As in: "Actually out there"

The hypothetical Alpine exists, yes, but what runs that like that?

▲jbyers 29 minutes ago | parent | next [-]

A large number of Docker containers?

Edit: Sure, a small minority presumably run sshd under these conditions. But a small minority times the number of Alpine containers still gets to a large absolute number with a trivial exploit. It's bad.

Edit 2: You really don't need to look very hard to find public container examples at million-download scale.

▲ekidd 25 minutes ago | parent | next [-]

Many, many Docker containers rely on "docker exec" or the kubectl equivalent to gain CLI access when needed. To have sshd in an Alpine Docker container, you're generally need to be running init and a bunch of demons, not just a single standalone service.

I'm guessing in practice relatively few people are actually exposed. But if they are, it's catastrophic.

▲stingraycharles 23 minutes ago | parent | prev | next [-]

Docker containers run sshd?

▲hypfer 27 minutes ago | parent | prev [-]

Docker containers that run sshds?

▲Bender 22 minutes ago | parent | prev | next [-]

What is out there that uses musl without PAM and hosts an OpenSSH SSHd with PasswordAuthentication?

Possibly public SFTP servers. I have allowed null passwords in the past for anonymous public SFTP and I run Alpine Linux exclusively for my servers both VM's and physical. The shadow package (PAM) did not get installed by default. I installed it but I had to specify it in the installation.

I will activate one for people to play around with:

    sftp hn@ping.altchan.org
▲figassis 6 minutes ago | parent | prev [-]

Agent sandboxes today probably

▲illusive4080 33 minutes ago | parent | prev | next [-]

From the other thread’s source [1], it affects musl without PAM. You can set PasswordAuthentication=no or update to remediate.

[1] https://hachyderm.io/@damienmiller/117563026759098135

▲RVuRnvbM2e 7 minutes ago | parent | prev | next [-]

Wait so musl, famously a stickler for standards, just changed the behaviour of a POSIX function?

▲oefrha 3 minutes ago | parent | prev | next [-]

This is a super duper annoying site for people who just want to know if their systems are vulnerable, after patching like a dozen critical vulnerabilities in other software over the last week and are almost at the breaking point of resigning.

Can we have a “don’t treat me like five/toddler” / “idgaf about the explanation” quick link to a section for adults who need to patch systems?

(And if your reaction is “just scroll down, stupid”, I’m happy to report that with the scroll jacking, I scroll not enough / past the critical sections nine out of ten times.)

▲pluc 38 minutes ago | parent | prev | next [-]

A+ name

▲hypfer 30 minutes ago | parent [-]

A* name

▲kleiba2 19 minutes ago | parent [-]

A{256,} name

▲henry700 12 minutes ago | parent [-]

*

▲stogot 3 minutes ago | parent | prev | next [-]

Of all the named vulnerabilities, I appreciate the history lesson and screenshots of how it got there

▲cube00 27 minutes ago | parent | prev | next [-]

> except a lot of programs never check for NULL. they just compare whatever crypt() gives back with the stored field, hit the NULL, and crash

> so musl (the libc under alpine) goes ok fine, crypt() just won't return NULL anymore. if it fails, it returns a single character instead.

Considering it's been accepted that crashing if malloc returns a NULL is your fault, did musl really feel the need to accommodate bad implementations like this or is this just AI dribble?

▲red75prime 4 minutes ago | parent | next [-]

"unfortunately, a large portion of programs which call crypt are not prepared for its failure and do not check that the return value is non-null before using it. thus, always "succeeding" but giving an unmatchable hash is reportedly a better behavior than failing on error." [1]

[1] https://git.musl-libc.org/cgit/musl/commit/?id=b3c4cc121f70f...

▲Good4boothee 5 minutes ago | parent | prev [-]

> did musl really feel the need to accommodate bad implementations like this

I don't know about this specific case but in general? Yes, totally. No one is going to fix all existing software that depends on libs behaving exactly as glibc, you have to accept some trade-offs. Either your new implementation stops being perfectly simple and clean, or no one uses it.

▲bombcar 37 minutes ago | parent | prev | next [-]

The real name of this is sshole - the is the "star" of the show, after all.

▲yreg 33 minutes ago | parent [-]

*sshole, the * is the star of the show

You can use \ to escape formatting.

▲gosen 29 minutes ago | parent | prev | next [-]

I really like creativity in the name, the way website built and the content

"tl;dr" was a bit of a downgrade though, but that's fine

it's a nice way to promote the company behind it

▲jdw64 25 minutes ago | parent | prev | next [-]

I liked that this site explained the vulnerability in an easy-to-understand way.

▲lclc 16 minutes ago | parent | prev | next [-]

One more reason to build your (own) Docker images on 'FROM scratch' (basically nothing).

▲Good4boothee 3 minutes ago | parent | next [-]

No one runs sshd in containers, at least I hope so. What would even be the point when you have docker/kubectl commands available?

▲blueflow 13 minutes ago | parent | prev [-]

No, the Alpine containers don't come with sshd preinstalled. You'd have to manually install via dockerfile and leave it unconfigured.

▲ChrisRR 16 minutes ago | parent | prev | next [-]

Can we just have a site with the text and images without the awkward scrolling crap? Hijacking basic features is an instant click away from sites for me

Edit: It seems to work fine on mobile. I'm not sure why the scrolling behaviour was added on the desktop version of the site

▲rvz 41 minutes ago | parent | prev | next [-]

Related discussion: [0]

[0] https://news.ycombinator.com/item?id=50377221

▲henry700 13 minutes ago | parent | prev | next [-]

at this point my only reaction is "are you fucking kidding me"

▲sneela 23 minutes ago | parent | prev [-]

Yet another clankered finding creating a clankered website with clankered explanations. To be fair, this one's a lot better than the other clankered equivalents, but I wonder whether these people even know enough about their bug to have their own write-up?

Also, what's with this damn trend of typing in lowercase only? Why is this a thing?

> oh did i say "i"? sorry. i had agent swarms. a lot of them. let's not get into it

Still a cool finding... it's just the communication is becoming a lot worse these days - I want to understand the findings please, not be impressed by your webpage! Biggest gripe in recent memory is https://github.com/xoreaxeaxeax/skitter-creek-bath-salts

▲BugsJustFindMe 7 minutes ago | parent [-]

> Also, what's with this damn trend of typing in lowercase only?

Anticapitalism.