CriticalCVE-2026-123158 3 Hunt LeadsIOCsRemote AttackerThe Hacker News

SSHole Exploited Within Hours: Attackers Got Root on an Alpine Honeypot

Previdian says attackers began exploiting the OpenSSH SSHole bypass on musl-based Linux less than nine hours after disclosure and got root on an Alpine honeypot. Fixed in OpenSSH 10.6p2.

It took less than nine hours. Threat intelligence firm Previdian says attackers began exploiting “SSHole”, the OpenSSH password bypass on Alpine and other musl-based Linux, within hours of its CVE going public, and got root on one of its Alpine honeypots. The Hacker News reports the first source, an IP geolocated to Japan, made eight attempts and ran basic reconnaissance once inside. Previdian’s tracker now counts 17 attempts from 11 IPs in eight countries. We explained the bug on Thursday; it is now in active use.

For defenders

The flaw: CVE-2026-123158, CVSS 8.1, fixed in OpenSSH 10.6p2. On musl libc builds without PAM, any password of 257 to 1,024 bytes makes the hash call fail with *, which matches the password field of accounts with no password set, so sshd logs them in. Alpine says the box also needs one account with a $5$ or $6$ hash and PasswordAuthentication yes (the default). Not affected: glibc distributions, Dropbear, PAM-checked logins, and locked accounts (!).

Exploitation: KNOWN, per Previdian’s sensors (confirmed root on an Alpine honeypot); not yet on CISA’s KEV list. The first attacker, 89.116.89[.]18, used oversized passwords and ran id, uname and hostname over non-interactive SSH sessions (T1133 (External Remote Services), T1078.003 (Valid Accounts: Local Accounts), T1082 (System Information Discovery)). Public proof-of-concept and scanner code is reported in 21 GitHub repositories.

Who’s exposed: Alpine’s root:* (reachable only with PermitRootLogin yes), key-only users, directory users via musl-nscd, and the alpine user in tiny-cloud images 3.18.11 to 3.24.3, which has passwordless doas to root. Fixed Alpine packages go back to 3.16; restart sshd after upgrading.

Network
89.116.89[.]18 (first observed SSHole exploitation, per Previdian)

What it means for you

If you don’t run an SSH server on Alpine Linux, OpenWrt or another musl-based system, nothing changes for you. If you do (a small VPS, a home router build, a Raspberry Pi project), this is now a race: attackers are scanning for it, and a single connection is enough.

Do this now

  1. Update OpenSSH (Alpine: apk upgrade -U -a) and restart sshd; the upgrade alone leaves the old daemon running.
  2. Can’t update today? Set PasswordAuthentication no and restart sshd.
  3. Search your logs for “Accepted password for” on accounts that have no password, like alpine, root or key-only users.
  4. If you can’t rule out a login, treat the machine as compromised and rebuild it.

Source article: Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot
Publisher: The Hacker News (Ravie Lakshmanan)
Published: Nov. 6, 2026
URL: https://thehackernews.com/2026/11/hackers-exploited-openssh-sshole-flaw.html

Executive Summary

Attackers began exploiting CVE-2026-123158, the OpenSSH authentication bypass named SSHole (also written *sshole or sshhole), less than nine hours after the CVE was published, according to Previdian, which confirmed successful root access on an Alpine Linux honeypot. The flaw affects sshd before OpenSSH 10.6p2 on Linux systems built against the musl C library without PAM, including Alpine’s default openssh-server package: when an account’s password field is too short to hold a salt, sshd hashes the attempt with another account’s salt, musl’s crypt() returns * for any key over 256 bytes, and that matches the * stored for accounts with no password, so a password of 257 to 1,024 bytes logs in. Alpine says exploitation needs PasswordAuthentication yes, an account whose password field is * (key-only users, directory users through musl-nscd, root when PermitRootLogin yes, or the alpine user in tiny-cloud images, which has passwordless doas), and at least one local account with a $5$ or $6$ hash. No actor has been named; the first source, 89.116.89[.]18, made eight attempts, used oversized passwords to log in and ran id, uname and hostname over non-interactive SSH sessions, and Previdian’s tracker shows 17 attempts from 11 IPs in eight countries by Nov. 7. Public proof-of-concept and scanner repositories exist. The objective so far is opportunistic access to exposed Linux servers, appliances and cloud images, with the account’s existing privileges and a short path to root where doas or root login is allowed. Hunt leads, false positive expectations and indicators are detailed below; no detection rules or file hashes have been published.

