are you affected?

  • is your sshd running on musl? (alpine, openwrt, buildroot, yocto)
  • is it not using pam? alpine’s openssh-server doesn’t by default, or maybe you set UsePAM no
  • are password logins still on? they are by default
  • is there an account with just * as its password? key-only users, ldap users, root on alpine
  • and some other account with a real password?
  • then that * account takes any password between 257 and 1024 characters

on alpine’s official aws and azure images that’s the default alpine user, and it has passwordless doas. so it’s root

on debian, ubuntu, fedora or anything else with glibc? going through pam? dropbear? openbsd? you’re fine

  • smiletolerantly@awful.systemsOP
    link
    fedilink
    English
    arrow-up
    6
    ·
    1 day ago

    No, \* is being put as a hash of a password, originally precisely because that would mean no actual hash (over any input) ever matches it.

    • irotsoma@piefed.blahaj.zone
      link
      fedilink
      English
      arrow-up
      5
      ·
      1 day ago

      Ah got it, so is that a hack to prevent a specific user from logging in rather than something like:

      Match User <username> PasswordAuthentication no

      • SteveTech@aussie.zone
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        21 hours ago

        Nah the hash function gives up after 256 bytes and outputs *, matching the ‘hash’.

        Edit: it’s unix tradition to put * as the hash for system accounts that should never be able to be logged in, this bug now means you can login (with the right config), using any password longer than 256 characters.

        • irotsoma@piefed.blahaj.zone
          link
          fedilink
          English
          arrow-up
          4
          ·
          21 hours ago

          But how is that better than just disabling a user’s ability to log in with a password through the normal notation I mentioned? Just not sure why that was used at all. Is it something that some installer or distribution does by default? Why would that be used?