Skip to main content
Published on November 13, 2026
CVE-2026-123158 — OpenSSH sshd, musl systems without PAM. The flaw lets an attacker log in over SSH without knowing the password. It is being exploited: CISA added it to its Known Exploited Vulnerabilities (KEV) catalog on November 9, 2026. Debian, Ubuntu and AlmaLinux VPS are not affected. Do check your Alpine machines and containers that expose sshd.

The bug in two sentences

When built without PAM, sshd checks a password by hashing it with the C library’s crypt() function and comparing the result with the field stored in /etc/shadow. With musl, crypt() returns * when the password is longer than 256 bytes: that is exactly what the field holds for accounts with no password, so the login succeeds. Affected versions:
  • OpenSSH before 10.6p2, on Linux, built with musl and without PAM;
  • Alpine Linux, every branch from 3.16 to 3.24 plus edge, according to the Alpine advisory.
The fix shipped on November 5, 2026: OpenSSH 10.6p2, and fixed packages for every Alpine branch. The score published by NVD and cve.org is 8.1 (high attack complexity). Red Hat gives a preliminary 9.8. Ubuntu rates it high priority.
GreyNoise saw a first successful exploitation on November 7, 2026, two days after the fix and a public exploit came out. The recorded sessions go from reconnaissance to reading /etc/shadow and creating a server_manager account with a passwordless doas rule.

Sizing your exposure

Per the Alpine advisory, a machine is exposed when all of the following hold:
  • sshd comes from the openssh-server package (built without PAM), or from openssh-server-pam with UsePAM no;
  • PasswordAuthentication is yes, the OpenSSH default;
  • an account has * as its password field: root in the base image, a key-only user, a directory-service user;
  • at least one other local account has a $5$ or $6$ password hash.
The attacker needs the name of the target account. root stays protected by the default PermitRootLogin prohibit-password, unless another reachable account can become root, for instance through doas.
The official tiny-cloud images (qcow2, VHD, AMI) ship an alpine user with no password and passwordless doas. They are safe on first boot, and become exploitable as soon as a password hash shows up on the machine, such as a console password set by the admin.

Debian, Ubuntu, AlmaLinux VPS: the host is not exposed

Ubuntu states that its OpenSSH is linked against glibc and uses PAM, so it is not vulnerable on any release. Red Hat says its products are not affected. Debian rates the flaw “unimportant” for its package and only carries the fix in unstable and forky. Your VPS’s own sshd needs no action. What you should check are the Alpine containers running on it.
A container that answers with an Alpine version number and runs sshd falls under the next section. The same goes for a Kubernetes pod built on an Alpine image that starts sshd.

Updating Alpine Linux

The fix is an update of the openssh package, followed by an sshd restart. Updating alone does not replace the daemon that is already running. Point releases 3.21.10, 3.22.8, 3.23.8 and 3.24.4 include the fixed package. Alpine also published packages for branches that no longer get regular updates, all the way back to 3.16.

Docker containers

If you own the image, rebuild it on an Alpine release that includes the fix (3.21.10, 3.22.8, 3.23.8, 3.24.4 or later), then recreate the container.
In the meantime, you can patch a running container:
That fix is lost the next time the container is recreated: only a rebuilt image lasts. For a third-party image, wait for the publisher’s fixed release and apply the mitigation below until then.

Mitigation until you can patch

Alpine recommends turning password authentication off. Before you start, make sure SSH key login works, and keep your current session open until you have tested a new login. Run as root:
The sed command also changes lines inside a Match block.

Verifying the mitigation

Expected: passwordauthentication no. After an update, compare the output of apk list -I | grep openssh with the table entry for your branch.

Looking for traces

Exploitation has been seen since November 7. On an exposed Alpine machine, look for password logins on accounts that have no password:
An Accepted password for line on one of those accounts (root, alpine, a key-only user) means an intrusion. Also review doas use and recently created accounts, files and authorized_keys entries. A server_manager account you did not create is an indicator reported by GreyNoise. If you cannot rule out a login, treat the machine as compromised.

Rolling back the mitigation

Once the fixed package is installed, if you need passwords back:

What next?

Key-only login remains the best setup for an exposed server: keep PasswordAuthentication no even after the update. For another recent OpenSSH flaw, read regreSSHion (CVE-2024-6387). For any technical question, open a ticket from your OnetSolutions customer area.