DevelopmentNov 7, 2026 · 8 min read

OpenSSH "sshole" (CVE-2026-123158): what happened and what to do today

A combination of OpenSSH and musl libc lets attackers log into accounts that should never accept a password. It mostly affects Alpine Linux. Here is what is confirmed, what is disputed, and what to check today.

Altamar Engineering The team that designs, builds and supports the work

#What happened, in three lines

  1. On November 5, 2026 a flaw nicknamed “sshole” went public. It lets an attacker log into some Linux servers over SSH without knowing the password. It is tracked as CVE-2026-123158, with a CVSS score of 8.1 (High).
  2. It only affects servers that use musl libc (Alpine Linux is the best known) running OpenSSH without PAM with password login enabled. Ubuntu, Debian, Red Hat and most servers are not affected.
  3. A fix is out: OpenSSH 10.6p2, plus fixed Alpine packages for releases 3.16 through edge. Update and restart sshd. If you cannot update yet, turn off password login.
alpinelinux.org · Security advisory
The Alpine Linux security advisory of 2026-11-05: update openssh and restart sshd, or disable password logins.

Alpine Linux security advisory, November 5, 2026. Screenshot: Altamar. Source: alpinelinux.org.

#Am I affected? Who is and who is not

All of these have to be true at the same time. If even one is missing, that server is not affected.

Altamar · Does sshole affect you?
Diagram: the five conditions that must all be true to be affected by sshole.

Our own diagram, based on the Alpine Linux advisory and the CVE-2026-123158 record.

Situation Affected? Source
Alpine Linux with the openssh-server package (built without PAM) and password login on Yes, if there is also an account with a * field and another with a normal password Alpine
Alpine with openssh-server-pam and UsePAM no Yes Alpine
Alpine with openssh-server-pam and UsePAM yes No Alpine
Any system with PasswordAuthentication no No Alpine, oss-security
Docker containers that do not run sshd inside No Alpine
Cloud images set up with cloud-init (it writes PasswordAuthentication no) No Alpine
Official Alpine tiny-cloud images (3.18.11 to 3.24.3) Yes, as soon as any $6$ hash exists on the machine Alpine
glibc distributions (Ubuntu, Debian, Fedora, RHEL) No The Hacker News, OX Security
Systems that check passwords through PAM No The Hacker News, CVE.org
Dropbear (a different SSH server, not OpenSSH) No The Hacker News, OX Security
Non-Linux systems No The Hacker News, CVE.org
Other musl systems (OpenWrt, Buildroot, Yocto) Check: only if someone installed the OpenSSH server (OpenWrt uses Dropbear by default) OX Security, The Hacker News

One important detail: Alpine’s root account has shipped with a * field since about release 3.16, but OpenSSH’s default setting (PermitRootLogin prohibit-password) protects it. The real risk is other accounts without a password that can become root, for example through doas. Alpine explains this in its advisory.

#How the bug works (the simple version)

When OpenSSH checks a password without PAM, it hashes what you typed and compares the result with what the system has stored. For accounts with no password, what is stored is a single asterisk: *.

The trouble is that musl, the C library Alpine uses, also returns * when it is handed a password that is too long (more than 256 bytes), as an error signal. So the server compares * with *, sees a match, and lets the attacker in. Neither OpenSSH nor musl has a serious bug on its own: the failure is in how they fit together.

This is not a cryptographic weakness or a memory-corruption vulnerability. It is an authentication logic failure caused by the interaction between two components that interpret the same value differently.

— OX Security

OpenSSH puts it this way in its release notes:

We consider the root cause of this bug to be outside sshd, but it is exploitable via sshd and can be avoided there.

— OpenSSH 10.6p2 release notes
openssh.org · Release Notes
The OpenSSH 10.6p2 release notes, dated 2026-11-05, describing a critical security workaround for Linux systems that use musl libc with PAM disabled.

OpenSSH 10.6p2 release notes (November 5, 2026). Screenshot: Altamar. Source: openssh.org.

The bug was reported by Özgün Kültekin of Wakefield, according to OpenSSH and Alpine. OX Security says he found it by building sshd in every combination of glibc, musl, PAM and no PAM, then throwing “roughly 17,600 deliberately unusual login attempts at each build”.

#Timeline

Altamar · Timeline
Timeline of sshole from the 2012 musl change to the November 2026 disclosure, fix and exploitation report.