ATT&CK chain: Initial Access → Discovery → Privilege Escalation → Persistence

Hunt Lead Grid

Hunt Lead Level Hunt Lead Name ATT&CK Risk of False Positives
1 (Junior) Accepted Password for an Account With No Password T1133 (External Remote Services), T1078.003 (Valid Accounts: Local Accounts) Low. An account whose shadow field is * cannot legitimately log in with a password, so any “Accepted password” line for it is the bug; the only care needed is building the list of such accounts per host correctly.
2 (Pro) Password Login Followed by Non-Interactive Recon Commands T1082 (System Information Discovery), T1033 (System Owner/User Discovery) Medium. Monitoring agents and configuration management run id, uname and hostname over SSH all the time; the lead anchors on password authentication (they use keys) from a source outside your management ranges.
3 (Elite) Post-Login doas, New Users and authorized_keys Changes T1548.003 (Abuse Elevation Control Mechanism: Sudo and Sudo Caching), T1098.004 (Account Manipulation: SSH Authorized Keys), T1136.001 (Create Account: Local Account) Medium. Admins use doas, add users and edit keys routinely; the lead only fires when those changes follow, in the same session, a password login to an account that should not accept passwords or from an unfamiliar source.

Accepted Password for an Account With No Password

The bug turns a “no password” account into one that accepts any password of 257 to 1,024 bytes, and sshd records the result the normal way: an Accepted password for <user> from <ip> line. Alpine’s own guidance is to look in /var/log/messages for those lines naming an account that has no password, such as alpine, root or any key-only user. The first observed attacker, 89.116.89[.]18, made eight attempts, and Previdian has since seen 17 attempts from 11 addresses in Switzerland, Denmark, Iran, Japan, the Netherlands, Norway, Singapore and the US. The detection logic is to build, for every musl-based host running sshd, the list of accounts whose /etc/shadow field is * (plus directory users served through musl-nscd, which have no shadow entry), then alert on any “Accepted password” event for those accounts, and sweep all SSH logs for 89.116.89[.]18.

Use syslog from Alpine hosts (/var/log/messages, or whatever the host forwards), central log collection, and firewall or NetFlow records for SSH connections from the listed address. Sweep back to Nov. 5, 2026, the advisory date, and further if you have it, since the bug dates to a 2016 change. Scope first to internet-facing Alpine, OpenWrt and other musl systems, Alpine tiny-cloud instances from 3.18.11 through 3.24.3, and containers that run sshd. There is no legitimate way to produce this event, so do not tune it; the false positive risk is only an incomplete account list. Blocking the one IP is the wrong control, because the source count is already growing; patching or PasswordAuthentication no closes the hole. Any hit means the host is compromised until proven otherwise; Alpine says that if you cannot rule out a login, treat the machine as compromised.

Hunt Lead Level: 1 (Junior Analyst)

ATT&CK: Initial Access → T1133 (External Remote Services); Initial Access → T1078.003 (Valid Accounts: Local Accounts) (our mapping)

Sources: “Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot”, The Hacker News, Nov. 6, 2026, https://thehackernews.com/2026/11/hackers-exploited-openssh-sshole-flaw.html (source article); “Security advisory: openssh-server password authentication bypass”, Alpine Linux, Nov. 5, 2026, https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/ (additional source); “CVE-2026-123158 Exploitation Attempts Observed”, Previdian, https://previdian.com/CVE-2026-123158 (additional source)

Password Login Followed by Non-Interactive Recon Commands

Previdian says the first attacker, once logged in with an oversized password, did not open an interactive shell; it ran id, uname and hostname through non-interactive SSH sessions, the pattern of an automated checker confirming access and fingerprinting the box before deciding what to do next. That sequence is a cheap behavioral anchor that does not depend on the attacker’s IP: sshd accepts a password, then spawns a shell that immediately runs a short burst of identity and system-information commands with no TTY, and the session closes. The detection logic joins the sshd authentication event (method password, user, source IP) to process execution under that session: child processes of the sshd session for that user with no allocated terminal whose command lines are id, whoami, uname, hostname or cat /etc/os-release, within about a minute of the login.

