În pachetul , care oferă instrumente pentru gestionarea de la distanță a serverului, backdoor (), descoperit în versiunile oficiale ale proiectului, prin Sourceforge și pe site-ul oficial. Backdoor-ul a fost prezent în versiunile de la 1.882 până la 1.921 inclusiv (în repositorul git, codul cu backdoor-ul nu era prezent) și permitea executarea de comenzi shell arbitrare în sistem cu privilegii root, fără a necesita autentificare.
Pentru atac, este suficient să existe un port de rețea deschis cu Webmin și activitatea în interfața web a funcției de schimbare a parolei vechi (activată prin default în versiunile 1.890, dar dezactivată în celelalte versiunile). Problema în 1.930. Ca măsură temporară pentru blocarea backdoor-ului, este suficient să se elimine setarea „passwd_mode=” din fișierul de configurare /etc/webmin/miniserv.conf. Pentru testare, a fost pregătit .
Problema a fost în scriptul password_change.cgi, în care pentru verificarea parolei vechi introduse în formularul web, funcția unix_crypt, care primește parola utilizatorului fără a efectua escaparea caracterelor speciale. În repositorul git, această funcție are o legătură deasupra modulelor Crypt::UnixCrypt și nu prezintă un risc, dar în arhiva livrată pe site-ul Sourceforge se apelează cod care se adresează direct la /etc/shadow, dar o face printr-o construcție shell. Pentru atac, este suficient să se introducă în câmpul pentru parola veche caracterul „|” iar codul următor va fi executat cu privilegii root pe server.
După dezvoltatorilor Webmin, codul malițios a fost introdus ca urmare a compromiterii infrastructurii proiectului. Detaliile nu sunt încă comunicate, așa că nu este clar dacă breșa s-a limitat la capturarea controlului asupra contului de pe Sourceforge sau a afectat și alte elemente ale infrastructurii de dezvoltare și construire a Webmin. Codul malițios a fost prezent în arhivele din martie 2018. Problema a afectat de asemenea . În prezent, toate arhivele de instalare au fost recompuse din Git.
Sursa: opennet.ro
