New OpenSSH Vulnerability

It’s a bad one, and it’s been in the code for a decade:

A newly disclosed flaw involving OpenSSH and musl, dubbed “*sshole,” allows attackers to log in to certain Alpine Linux and other musl-based Linux accounts configured to block password authentication simply by entering an oversized password.

“Oversized” means longer than 256 bytes. Details.

Slashdot thread. And another news article.

Posted on November 10, 2026 at 7:02 AM • 16 Comments

Comments

1st post kitty • November 10, 2026 7:42 AM

Meow!

⠸⣷⣦⠤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣀⣠⣤⠀⠀⠀
⠀⠙⣿⡄⠈⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⠔⠊⠉⣿⡿⠁⠀⠀⠀
⠀⠀⠈⠣⡀⠀⠀⠑⢄⠀⠀⠀⠀⠀⠀⠀⠀⠀⡠⠊⠁⠀⠀⣰⠟⠀⠀⠀⣀⣀
⠀⠀⠀⠀⠈⠢⣄⠀⡈⠒⠊⠉⠁⠀⠈⠉⠑⠚⠀⠀⣀⠔⢊⣠⠤⠒⠊⠉⠀⡜
⠀⠀⠀⠀⠀⠀⠀⡽⠁⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠩⡔⠊⠁⠀⠀⠀⠀⠀⠀⠇
⠀⠀⠀⠀⠀⠀⠀⡇⢠⡤⢄⠀⠀⠀⠀⠀⡠⢤⣄⠀⡇⠀⠀⠀⠀⠀⠀⠀⢰⠀
⠀⠀⠀⠀⠀⠀⢀⠇⠹⠿⠟⠀⠀⠤⠀⠀⠻⠿⠟⠀⣇⠀⠀⡀⠠⠄⠒⠊⠁⠀
⠀⠀⠀⠀⠀⠀⢸⣿⣿⡆⠀⠰⠤⠖⠦⠴⠀⢀⣶⣿⣿⠀⠙⢄⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢻⣿⠃⠀⠀⠀⠀⠀⠀⠀⠈⠿⡿⠛⢄⠀⠀⠱⣄⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠈⠓⠦⠀⣀⣀⣀⠀⡠⠴⠊⠹⡞⣁⠤⠒⠉⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⣠⠃⠀⠀⠀⠀⡌⠉⠉⡤⠀⠀⠀⠀⢻⠿⠆⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠰⠁⡀⠀⠀⠀⠀⢸⠀⢰⠃⠀⠀⠀⢠⠀⢣⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⢶⣗⠧⡀⢳⠀⠀⠀⠀⢸⣀⣸⠀⠀⠀⢀⡜⠀⣸⢤⣶⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠈⠻⣿⣦⣈⣧⡀⠀⠀⢸⣿⣿⠀⠀⢀⣼⡀⣨⣿⡿⠁⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠈⠻⠿⠿⠓⠄⠤⠘⠉⠙⠤⢀⠾⠿⣿⠟⠋
Pikachu? What are you doing here?

Wrong Department • November 10, 2026 10:18 AM

@1st post kitty,

Howdy kitty!

If you are confused and do not know for certain whether you’re a male or a female as well as for any other, similar problems of psychiatric nature – there is HOPE for you and the likes – but this is DEFINITELY NOT the place for it.
This is a site for serious people, grown ups, relatively syable folks, who at the very least know whether they are a man or a woman. Please research the web for the following keywords: “mental health counseling” or “gender confusion” or “why some parents choose to neglect to raise their children properly” or “children are God’s gifts – give them your time or just do not have them” or “help – I am a mentally unstable young man” or “is schneier.com the right resource for my mental issues?” or just talk to your parents if you have them or know who/where they are – it just might help.

Clive Robinson • November 10, 2026 11:22 AM

@ ALL,

The name given to the vulnerability of “*sshole” is not supposed to be seen as “rude”.

The “sshole” is actually a contractin of “SSH hole”. The lead “” is part of what makes the vulnerability work. And is based on the *nix password file, where the “” was placed in the password field to indicate an account was not to be loged into from the login programe

The reason for the lead “*” is it was not a valid character in the password field and thus could be used for “in band signalling”

Some of you are possibly old enough to remember the arguments about which was better “C strings or Pascal strings”.

C strings used in-band signalling such that a string could be any length, but it alway terminated in the ASCII NUL character (from 1962 that had significant use in “super encryption” devices based on “One Time Tapes from earlier Baudot and ITU 2).

Pascal strings used out-of-band signalling, put simply the lead byte was used to store the length of the string.

The had advantages and disadvantages. An advantage was that string math was faster, and the first character of the string was not at position zero but position on that was easier for many people to get there heads around and more importantly all characters were valid. The downside was the string had to be 255 or less characters long. Which at first does not appear much of a disadvantage, but when you dig in, it quickly becomes clear that code is easier to make more general with unlimited length strings and is faster and takes up less program “code” store/memory and alows easy machine code tricks…

