# sshole (CVE-2026-123158): sprawdź swoją sieć

> Obejście hasła w OpenSSH na Linuksie z musl bez PAM, np. Alpine. Kogo dotyczy, 10-minutowa kontrola dla administratora, poprawka i co widzi monitoring.

Source page: https://netsenx.com/pl/blog/2026-11-06_sshole-cve-2026-123158 · NetSenX Team · 2026-11-06

CVE-2026-123158, nazywana „sshole” (pisana też sshhole), pozwala zalogować się przez SSH bardzo długim hasłem na systemach Linux, w których sshd z OpenSSH jest zbudowany z biblioteką musl libc bez PAM; najbardziej znanym przykładem jest Alpine Linux. Poprawka jest w OpenSSH 10.6p2, wydanym 5 listopada 2026 r., a do czasu aktualizacji lukę zamyka wyłączenie logowania hasłem. Większość popularnych dystrybucji serwerowych używa glibc i PAM, więc znajduje się poza podatną konfiguracją; ryzyko skupia się na hostach z Alpine, kontenerach opartych na Alpine, w których działa sshd, oraz na obrazach Linuksa dla urządzeń wbudowanych.

## Kogo to dotyczy, a kogo nie

Rekord CVE opisuje to tak: sshd w OpenSSH przed wersją 10.6p2, na Linuksie, gdy używana jest musl libc bez PAM, nie ma obejścia problemu, który pozwala ominąć uwierzytelnianie hasłem; dla niektórych konfiguracji kont działa dowolne hasło o długości od 256 do 1024 znaków. Rekord ocenia lukę na 8,1 (wysoka) w CVSS 3.1.

Mechanizm, jak opisują go Alpine i kilku badaczy bezpieczeństwa: bez PAM sshd sprawdza hasło, wywołując funkcję `crypt()` biblioteki C i porównując wynik z wpisem konta w `/etc/shadow`. Przy zbyt długim haśle `crypt()` w musl kończy się błędem i zwraca ciąg `*`. Konta, które nie mają logować się hasłem, często mają w shadow dokładnie `*`, więc wartość błędu pasuje i sshd przyjmuje logowanie. Konto z prawdziwym skrótem hasła nie otworzy się w ten sposób: wartość błędu nie pasuje do skrótu.

- **Podatna konfiguracja:** OpenSSH starszy niż 10.6p2, musl libc, brak PAM, włączone uwierzytelnianie hasłem i co najmniej jedno konto, którego wpis w shadow to samo `*`. Domyślna kompilacja OpenSSH w Alpine nie ma PAM. Badacze wymieniają wśród zagrożonych kont użytkowników logujących się tylko kluczem i domyślnego użytkownika obrazów chmurowych Alpine; root w Alpine też ma domyślnie `*`, ale domyślne `PermitRootLogin prohibit-password` odrzuca logowanie roota hasłem.
- **Poza nią, według rekordu CVE:** dystrybucje oparte na glibc oraz kompilacje sshd korzystające z PAM. Dropbear, domyślny serwer SSH w OpenWrt, to inny program niż OpenSSH i nie jest produktem wskazanym w rekordzie; urządzenie z OpenWrt wchodzi w grę tylko wtedy, gdy zainstalowano na nim serwer OpenSSH.
- **Wykorzystanie:** kod proof-of-concept jest publiczny. Firma threat intelligence Previdian podaje, że jej sensory zaobserwowały próby wykorzystania luki; według innych źródeł, m.in. Safe Security, na 6 listopada 2026 r. wykorzystanie w realnych atakach nie było potwierdzone, a CISA nie dodała tej CVE do katalogu Known Exploited Vulnerabilities. Tak czy inaczej, każdy podatny host przyjmujący hasła SSH z internetu traktuj jako pilny.

## 10-minutowa kontrola dla administratora

Skanuj wyłącznie sieci, które należą do Ciebie albo do których testowania masz upoważnienie.

### Krok 1: znajdź usługi SSH

