AI/Nov 12 edition/Reporting & analysis
InfrastructureSafety

InfrastructureCompute, chips & cloud

OpenSSH 'SSHole' flaw lets attackers log in to Alpine and other musl-based Linux systems and is now being actively exploited

A flaw in OpenSSH versions before 10.6p2 lets attackers log in to passwordless accounts on musl-based Linux systems, mainly Alpine, by sending an overlong password. Exploitation attempts began within hours of the 5 November fix. CISA set a 12 November federal deadline.

From the Ars Technica · AI article of November 9, 2026 and cited sources: The bug comes from three error-handling choices colliding, not from memory corruption. [2] [1]

SOURCES[2] Brain Detox: musl crypt() returns * braindetox.kr[1] Vulnerability that lets hackers SSH into Linux devices is… arstechnica.com

AI-assisted, not human-edited. Methodology Corrections Who owns this site

KEY FACTS
What happened
The bug comes from three error-handling choices colliding, not from memory corruption. [2] [1]
Original source
Ars Technica · AI article, independent perspective
Brief by
AT Pulse research desk AI-assisted; publisher and contact on the desk page
When
November 9, 2026 article published
Evidence
10 sources across 10 sites

Reach: not measured yet

Illustration from Ars Technica: OpenSSH 'SSHole' flaw lets attackers log in to Alpine and other musl-based Linux systems and is now being actively exploited
Image: Ars Technica — Original article ↗
THE CORE IDEAS4 TAKEAWAYS
01

The bug comes from three error-handling choices colliding, not from memory corruption. On failure, musl's crypt() returns '*' rather than NULL. Since a 2016 timing-leak fix, OpenSSH hashes every login attempt. Alpine marks passwordless accounts with '*'. As a result, a password longer than 256 bytes produces a 'hash' that matches those accounts, and sshd lets the attacker in. [2] [1]

02

A system is exposed only if several conditions hold: OpenSSH older than 10.6p2, musl libc, PAM disabled, at least one account with a SHA-256 or SHA-512 password hash, and a passwordless account marked '*'. Alpine's default openssh-server package fits this pattern most closely. OpenWrt, Buildroot, Yocto and many Docker images also need checking. glibc systems are not affected, and Red Hat says none of its products are. [7] [1] [8] [9]

03

Attacks started quickly. A proof-of-concept appeared about four hours after the patch, and the first attempts followed within nine hours. GreyNoise recorded a successful compromise on 7 November. CISA added the flaw to its Known Exploited Vulnerabilities catalog on 9 November. The counts come from security firms' own sensors and keep changing: one tally reached 22 attempts from 14 IPs, and GreyNoise now lists 40 attacker IPs. Reported activity includes botnets, cryptocurrency mining and a group GreyNoise calls GT10, which deployed a TAC Agent backdoor that never activated on the victims GreyNoise observed. [4] [7] [6] [5] [1]

04

Fixes: upgrade to OpenSSH 10.6p2 or later and rebuild Alpine-based images. Where patching must wait, set PasswordAuthentication to no. To check for compromise, look for 'Accepted password' log entries on passwordless accounts, unexpected authorized_keys changes and TAC Agent files. [7] [4]

WHY IT MATTERS

Established: the login bypass is confirmed, patched and listed by CISA as actively exploited. Implication: Alpine-based containers and slowly patched embedded devices may stay exposed after hosts are fixed.

Read the full assessment

A library that signals errors with normal-looking values can quietly break authentication.

Executive brief

The bug that let attackers into Linux machines was not a memory-corruption flaw. It came from two error-handling conventions that happen to collide. On Linux systems built with the musl C library, the password-hashing function returns when it fails. A in /etc/shadow is also how Alpine marks an account that has no password. So a password longer than 256 bytes produces a hash that "matches" a passwordless account, and sshd logs the attacker in (Brain Detox). OpenSSH shipped a fix in 10.6p2 on 5 November 2026 (oss-security). Successful attacks were recorded within days (BleepingComputer), and CISA gave US federal agencies until 12 November to patch (The Hacker News).

What changed and event timeline

  1. Fix committed

    GreyNoise's tracker dates the OpenSSH fix commit one day before the public release ().

  2. OpenSSH 10.6p2 and first attack

    OpenSSH released 10.6p2, crediting Özgün Kültekin of Wakefield with the report (). Alpine patched branches 3.16 through edge the same day. Previdian saw its first exploitation attempt less than nine hours later ().

  3. Botnet activity reported

    WatchTowr said the exploitation it observed was linked to botnets and cryptocurrency mining. A proof-of-concept exploit had appeared about four hours after the patch ().

  4. GreyNoise confirms compromise

    GreyNoise recorded its first successful in-the-wild exploitation at 00:46 UTC ().

  5. CISA KEV listing and GT10 report

    CISA added CVE-2026-123158 to its Known Exploited Vulnerabilities catalog with a 12 November deadline (). GreyNoise described a group it calls GT10 deploying a backdoor called TAC Agent ().

Capabilities and access

  • Vulnerable: OpenSSH before 10.6p2, on musl-based Linux, with PAM disabled (Help Net Security).
  • Most exposed: Alpine's default openssh-server package. OpenWrt, Buildroot, Yocto and many Docker images also need checking (SOCRadar).
  • Not affected: glibc systems. Red Hat says none of its products are affected (Red Hat).
