Patch summary
- CVE
- CVE-2026-123158
- Exploited?
- Yes. CISA added CVE-2026-123158 to the Known Exploited Vulnerabilities (KEV) catalog on November 9, 2026 (catalogVersion 2026.11.09). Due date for federal civilian executive branch agencies is November 12, 2026. Forensic triage under BOD 26-04 is Yes. Known ransomware campaign use is listed as Unknown. NVD's CISA Coordinator SSVC for this CVE also marks exploitation as active.
Affected and fixed versions
| Product | Affected | Fixed in | Source |
|---|---|---|---|
| Portable OpenSSH on Linux (musl libc, PAM disabled) | OpenSSH before 10.6p2 when built/run without PAM on musl | 10.6p2 (November 5, 2026) | OpenSSH 10.6p2 release notes, checked |
| Alpine Linux openssh-server (default, no PAM) or openssh-server-pam with UsePAM no | Branches 3.16 through 3.24 and edge (and older EOL branches Alpine checked) | Branch packages: 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 (Alpine point releases 3.21.10, 3.22.8, 3.23.8, 3.24.4 ship the fix) | Alpine Linux advisory, checked |
| Hosts with PasswordAuthentication no, or openssh-server-pam with UsePAM yes, or no $5$/$6$ local hashes, or locked (! ) password fields only | Outside the conditions Alpine lists for this bug | N/A | Alpine Linux advisory, checked |
Patch checklist
- Confirm you run sshd on musl Linux without PAM: on Alpine,
sshd -T | grep -iE 'passwordauthentication|usepam'andapk info -e openssh-server openssh-server-pam. - Update to Portable OpenSSH 10.6p2, or install your distro's fixed package (Alpine:
apk upgrade -U -ato the fixed version for your branch). - Restart sshd after the upgrade. Alpine warns that upgrading the package does not replace a running daemon (
rc-service sshd restart). - If you cannot update yet: set
PasswordAuthentication no(keep a working key session open), validate withsshd -t, restart sshd, and confirmsshd -Tshows passwordauthentication no.
If you can't update yet
- Alpine's interim control is to disable password authentication and restart sshd. That closes the password-bypass path; it is not a substitute for installing the fixed package when you can.
How to check for compromise
- In auth/system logs (Alpine:
/var/log/messages), look forsshdlinesAccepted password foraccounts that should have no password (*in/etc/shadow) — Alpine namesalpine,root, and other key-only users as examples. - On Alpine tiny-cloud images, review
doasuse and recently created users, files, and authorized keys if a password login toalpinecannot be ruled out. - If you cannot rule out a password login to a
*-field account, treat the host as compromised: rotate credentials/keys, review persistence, and rebuild from a known-good image when needed.
TL;DR: CVE-2026-123158 — a password authentication bypass in OpenSSH on musl Linux without PAM, nicknamed SSHole in public tracking — is on CISA’s KEV list (added November 9, 2026). Portable OpenSSH 10.6p2 (November 5, 2026) adds a workaround in sshd. Alpine and other musl hosts should update, restart sshd, or turn off password logins, then check auth logs for unexpected password accepts on key-only accounts.
What happened
- November 5, 2026: Portable OpenSSH 10.6p2 was released. The release notes call out a critical security workaround for Linux systems that use musl libc with PAM disabled. The OpenSSH team says the root cause sits outside sshd, but the bypass is exploitable through it. Reported by Özgün Kültekin of Wakefield.
- Same day: Alpine Linux published a security advisory for
openssh-serverpassword authentication bypass, with fixed packages across branches back to 3.16. Alpine noted that no CVE had been assigned yet at the time of writing. - November 5 (NVD / GHSA): The flaw is tracked as CVE-2026-123158 / GHSA-4fcc-vm97-gx3x. NVD and GHSA describe OpenSSH before 10.6p2 on Linux when musl is used without PAM; CVSS 3.1 base 8.1 (High) (
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H). - November 9, 2026: CISA added CVE-2026-123158 to the Known Exploited Vulnerabilities catalog (catalogVersion 2026.11.09). Federal due date November 12, 2026. Forensic triage under BOD 26-04: Yes. Known ransomware use: Unknown.
How the attack works
Per Alpine (and consistent with the NVD/GHSA summary): when sshd is built without PAM, it checks passwords with the C library crypt() and compares the result to the stored password field. For accounts whose stored field is too short to hold a salt, sshd borrows a salt from another account.
On musl, crypt() returns the string * as an error indicator when the key is over 256 bytes. Accounts with no password set also store exactly * in /etc/shadow. A matching * is treated as a successful password check.
Alpine’s conditions for exposure (all must be true):
- sshd on musl without PAM (Alpine’s default
openssh-server, oropenssh-server-pamwithUsePAM no). PasswordAuthentication yes(OpenSSH default unless changed).- An account whose password field is exactly
*(key-only users, many directory-mapped users, Alpine’s defaultalpinecloud user;root:*in base images — OpenSSH’s defaultPermitRootLogin prohibit-passwordstill blocks root password login unless that was changed). - At least one other local account has a real
$5$or$6$password hash (so a salt can be borrowed).
The attacker needs network reachability to sshd and a username; Alpine says a very long password then succeeds in one try.
Password-length wording conflict: Alpine says 257 to 1024 bytes. NVD and GHSA say between 256 and 1024 characters. We report both; Alpine’s figure matches musl’s over-256-byte failure path.
OpenSSH’s 10.6p2 notes do not spell out the musl/* mechanism in the short security blurb; they document the workaround and the reporter. Mechanism detail above is from Alpine’s advisory.
Who is exposed
Linux hosts running OpenSSH before 10.6p2 (or an unpatched distro backport) on musl without PAM, with password authentication enabled and at least one *-field account plus one salted hash account — as above. Alpine lists containers that do not run sshd as not affected; same for PasswordAuthentication no, PAM-enabled builds with UsePAM yes, locked ! password fields, and hosts with no $-style password hash.
Not a general glibc/OpenSSH-everywhere bug on the primary pages we read: the documented scope is musl + no PAM.
Exploitation status
CISA’s KEV entry (date added 2026-11-09, due 2026-11-12) is the primary signal we use for known exploitation. NVD’s CISA Coordinator SSVC options for this CVE include exploitation: active. OpenSSH’s release notes and Alpine’s advisory do not themselves describe in-the-wild campaigns; Alpine focuses on the bug, packages, and log checks. Known ransomware campaign use on KEV: Unknown.
What to do
- Update OpenSSH to 10.6p2 (or your distro’s fixed package — Alpine table above), then restart sshd. Package install alone is not enough on Alpine.
- If you cannot update yet: set
PasswordAuthentication no, keep a working key session,sshd -t, restart, confirm withsshd -T. - Then check whether you were already hit (patching does not erase a past login):
Accepted password foron accounts that should be key-only /*in shadow.- Unexpected users, authorized_keys changes, and privilege helpers such as
doason Alpine tiny-cloud.
- If you cannot rule that out, treat the host as compromised and rebuild/rotate as appropriate.
For related patch alerts, see our security coverage.
Sources
- OpenSSH 10.6p2 release notes (Security: password authentication bypass workaround) - https://www.openssh.org/releasenotes.html#10.6p2
- Alpine Linux: “Security advisory: openssh-server password authentication bypass” (November 5, 2026) - https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/
- NVD: CVE-2026-123158 - https://nvd.nist.gov/vuln/detail/CVE-2026-123158
- GitHub Advisory Database: GHSA-4fcc-vm97-gx3x / CVE-2026-123158 - https://github.com/advisories/GHSA-4fcc-vm97-gx3x
- OpenSSH portable commit (workaround): 4353fdc43ef646c43a8dda7025cc1a898caf1482 - https://github.com/openssh/openssh-portable/commit/4353fdc43ef646c43a8dda7025cc1a898caf1482
- CISA Known Exploited Vulnerabilities catalog (catalogVersion 2026.11.09; CVE-2026-123158 added 2026-11-09) - https://www.cisa.gov/known-exploited-vulnerabilities-catalog
- CISA KEV JSON feed - https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json
Last checked: Nov 10, 2026, 8:28 a.m. Manila (UTC+8). Method: We read OpenSSH’s 10.6p2 release notes on openssh.org, Alpine’s November 5 advisory (affected conditions, package table, interim PasswordAuthentication disable, compromise log check), the NVD CVE-2026-123158 record (description, CVSS 3.1 8.1, CISA KEV dates, SSVC exploitation active), GHSA-4fcc-vm97-gx3x via the GitHub Advisories API (same description/CVSS; HTML advisory page was a thin shell), the openssh-portable workaround commit message, and CISA’s KEV JSON feed catalogVersion 2026.11.09 (dateReleased 2026-11-09T19:54:37Z). BleepingComputer URLs returned HTTP 403 to our fetcher today, so we did not use BC as a source. OpenSSH/Alpine did not use the “SSHole” nickname on the pages we read; we keep it as the public short name used with this CVE. Thumbnail is an original One Signal Desk topic graphic. No affiliate links. How we work.
Updates
- Nov 10, 2026, 8:28 a.m. Manila (UTC+8): Initial report covering the OpenSSH workaround, Alpine fixed packages and CISA KEV listing.
Spotted an error? See our corrections policy and tell us.