Our own diagram. Sources: The Hacker News, OX Security, OpenSSH, Alpine Linux, CVE.org and Help Net Security.

  • November 5, 2026: public disclosure on the oss-security list, the OpenSSH 10.6p2 release, and Alpine’s advisory with fixed packages. The CVE-2026-123158 record was published the same day, with CVSS 8.1 (vector AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H).
  • That day, The Hacker News wrote: “No attacks using the flaw have been reported.”
  • November 6: threat intelligence firm Previdian told Help Net Security it saw a first exploitation attempt less than nine hours after the CVE was published and got root access on its own honeypot.

Our first observed attempt arrived less than nine hours after CVE publication, and we’ve confirmed successful root access on a Previdian honeypot running real Alpine Linux and OpenSSH

— Ryan Dewhurst, Previdian, to Help Net Security
helpnetsecurity.com
Help Net Security headline: OpenSSH flaw exploited in the wild just hours after disclosure (CVE-2026-123158).

Help Net Security headline, November 6, 2026. Screenshot: Altamar. Source: helpnetsecurity.com.

What is disputed: the exploitation report comes from one company, on its own honeypot, with eight attempts counted from a single IP address in Japan (Help Net Security, The Hacker News). Help Net Security notes that CISA has not added it to its Known Exploited Vulnerabilities (KEV) catalog. We found no independent confirmation. Our advice is to treat it as exploitable: the attack is simple and proof-of-concept code is already circulating, which Previdian warns is unverified and could contain malware.

#What to do today

  1. Take inventory. List every server, VPS and container with an SSH port open. Include the “forgotten” ones: routers, gateways, test servers.
  2. Check the operating system. cat /etc/os-release. If it says Alpine, keep going. If it is Ubuntu, Debian or RHEL, that machine is not affected by this flaw (but it is still a good moment to update).
  3. Check the OpenSSH version. ssh -V shows the installed version. On Alpine, do not compare against 10.6p2: the stable branches carry the fix as a patch on their own version. Compare with the table below.
  4. Update. On Alpine: apk upgrade -U -a.
  5. Restart sshd. rc-service sshd restart. Updating the package does not restart the daemon that is already running.
  6. If you cannot update today, turn off password login. Set PasswordAuthentication no in the sshd configuration and restart. First make sure your key login works, and keep your current session open until you have tested a new one. Check with sshd -T | grep -i passwordauthentication, which should print passwordauthentication no.
  7. Check your container and cloud images. If your Alpine containers run sshd inside, rebuild them from a fixed base image. If you use Alpine tiny-cloud images older than 3.21.10, 3.22.8, 3.23.8 or 3.24.4, update openssh on every running instance.
  8. Look for signs of a break-in. In /var/log/messages, search for sshd lines reading Accepted password for on accounts that have no password (alpine, root or key-only users). Review doas use, recently created users and authorized_keys files.
Alpine branch Fixed openssh version
edge 10.6_p2-r0
3.24 10.3_p1-r2
3.23 10.2_p1-r1
3.22 10.0_p1-r11
3.21 9.9_p2-r1
3.20 9.7_p1-r6
3.19 9.6_p1-r3
3.18 9.3_p2-r4
3.17 9.1_p1-r7
3.16 9.0_p1-r6

Source: Alpine’s advisory and its security database (secdb), checked on November 7, 2026. Branch 3.15 and older have no published fix: if you run something that old, the way out is to migrate or turn off password login.

If you cannot rule out a login, treat the machine as compromised.

— Alpine Linux

#Lessons for any business

  • Patching fast matters. Between disclosure and the first reported attack attempt there were hours, not weeks. Have an owner and a process for applying security patches the same day.
  • You cannot protect what you do not know you have. Many businesses do not know how many servers, VPSs or containers they run, or on what system. A simple inventory (what, where, who maintains it) comes first.
  • Old images are a quiet risk. A container image nobody rebuilds keeps its bugs even after the system “has been fixed”.
  • Fewer open doors. If a server does not need SSH open to the internet, close it or put it behind a VPN. And use keys instead of passwords.
  • Watch the logs. Knowing who logged in, when and how is what lets you answer “were we attacked?”.

#How Altamar can help

If you are not sure which servers you run, or whether any of them use Alpine with SSH open, we can help you take that inventory, apply the fix, and leave a process in place for next time. Book a call with one of our engineers.

#References

All checked on November 7, 2026.

Filed under SecurityLinux

Keep reading

All posts

Book a call

Let's talk about what your teamstill does by hand.

Pick a time that works. You talk to an engineer, not a salesperson.

Book a call 30 min · Google Meet · English or Español