Read the full section
  • Vulnerable: OpenSSH before 10.6p2, on musl-based Linux, with PAM disabled (Help Net Security). Two account conditions also apply: at least one account has a SHA-256 or SHA-512 password hash, and a passwordless account has * in its shadow field (Ars Technica).
  • Most exposed: Alpine's default openssh-server package. OpenWrt, Buildroot, Yocto and many Docker images also need checking (SOCRadar).
  • Not affected: glibc systems. Red Hat says none of its products are affected (Red Hat).

Technical analysis for researchers and developers

Three choices, each reasonable when made, combine into the bug (Brain Detox): Red Hat's summary is that the server misreads whether a string is meant to be a password hash (Ars Technica). The lesson for developers: a library that signals errors with an ordinary-looking return value can silently break authentication logic built on top of it.

Read the full section

Three choices, each reasonable when made, combine into the bug (Brain Detox):

  • musl, 2012: crypt() returns * on error instead of NULL, which departs from POSIX. The reasoning was that many callers never check for failure.
  • OpenSSH, 2016: to fix a timing leak (CVE-2016-6210), sshd hashes every password attempt, even for accounts that don't exist or can't log in.
  • Alpine, 2019–2022: locked accounts are marked with * rather than !, because ! also blocked SSH key logins.

Red Hat's summary is that the server misreads whether a string is meant to be a password hash (Ars Technica). The lesson for developers: a library that signals errors with an ordinary-looking return value can silently break authentication logic built on top of it.

Claims and evidence

  • Exploit counts: Previdian first reported 8 attempts from one Japan-based IP (Help Net Security). It later reported 20 attempts from 13 IPs in nine countries (BleepingComputer).
  • GreyNoise numbers changed over time: BleepingComputer reported 16 successful attack chains from six IPs. GreyNoise's live page now lists 40 attacker IPs (GreyNoise).
  • Severity ratings disagree: most reports cite CVSS 8.1 (The Hacker News), while Red Hat rates it 9.8 (Red Hat).
Read the full section
  • Exploit counts: Previdian first reported 8 attempts from one Japan-based IP (Help Net Security). It later reported 20 attempts from 13 IPs in nine countries (BleepingComputer). A later report put the total at 22 attempts from 14 IPs (The Hacker News).
  • GreyNoise numbers changed over time: BleepingComputer reported 16 successful attack chains from six IPs. GreyNoise's live page now lists 40 attacker IPs (GreyNoise).
  • Severity ratings disagree: most reports cite CVSS 8.1 (The Hacker News), while Red Hat rates it 9.8 (Red Hat).
  • All of these counts come from security vendors' own honeypots and sensors.

Context and prior work

  • The OpenSSH 10.6p2 announcement says the project is moving to more frequent releases. The reviewed sources do not say whether this particular bug was found with AI.
  • The OpenSSH 10.6 release in October also welcomed AI-assisted bug reports, provided they come with human review (LWN).
Read the full section
  • The OpenSSH 10.6p2 announcement says the project is moving to more frequent releases. The reason given is that vulnerabilities found with AI tools are being independently rediscovered by other researchers (oss-security). The reviewed sources do not say whether this particular bug was found with AI.
  • The OpenSSH 10.6 release in October also welcomed AI-assisted bug reports, provided they come with human review (LWN).

Limitations, safety and contested findings

  • AI-generated backdoor claim: Ars says TAC Agent appears to have been written with AI (Ars Technica).
  • TAC Agent never activated: on the victims GreyNoise observed, the backdoor never finished enrolling with its server and never received a task (GreyNoise).
  • Scale is unclear: Defused saw only a small number of actors trying the exploit (BleepingComputer).
Read the full section
  • AI-generated backdoor claim: Ars says TAC Agent appears to have been written with AI (Ars Technica). GreyNoise's own TAC Agent write-up is labeled as LLM-generated and subject to revision (GreyNoise).
  • TAC Agent never activated: on the victims GreyNoise observed, the backdoor never finished enrolling with its server and never received a task (GreyNoise).
  • Scale is unclear: Defused saw only a small number of actors trying the exploit (BleepingComputer). GreyNoise notes its data covers only its own sensors, not the whole internet (GreyNoise).

Business and practitioner implications

  • Patch now: upgrade to OpenSSH 10.6p2 or later and rebuild Alpine-based container images, not just running hosts.
  • If you can't patch yet: set PasswordAuthentication no (Help Net Security).
  • Check for compromise: look for "Accepted password" log entries on passwordless accounts, unexpected authorized_keys changes, and TAC Agent files (BleepingComputer).
Read the full section
  • Patch now: upgrade to OpenSSH 10.6p2 or later and rebuild Alpine-based container images, not just running hosts.
  • If you can't patch yet: set PasswordAuthentication no (Help Net Security).
  • Check for compromise: look for "Accepted password" log entries on passwordless accounts, unexpected authorized_keys changes, and TAC Agent files (BleepingComputer).
  • Watch embedded devices: OpenWrt and Yocto devices tend to get patched slowly (SOCRadar).
FOLLOW THE EVIDENCE

The source trail.

Sources (10)
A LITTLE LESS NOISE. A LOT MORE CONTEXT.

Stay curious.
Follow the evidence.

Independent perspectives, the original sources, and room for the questions that don't have easy answers.

How we build the brief
Connect with us

Find us where you already read.