Z hosta wewnątrz sieci wylistuj wszystko, co odpowiada na porcie 22, razem z wersją oprogramowania, którą się przedstawia. Zastąp przykładowy zakres własnymi podsieciami:

```bash
nmap -p 22 --open -sV 192.0.2.0/24
```

Uwzględnij hosty z kontenerami i sieci laboratoryjne. sshd w kontenerze może być wystawiony na innym porcie, więc sprawdź też mapowania portów publikowane przez platformę kontenerową.

### Krok 2: sprawdź na każdym hoście wersję OpenSSH i bibliotekę C

`ssh -V` pokazuje zainstalowaną wersję OpenSSH. `ldd --version` wypisuje `musl libc` w systemie z musl, a w systemie z glibc jej wersję. W Alpine `apk info -v | grep openssh` pokazuje dokładne wersje pakietów.

```bash
ssh -V
ldd --version 2>&1 | head -1
```

### Krok 3: sprawdź, czy logowanie hasłem jest włączone

Jako root wyświetl konfigurację, z którą faktycznie działa sshd. `passwordauthentication no` oznacza, że ta droga jest na tym hoście zamknięta.

```bash
sshd -T | grep -i passwordauthentication
```

### Krok 4: wylistuj konta z samym `*`

To konta, które obejście może otworzyć:

```bash
awk -F: '$2 == "*" { print $1 }' /etc/shadow
```

Host jest narażony, jeśli spełnione są wszystkie cztery warunki: podatna wersja OpenSSH, musl, włączone logowanie hasłem i co najmniej jedno z wylistowanych kont, któremu SSH pozwala się zalogować.

## Poprawka

1. **Zaktualizuj OpenSSH do 10.6p2 albo do poprawionego pakietu swojej dystrybucji.** W Alpine opublikowane polecenie to `apk upgrade -U -a`.
2. **Zrestartuj sshd.** Działający demon używa starego kodu do czasu restartu; w Alpine: `rc-service sshd restart`.
3. **Zanim zaktualizujesz, ustaw `PasswordAuthentication no`** w `sshd_config` i przeładuj sshd. Jeśli użytkownicy i tak logują się kluczami, nic się dla nich nie zmieni; to doraźne rozwiązanie zalecane w komunikatach o luce.
4. **Przebuduj obrazy kontenerów**, które uruchamiają sshd na bazie Alpine, i wdroż je ponownie: łatka na hoście nie łata obrazu.
5. **Przejrzyj ostatnie logowania SSH** na podatnych hostach, zwłaszcza udane logowania hasłem na konta, które zwykle używają kluczy albo w ogóle się nie logują.

## Co monitoring sieci widzi, a czego nie

SSH jest szyfrowany, więc hasło nigdy nie przechodzi przez sieć w czytelnej postaci. Sensor sieciowy nie zobaczy hasła, nie pozna jego długości i nie powie, że użyto właśnie tej luki: ten dowód jest w logach samego hosta.

Monitoring sieci widzi natomiast zachowanie wokół włamania. NetSenX ocenia, jak każdy host zachowuje się w sieci, i oznacza skanowanie, ruch lateralny, beaconing C2 oraz nietypowy wolumen danych wychodzących, w każdym planie, także Free. Host, który nagle przyjmuje sesje SSH ze źródeł, z którymi nigdy się nie komunikował, albo kontener Alpine, który po zalogowaniu zaczyna łączyć się z innymi hostami w sieci wewnętrznej, to dokładnie ten rodzaj zmian, do których służą te detekcje. Każdy alert wyjaśnia prostym językiem, dlaczego się pojawił. Używaj tego razem z kontrolą hostów opisaną wyżej, a nie zamiast niej.