Use auditd execve records or an EDR agent on Linux hosts, joined to sshd authentication logs by user, time and session; on Alpine without an agent, auditd with an execve rule for processes whose parent is sshd is enough. Sweep from Nov. 5, 2026. Scope to musl-based hosts first, but the lead also catches automated password-guessing successes on any Linux system. Configuration management, monitoring and backup tools run these commands over SSH constantly, so suppress by their source IP and by key authentication rather than by command; password-authenticated sessions from outside your management ranges are the signal. Blocking uname or id is the wrong approach. A hit on a vulnerable host should be triaged with the first lead and escalated as a compromise.

Hunt Lead Level: 2 (Pro)

ATT&CK: Discovery → T1082 (System Information Discovery); Discovery → T1033 (System Owner/User Discovery) (our mapping)

Sources: “Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot”, The Hacker News, Nov. 6, 2026, https://thehackernews.com/2026/11/hackers-exploited-openssh-sshole-flaw.html (source article)

Post-Login doas, New Users and authorized_keys Changes

The account SSHole opens decides what the attacker gets next. Alpine’s tiny-cloud images ship an alpine user with a * password field and passwordless doas, so a login there becomes root with one command; root itself is reachable directly when PermitRootLogin yes is set; and key-only service users may hold deployment credentials and secrets, as Safe Security notes. Alpine’s response guidance names the follow-on artifacts to review: doas use, recently created users, new files, and changes to authorized_keys. The detection logic is a session-scoped correlation: after a password login for an account that should not accept passwords (lead one) or from an unfamiliar source, alert on doas invocations, writes to any ~/.ssh/authorized_keys, edits to /etc/passwd, /etc/shadow or /etc/doas.conf, and new cron entries within the same session or the following hours.

Use auditd watches on /etc/passwd, /etc/shadow, /etc/doas.conf, /etc/doas.d/ and authorized_keys files, syslog for doas (which logs through syslog on Alpine), and file integrity monitoring, correlated with sshd authentication events by user and time. Keep a baseline of which admins use doas and from where for at least 30 days. Sweep from Nov. 5, 2026, and keep watching after patching, because a key or account added before the fix survives it. Patching sshd alone is the wrong end state on a host with a hit; the attacker’s key or user persists, so review and reset authorized_keys, remove unknown users, and rebuild where root was reached. Any correlated hit is an incident. The lead generalizes to any SSH initial-access bug, not just this one.

Hunt Lead Level: 3 (Elite)

ATT&CK: Privilege Escalation → T1548.003 (Abuse Elevation Control Mechanism: Sudo and Sudo Caching) (our mapping; doas is the sudo equivalent on Alpine); Persistence → T1098.004 (Account Manipulation: SSH Authorized Keys); Persistence → T1136.001 (Create Account: Local Account) (our mapping; review steps per Alpine, not observed activity)

Sources: “Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot”, The Hacker News, Nov. 6, 2026, https://thehackernews.com/2026/11/hackers-exploited-openssh-sshole-flaw.html (source article); “Security advisory: openssh-server password authentication bypass”, Alpine Linux, Nov. 5, 2026, https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/ (additional source)

Hash Appendix

No file hashes have been published; the exploitation observed so far is a login with an oversized password followed by built-in commands, with no malware files.

References Appendix

  • “Hackers Target OpenSSH SSHole Flaw Within Hours of Disclosure, Gain Root on Honeypot”, The Hacker News (Ravie Lakshmanan), Nov. 6, 2026, https://thehackernews.com/2026/11/hackers-exploited-openssh-sshole-flaw.html (source article; exploitation timeline, attacker IP, post-login commands)
  • “CVE-2026-123158 Exploitation Attempts Observed”, Previdian, https://previdian.com/CVE-2026-123158 (additional source; attempt counts, source countries, KEV status)
  • “Security advisory: openssh-server password authentication bypass”, Alpine Linux, Nov. 5, 2026, https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/ (additional source; preconditions, affected images, fixed packages, log checks)
  • MITRE ATT&CK Enterprise technique pages linked above, MITRE, https://attack.mitre.org/

CVE at a glance

CVE-2026-123158HighKEVPublic exploitOpenBSD OpenSSH
CVSS
8.1 High (v3.1)
EPSS
1% chance of exploitation in the next 30 days (higher than 63.4% of CVEs)
Exploited in the wild
Yes, on CISA’s KEV list since Nov 9, 2026
Public exploit
Yes, reported in 28 GitHub repositories

Full CVE details

Data from NVD, FIRST EPSS and CISA KEV, refreshed automatically. We report whether public exploit code exists but never link to it: fake proof-of-concepts that infect researchers are common.

More from the Roundup