Ranljivost omogoča prijavo v Alpine Linux brez gesla
Matej Huš
6. nov 2026 ob 21:13:32
V distribuciji Alpine Linux so odkrili nenavadnega hrošča (poimenovanega *sshole), ki v nekatere sisteme omogoča prijavo prek SSH, četudi sploh ne poznamo gesla uporabnika. Zadostuje že, da vtipkamo bistveno predolgo geslo. Najnovejši popravki so ranljivost že zakrpali. Zanimivo pa je, da je ranljivost stara točno deset let, saj so jo v sistem vnesli s popravkom CVE-2016-6210 za drugo ranljivost.
Vzrok za ranljivost tiči v knjižnici musl, ki jo ta distribucija uporablja za izračun zgoščene vrednosti gesla ob prijavi. Uporabniki v Linuxu lahko imajo račune, ki ne dovoljujejo prijave z geslom, temveč omogočajo prijavo s ključem. V datoteki /etc/shadow je pri teh uporabnikih namesto zgoščene vrednosti gesla zapisan zgolj znak *, v kar se geslo ne more nikoli zgostiti. V teoriji bi to moralo pomeniti, da bo vsako preverjanje gesla spodletelo.
A musl ima hrošča. Za izračun zgoščene vrednosti uporabi funkcijo crypt(), ki se pri geslih, daljših od 256 bajtov, zadavi. Tedaj vrne napako, ki je znak *. Primerjanje z vnosom v /etc/shadow tedaj uspe in uporabnik se lahko prijavi. Ne potrebuje nobenega ugibanja ali poizkušanja, preprosto mora vpisati več kot 256 bajtov dolgo geslo.
Vprašamo se lahko, zakaj se v takem primeru sploh računa zgoščena vrednost gesla. Tu se skriva hrošč iz leta 2016, ko se to ni počelo. Tedaj so napadalci iz merjenja časa za odgovor ugotovili, da neki račun ne dovoljuje prijave z geslom, ker se tedaj zgoščena vrednost ni izračunavala. Da bi preprečili te izdajalsko hitre odgovore, so dodali preverjanje zgoščene vrednosti (z izposojenim zrnom soli od sosednjega uporabnika) za vse uporabnike. Nerodna implementacija je povzročila najnovejšega hrošča, ki je po 10 letih končno odpravljen. Novi OpenSSH 10.6p2 ranljivost odpravlja.