Jeśli nie masz pewności, czy ktoś już nie jest w środku, strona [Jak sprawdzić, czy ktoś jest w Twojej sieci](/pl/is-someone-inside-your-network) wymienia sygnały i darmowe kontrole, [Jak wykryć ruch lateralny i beaconing C2](/pl/detect-lateral-movement-c2-beaconing) mapuje to, co następuje po zalogowaniu, na MITRE ATT&CK, a [NDR vs EDR vs SIEM](/pl/blog/2026-09-24_ndr-vs-edr-vs-siem) wyjaśnia, które narzędzie co widzi. Plan Free monitoruje do 3 urządzeń bez limitu czasu; zobacz [cennik](/pl/pricing).

## FAQ

### Czym jest sshole (CVE-2026-123158)?

To obejście uwierzytelniania hasłem w sshd z OpenSSH przed wersją 10.6p2 na systemach Linux z musl libc bez PAM, takich jak Alpine Linux. Dla niektórych kont przyjmowane jest dowolne hasło o długości od 256 do 1024 znaków. Rekord CVE ocenia lukę na 8,1 (wysoka) w CVSS 3.1.

### Czy dotyczy to mojego serwera z Ubuntu, Debianem lub Red Hatem?

Standardowych kompilacji nie: te dystrybucje używają glibc i budują sshd z PAM, a rekord CVE ogranicza problem do musl libc bez PAM. Kontenery na takich hostach nadal mogą być podatne, jeśli są oparte na Alpine i uruchamiają sshd.

### Jak to naprawić?

Zaktualizuj OpenSSH do 10.6p2 lub do poprawionego pakietu dystrybucji, a potem zrestartuj sshd. Do tego czasu ustaw PasswordAuthentication no w sshd_config i przeładuj sshd. Przebuduj obrazy kontenerów opartych na Alpine, które uruchamiają sshd.

### Czy CVE-2026-123158 jest wykorzystywana w atakach?

Previdian podaje, że jej sensory zaobserwowały próby wykorzystania. Według innych źródeł na 6 listopada 2026 r. wykorzystanie w realnych atakach nie było potwierdzone, a CVE nie było w katalogu Known Exploited Vulnerabilities CISA. Kod proof-of-concept jest publiczny, więc łataj bez czekania.

### Czy monitoring sieci wykryje ten atak?

Samego logowania nie: SSH jest szyfrowany, więc żadne narzędzie sieciowe nie widzi hasła ani jego długości. Monitoring sieci pokaże to, co dzieje się wokół, np. sesje SSH z nieznanych źródeł, skanowanie albo ruch lateralny z hosta po zalogowaniu. NetSenX oznacza skanowanie i ruch lateralny w każdym planie.

## Źródła

Wszystkie odczytane 6 listopada 2026 r.

- [CVE-2026-123158, rekord CVE (cvelistV5)](https://raw.githubusercontent.com/CVEProject/cvelistV5/main/cves/2026/123xxx/CVE-2026-123158.json) — opis, wersje podatne, ocena CVSS 3.1: 8,1, opublikowany 5 listopada 2026 r.
- [Alpine Linux — OpenSSH password authentication bypass](https://alpinelinux.org/posts/2026-11-05-openssh-password-authentication-bypass/) — komunikat dystrybucji
- [OpenSSH release notes, 10.6p2](https://www.openssh.org/releasenotes.html#10.6p2)
- [OX Security — OpenSSH password authentication bypass on Alpine Linux](https://www.ox.security/blog/openssh-authentication-bypass-cve-2026-123158/) — mechanizm i zagrożone konta
- [Previdian — CVE-2026-123158 exploitation attempts observed](https://previdian.com/CVE-2026-123158)
- [Safe Security — SSHole: high-severity OpenSSH vulnerability](https://safe.security/resources/blog/sshole-high-severity-openssh-vulnerability-turns-disabled-passwords-into-unauthorized-access/) — status wykorzystania na 6 listopada 2026 r.

---

*Autor: zespół NetSenX w TriStiX S.L. Artykuł ma charakter ogólnoinformacyjny i opiera się na powyższych publicznych źródłach według stanu na 6 listopada 2026 r.; wersje pakietów właściwe dla Twojego systemu sprawdź w komunikacie swojej dystrybucji. Pytania: [info@netsenx.com](mailto:info@netsenx.com).*