The other issue back then was “return values” from functions. Originally it was a type int that was the size of the machine dataword. For reasons to long to relate this turned out to be a bad idea…

So “in band signalling” became the norm under *nix with an integer holding a return / error code. Actual data was usually returned in a memory array that the calling code passed a pointer to into the function.

Security wise this is a bad way to do things even though it can be quite efficient.

Celos • November 10, 2026 12:52 PM

And that is exactly why we need redundant, resilient security. In the case at hand, there should have been a length-limit before that is independent of the C library and enforces the correct behavior. The mind-set needs to be that if there are not at the very least two independent mechanisms that enforce each security property, then it may well be regarded as broken. And, obviously, that needs to be the absolute minimal standard for anything that is Internet-reachable.

Scott • November 10, 2026 1:24 PM

@Clive

Of COURSE *sshole is meant to invoke the curse word for your rear end. Of COURSE it is. Are you kidding?

freedom • November 10, 2026 2:39 PM

ssh accounts configured with * to block password logins.

musl C library’s crypt() function returns * when password hashing fails

an attacker can submit an oversized password and cause OpenSSH to compare the returned * against the account’s stored *, resulting in a successful login.

Ha ha. The field of “computer security” is just not serious…

anonymouse random • November 10, 2026 3:36 PM

musl C library’s crypt() function returns * when password hashing fails

That wasn’t initially the case, but the developers changed the crypt() function’s contract (a king-sized no-no for library functions), which allowed the exploit:

“The crypt() function, which generates password hashes for comparison with stored values, can return NULL if it can’t compute a hash. Applications that fail to check that result may crash. Musl libc’s developers instead chose to return a single character for certain failures, and they picked the asterisk.” (From The Register ; search “musl” . Link omitted because automod dislikes it. Can someone fix automod?)

lurker • November 10, 2026 3:42 PM

ISTR sometime in the ’80s being given a shell account on some flavour of *nix, and being told the maximum size my password could be was 55 (or 56?) characters. So apparently that flavour of *nix had got the problem sussed 40 years ago. People never learn from history and forever repeat it …

@freedom

When there’s nobody in charge, there’s no oversight, the dots, or *s, don’t get joined.

anonymouse random • November 10, 2026 6:54 PM

SSH has become too complex.
Cut loose the legacy crap.
Smaller attack surface. <

SSH is very-widely-used legacy code. I believe that it has not been much changed since ~2006.

This bug arose from a contract change in a library used by a few SSH implementations. It shouldn't need saying that library publishers shouldn't change their libraries' contracts in any way that breaks backward compatibility.

Smooth Operator • November 10, 2026 11:00 PM

@Scott • November 10, 2026 1:24 PM,

If he was even a tiny bit familiar with the culture of those circles then he’d known that the hacking community culture prioritizes the use of terms like that, wherever and whenever possible, and examples thereof are plenty out there.
Just google “deep throat” or “back orifice” (just to name a couple of numerous examples).

Of course he knew this. Just watch him get smart with us. HE KNOWS EVERYTHING.
HE’S THE effin clive robinson – duh, what wuz I thinkin’???

Clive Robinson • November 11, 2026 2:08 AM

@ Scott,

Hark,

“What light through yonder window…”

With regards, your statement

“Of COURSE *sshole is meant to invoke the curse word for your rear end. Of COURSE it is. Are you kidding?”

At my comment of,

“The name given to the vulnerability of “*sshole” is not supposed to be seen as “rude”.”

It’s why I then gave the explanation you can say to your boss etc with a perfectly straight face… But I guess it’s lost on some people.

Pause and think how the two statements are both true and why?

Do you get it now?

But a clue for others who follow on who obviously don’t get it and never have, to the amusment of others,

It’s a game that has been going on since at least the times of Queen Elizabeth I of England and her censorship of plays by the Lord Chancellor. And why the works of Shakespeare are a little quirky in places in their original form.

Oh and why you can still see it in the published word world since shortly after editors were put in place…

Have a listen to,

https://m.youtube.com/watch?v=bPduoU826ew

It goes back to the early 1950’s showing a small part of it.

If you search this site you will find I’ve been telling certain people to,

“Brush up your Shakespeare”

For quite a few years now, but they just keep walking into it.

Also search for “Yellow Card” you will discover that @Wael and I were doing the same on this blog going back for years on the Friday Squid.

Clive Robinson • November 11, 2026 2:19 AM

But the version of the song I give above is just about “suitable for work” because it’s had quite a bit “chopped off”.

If you are not at work then,

https://m.youtube.com/watch?v=EUthszWDgRo

And yes in my past, I used to sing it for “free beer” in a pub on the edge of South West London…

Leave a comment

Blog moderation policy

Login

Allowed HTML <a href="URL"> • <em> <cite> <i> • <strong> <b> • <sub> <sup> • <ul> <ol> <li> • <blockquote> <pre> Markdown Extra syntax via https://michelf.ca/projects/php-markdown/extra/

Sidebar photo of Bruce Schneier by Joe MacInnis.