sshole (CVE-2026-123158): Vulnerabilitatea OpenSSH care afectează Alpine Linux și cum să o remediați
De Eoin Villarin, 2026-11-07
- O vulnerabilitate OpenSSH numită sshole permite atacatorilor să se conecteze la conturi fără parolă pe Alpine Linux și alte sisteme bazate pe musl și este deja exploatată. Cine este afectat, cum să verificați serverele și cum să o remediați.
Sunt afectat de vulnerabilitatea sshole OpenSSH?
Sunteți în pericol dacă un server rulează OpenSSH mai vechi de 10.6p2 pe un sistem bazat pe musl, cum ar fi Alpine Linux fără PAM, permite logări de parolă SSH și are un cont al cărui câmp de parolă este doar un asterisc lângă un alt cont cu o valoare de parolă reală. Debian, Ubuntu, Fedora și configurațiile care utilizează PAM nu sunt afectate.
Principalele concluzii
- CVE-2026-123158, numită sshole, permite atacatorilor să se conecteze la conturi fără parolă pe Linux bazat pe musl prin trimiterea unei parole prea mari.
- Packajul openssh-server implicit al Alpine Linux este afectat, în timp ce sistemele glibc, cum ar fi Ubuntu și configurațiile care utilizează PAM, nu sunt.
- Atacatorii au exploatat-o în mai puțin de nouă ore de la publicarea sa și au câștigat acces root pe un honeypot.
- Soluția este OpenSSH 10.6p2 sau pachetul patch-it al Alpine pentru ramura dvs., urmat de o repornire a sshd.
- Dacă nu puteți actualiza încă, setați PasswordAuthentication no și utilizați chei SSH.
O vulnerabilitate recent dezvăluită în OpenSSH numită sshole, urmărită ca CVE-2026-123158, permite atacatorilor să se conecteze la anumite conturi Linux care nu sunt destinate să accepte parole deloc. Aceasta afectează OpenSSH pe sisteme bazate pe musl, cum ar fi Alpine Linux, a fost fixată pe 5 noiembrie 2026 și atacatorii au început să o utilizeze în mai puțin de nouă ore de la publicarea sa. Dacă rulați servere Alpine, imagini Docker bazate pe Alpine cu SSH sau dispozitive mici pe OpenWrt, verificați-le astăzi.
Ce este defectul sshole OpenSSH?
Pe sistemele bazate pe musl, funcția crypt() a bibliotecii C returnează un singur asterisc (*) când nu reușește să hash-eze o parolă, de exemplu când parola este mai lungă decât limita de 256 de octeți. Multe sisteme Linux folosesc și un singur * în câmpul parolei pentru a indica "acest cont nu are parolă". OpenSSH a comparat cele două, a văzut *, și le-a tratat ca o potrivire. Trimiterea unei parole prea mari a fost suficientă pentru a vă conecta la un cont fără parolă.
Comportamentul se datorează unei schimbări din 2016 în manipularea parolelor OpenSSH. Cercetătorul de securitate Özgün Kültekin l-a găsit folosind agenți AI care au efectuat aproximativ 17.600 de teste de autentificare. CVE are un scor CVSS 3.1 de 8.1, care este evaluat ca Ridicat, iar soluția a fost livrată în OpenSSH 10.6p2.
Sunt afectat?
Un server este în pericol când toate acestea sunt adevărate:
- Rulează OpenSSH mai vechi decât 10.6p2 pe un sistem bazat pe musl, cum ar fi Alpine Linux, OpenWrt, Buildroot sau Yocto.
- sshd nu utilizează PAM. Aceasta este setarea implicită pentru pachetul openssh-server al Alpine.
- Logările SSH prin parolă sunt activate, ceea ce este implicit în OpenSSH.
- Cel puțin un cont are numai * în câmpul său de parolă, cum ar fi un utilizator numai cu cheie, lângă un alt cont cu o valoare hash de parolă reală.
Imaginile cloud oficiale AWS și Azure de la Alpine de la 3.18.11 la 3.24.3 sunt un caz grav: ele includ un utilizator implicit alpine fără parolă și doas fără parolă, ceea ce înseamnă că o conexiune reușită poate deveni root.
Nu este afectat: sisteme bazate pe glibc, cum ar fi Debian, Ubuntu și Fedora, configurații care verifică parolele prin PAM, Dropbear și OpenBSD. Conturile cu o amprentă de parolă reală nu pot fi ocolite în acest fel.
Cum să verificați serverele dvs.
Rulați acestea ca root pe fiecare server Alpine sau container care rulează sshd:
- Verificați setările SSH:
sshd -T | grep -i -E 'passwordauthentication|usepam'. Dacă autentificarea cu parolă este dezactivată sau PAM este activată, această vulnerabilitate nu poate fi utilizată. - Verificați pachetul instalat:
apk list --installed | grep openssh, și comparați-l cu versiunile fixe de mai jos. - Listați conturile fără parolă:
awk -F: '$2=="*" {print $1}' /etc/shadow. - Căutați logări la acele conturi:
grep "Accepted password" /var/log/messages. O autentificare cu parolă la un cont cu * în câmpul său de parolă înseamnă că serverul a fost probabil atacat.
Cum să remediați CVE-2026-123158 pe Alpine Linux
Alpine a livrat pachete patched pentru fiecare ramură de la 3.16 la edge în aceeași zi cu dezvăluirea. Actualizați și reporniți sshd, deoarece instalarea actualizării nu repornește procesul în curs de funcționare:
apk upgrade -U -a și apoi rc-service sshd restart
| Ramură Alpine | Versiune OpenSSH fixată |
|---|---|
| much | 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 |
Pentru Docker, reconstruiți fiecare imagine care conține OpenSSH dintr-o imagine de bază proaspătă și redeployați-o. Rețineți că unele imagini SSH de pe Docker Hub, cum ar fi linuxserver's openssh-server, dezactivează autentificarea prin parolă în mod implicit, dar devin expuse atunci când PASSWORD_ACCESS=true este setat.
Versiunile Alpine mai vechi de 3.16 nu primesc niciun pachet fix. Actualizați-le la o versiune suportată sau utilizați soluția de mai jos.
Soluție rapidă: dezactivați logările SSH prin parolă
Dacă nu puteți actualiza imediat, setați PasswordAuthentication no în /etc/ssh/sshd_config, reporniți sshd și rulați din nou verificarea sshd -T. Asigurați-vă că autentificarea cu cheie SSH funcționează înainte de a face acest lucru, altfel vă puteți bloca. SSH-ul numai cu cheie este o setare bună implicită pentru orice server, oricum.
Ce să faceți dacă credeți că ați fost lovit
- Examinați utilizarea doas, utilizatorii creați recent și fiecare fișier authorized_keys.
- Verificați procesele necunoscute, sarcinile cron și conexiunile de ieșire.
- Dacă nu puteți exclude o compromitere, tratați serverul ca fiind compromis: reconstruiți-l dintr-o imagine curată și rotiți fiecare parolă, cheie și token pe care îl deținea.
- Nu descărcați exploit-uri proof-of-concept de pe GitHub pentru a testa serverele dvs. Cercetătorii avertizează că unele nu sunt verificate și pot conține malware.
Păstrarea serverelor actualizate este o parte importantă a întreținere site web Fac pentru clienții mei. Dacă doriți ajutor pentru a verifica găzduirea, configurarea Docker sau configurarea SSH, intra în contact.
Întrebări frecvente
Este Ubuntu sau Debian afectat de sshole?
Nu. Sistemele bazate pe Debian, Ubuntu, Fedora și altele care utilizează glibc nu sunt afectate, la fel și configurațiile care utilizează PAM pentru verificarea parolelor.
Protejează SSH-ul doar cu chei?
Da. Cu PasswordAuthentication setat la no, serverul nu acceptă parole, deci vulnerabilitatea nu poate fi utilizată.
Este CVE-2026-123158 exploatat?
Da. Firma de informații despre amenințări Previdian a văzut prima încercare în mai puțin de nouă ore după publicarea CVE, iar un atacator a obținut acces root pe unul dintre honeypot-urile sale care rulează Alpine Linux.
Ce versiune OpenSSH rezolvă problema?
OpenSSH 10.6p2. Pe Alpine, instalați pachetul openssh corectat pentru ramura dvs. și reporniți sshd.
Sunt afectate containerele Docker?
Containerele bazate pe Alpine care rulează sshd cu logări de parolă activate pot fi afectate. Reconstruiți-le dintr-o imagine de bază actualizată și redeployați.
Trebuie să repornesc după actualizare?
Da. Serviciul sshd păstrează codul vulnerabil în memorie până când îl reporniți.
Surse
- BleepingComputer: Vulnerabilitatea OpenSSH permite atacatorilor să se conecteze la conturi Linux dezactivate prin parolă
- Help Net Security: Defect OpenSSH exploatat în sălbăticie la ore după divulgare
- Cycode: sshole Bypassarea parolei OpenSSH pe Alpine Linux
- Orca Security: sshole bypass de autentificare pe Alpine Linux