OpenSSH has a vuln condition which allows logging in without a password. A thread.
https://www.openssh.org/releasenotes.html
It only impacts Linux distributions which ship with musl libc and PAM disabled. I think that is just Alpine Linux (all versions).
It doesn’t impact Debian, Ubuntu, SUSE, Redhat or CentOS. Nor OpenWrt.
This is the technical change to fix https://github.com/openssh/openssh-portable/commit/4353fdc43ef646c43a8dda7025cc1a898caf1482
@GossiTheDog Got a CVE for that? I don't see it in the release notes
@nielsa there’s no CVE allocated as far as I know
This is the mitigation for Alpine Linux. It does fully break legit password authentication with SSH.
@BucciaBuccia because you turn password authentication off
@GossiTheDog if I understand the fix correctly (and OpenSSH's description of the underlying vulnerability), it seems that what is being done is to enforce minimum length of a password (or the presence of an inputted password?) via an assertion on the length of the hashed value of the input.
What's wild about this is that the vulnerability depends on the libc implementation, suggesting that the correctness in the prior pw check implementation was to some degree incidental.
@GossiTheDog Please, my friend, we want to buy a shelter for my family to protect us from the rain and cold. The price of a tent here is $700, so please give me money to buy this tent.https://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog Please, my friend, we want to buy a shelter for my family to protect us from the rain and cold. The price of a tent here is $700, so please give me money to buy this tent.https://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog @BucciaBuccia Please, my friend, we want to buy a shelter for my family to protect us from the rain and cold. The price of a tent here is $700, so please give me money to buy this tent.https://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog We are living here in gaza a harsh life, beyond what any human can bear,We go through days that words cannot describe filled with pain and suffering,Please, donate and help in any way you can.
Donate or sharehttps://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog Please, my friend, we want to buy a shelter for my family to protect us from the rain and cold. The price of a tent here is $700, so please give me money to buy this tent.https://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog Please, my friend, we want to buy a shelter for my family to protect us from the rain and cold. The price of a tent here is $700, so please give me money to buy this tent.https://chuffed.org/project/208485-give-waleeds-family-a-chance-to-live
@GossiTheDog I think OpenWRT could be affected: https://openwrt.org/packages/pkgdata/libc says the libc metapackage will usually install musl, sometimes glibc. The openssh-server package depends on the libc metapackage: https://openwrt.org/packages/pkgdata/openssh-server
So it probably depends on PAM being available and enabled for a device, of which I'm not sure.
People are already spraying the Internet for this - they’re targeting root and alpine as usernames, and very long passwords (which bypasses auth).
First payload seen in honeypot is.. drumroll.. a coin miner.
@GossiTheDog anyone know if Docker containers running Alpine would have sshd running and enabled if ssh/sshd is not mentioned in the Dockerfile at all?
@bamboombibbitybop @GossiTheDog They shouldn't, but I would check just to be safe.
@dalias @bamboombibbitybop @GossiTheDog even if they did, unless you play with the networking options or expose the port, it won't be reachable.
Brb off to brief the business about the new Asshole vuln
@GossiTheDog Alpine underpins an awful lot of Docker containers. Their official image reports thirty million downloads a week.
@mhoye @GossiTheDog docker containers don't usually publish port 22.
@GossiTheDog oh fuck, like the openwrt that is reskinned and installed on the vast majority of residential router/firewall hardware out of the box? 😬
*edit* no, because openwrt doesn’t actually use openssh
/me chuckles in opnsense
@WiteWulf @GossiTheDog OpenWRT usually uses dropbear, so which shouldn't have this vulnerability.
@WiteWulf first post notes it doesn’t apply to openwrt, just Alpine
@GossiTheDog Void doesn't ship openssh with PAM disabled
@huronbikes @GossiTheDog It's what the libc does if crypt() fails. It used to return null.. on musl libc it now returns '*' which happens to match the password field on a bunch of logins.
AFAIK gnu libc returns '*0' which is way less likely to be in a password field, so they're not affected.
Personally I don't see what was wrong with null.
@tony glibc crypt() returns NULL on failure, which is also what POSIX requires.
@GossiTheDog @BucciaBuccia which honestly there's a case for never allowing it to begin with, depending on the exposure of the system
@silhouette @GossiTheDog @BucciaBuccia Yeah, having PasswordAuthentication enabled for a server is a really bad idea. But it has always defaulted to on. I hope this will get more ppl to turn it off, maybe even Alpine to change the default.
@dalias @silhouette @GossiTheDog @BucciaBuccia
On Raspberry Pi OS (at least with press-Shift-at-boot install), you get a '/etc/ssh/sshd_config.d/50-cloud-init.conf' file, with PasswordAuthentication set to yes.
So also check what's included from 'sshd_config'.
@amszmidt @huronbikes @GossiTheDog Not true, if libcrypt is compiled with ENABLE_FAILURE_TOKENS it will return "*0" or "*1" instead. This is the default unless you specify --disable-failure-tokens in the configuration.
@tony The switch your talking about is not from glibc but from some other unrelated library (libxcrypt?). And has never existed in glibc.
libcrypt is not part of glibc since a few years
@fun Ok, and my response was explicitly about glibc, which .. the thread was about.
@fun POSIX says no such thing, ENOSYS is a errno value, an implementation can set something else for other situations. In either case, crypt() returns NULL on failure, irrespective what errno might be.
What I was replying to was only about glibc (which doesn't even implement a libcrypt libraryy, and as you mention, screams that crypt() is deprecated, etc).
@tony put the blame on glibc, which has none to bear.
@jernej__s @WiteWulf @GossiTheDog aiui it’s not an openssh issue it’s musl, just openssh have patched to block it. dropbear may well also present the same vector.
@rfc6919 @WiteWulf @GossiTheDog It's an interaction between OpenSSH, musl and specific configuration (PAM being disabled).
@GossiTheDog @malwareminigun oh you've got to be fucking kidding me
@SteveSyfuhs @GossiTheDog @malwareminigun and all the "we block bad sites" lists have started blocking sshhole.com, which is infuriating.